12011-04-19 Kai Habel <kai.habel@gmx.de> 2 3 * src/DLD-FUNCTIONS/__init_fltk__.cc(plot_window::plot_window): 4 Instantiate canvas before uimenu. 5 62011-04-13 Rik <octave@nomad.inbox5.com> 7 8 * help.cc: Add spaces after commas in @seealso blocks. 9 102011-04-12 Rik <octave@nomad.inbox5.com> 11 12 * load-path.cc (restoredefaultpath): Correct use of it's -> its in 13 documentation. 14 152011-04-10 John Eaton <jwe@octave.org> 16 17 * graphics.cc (Fishandle) Accept vector of handles (bug #33025). 18 192011-04-08 Rik <octave@nomad.inbox5.com> 20 21 * DLD-FUNCTIONS/balance.cc, DLD-FUNCTIONS/eig.cc, 22 DLD-FUNCTIONS/hess.cc, DLD-FUNCTIONS/pinv.cc, DLD-FUNCTIONS/schur.cc, 23 DLD-FUNCTIONS/sqrtm.cc, DLD-FUNCTIONS/svd.cc, data.cc: Improve 24 docstrings. 25 262011-04-06 Rik <octave@nomad.inbox5.com> 27 28 * DLD-FUNCTIONS/dmperm.cc, data.cc: Clean up operator and function 29 indices. 30 312011-04-04 Rik <octave@nomad.inbox5.com> 32 33 * DLD-FUNCTIONS/nproc.cc: Spellcheck documentation for 3.4.1 release. 34 352011-04-04 Rik <octave@nomad.inbox5.com> 36 37 * DLD-FUNCTIONS/colamd.cc, data.cc, file-io.cc: Grammarcheck files 38 for 3.4.1 release. 39 402011-04-03 Rik <octave@nomad.inbox5.com> 41 42 * input.cc (add_input_event_hook, remove_input_event_hook): Improve 43 docstring. 44 * utils.cc (isvarname): Add seealso link to iskeyword(). 45 * variables.cc (missing_function_hook): Improve docstring. 46 472011-04-03 Rik <octave@nomad.inbox5.com> 48 49 * DLD-FUNCTIONS/dot.cc (blkmm): Improve docstring. 50 512011-04-03 Rik <octave@nomad.inbox5.com> 52 53 * data.cc (diag): Add documentation for 3-input form of diag. Add new 54 tests. 55 562011-04-03 Rik <octave@nomad.inbox5.com> 57 58 * data.cc (diag): Reverse previous changeset. Return 3-input form 59 of diag(). 60 612011-04-01 Rik <octave@nomad.inbox5.com> 62 63 * data.cc (diag): Remove archaic 3-input argument form of function. 64 Add all calling forms of function to docstring. 65 662011-04-01 Rik <octave@nomad.inbox5.com> 67 68 * DLD-FUNCTIONS/filter.cc: Fix orientation of initial conditions vector 69 (bug #32741). Revamp test vectors. 70 712011-04-01 Rik <octave@nomad.inbox5.com> 72 73 * DLD-FUNCTIONS/__fltk_uigetfile__.cc, DLD-FUNCTIONS/__init_fltk__.cc: 74 Correct typo in #include path (bug #32972). 75 762011-03-31 Rik <octave@nomad.inbox5.com> 77 78 * DLD-FUNCTIONS/onCleanup.cc: Remove non-existent @seealso link in 79 docstring. 80 812011-03-31 Rik <octave@nomad.inbox5.com> 82 83 * DLD-FUNCTIONS/quadcc.cc: Add reference to original paper in docstring. 84 852011-03-30 Jordi Gutiérrez Hermoso <jordigh@gmail.com> 86 87 * file-io.cc: Document the "all" parameter to fclose. 88 892011-03-29 Ben Abbott <bpabbott@mac.com> 90 91 * graphics.cc: Prevent ticks from being cropped by round-off errors 92 when limmode == auto (bug #32701). 93 942011-03-28 Rik <octave@nomad.inbox5.com> 95 96 * DLD-FUNCTIONS/inv.cc (inv, inverse), DLD-FUNCTIONS/tril.cc (tril), 97 data.cc (cumsum, szie), file-io.cc (fgets), ov-typeinfo.cc (typeinfo), 98 ov-usr-fcn.cc (nargout), utils.cc (make_absolute_filename), 99 variables.cc (who): Improve docstrings 100 1012011-03-25 John W. Eaton <jwe@octave.org> 102 103 * file-io.cc (Fmkstemp): Use gnulib::mkstemp. 104 * DLD-FUNCTIONS/__init_fltk__.cc (f): Use gnulib::floor. 105 1062011-03-18 Rik <octave@nomad.inbox5.com> 107 108 * dot.cc: Improve seealso cross references in docstring. 109 1102011-03-18 Rik <octave@nomad.inbox5.com> 111 112 * help.cc (get_help_text, get_help_text_from_file): Improve docstrings. 113 1142011-03-17 John W. Eaton <jwe@octave.org> 115 116 * ov-float.cc (octave_float_scalar::do_index_op): Widen to float 117 matrix, not double. 118 1192011-03-17 Rik <octave@nomad.inbox5.com> 120 121 * syscalls.cc (gethostname): Redo documentation string. 122 1232011-03-17 Iain Murray <iain@iainmurray.net> 124 125 * DLD-FUNCTIONS/nprocs.cc: Delete file. 126 * DLD-FUNCTIONS/nproc.cc: New file. New function nproc provided by 127 gnulib. 128 * DLD-FUNCTIONS/module-files: Add nproc.cc. 129 1302011-03-16 Iain Murray <iain@iainmurray.net> 131 132 * DLD-FUNCTIONS/nprocs.cc: New file. 133 * DLD-FUNCTIONS/module-files: Add nprocs.cc. 134 Expose nprocs and nprocs_conf from gnulib. 135 1362011-03-15 Marco Caliari <marco.caliari@univr.it> 137 138 * graphics.cc: Simplify calculation of number of tick labels. Fixes 139 bug #32692. 140 1412011-03-13 Konstantinos Poulios <logari81@googlemail.com> 142 143 * DLD-FUNCTIONS/__init_fltk__.cc (plot_window::plot_window): 144 Revert changes from 2011-02-26. 145 1462011-03-10 Konstantinos Poulios <logari81@googlemail.com> 147 148 * graphics.h.in: Add PERSISTENT mode to listener_mode. 149 (base_property::delete_listener): Take into account persistent 150 mode of a listener. 151 * graphics.cc (addlistener, dellistener): Accept a new optional 152 argument for persistent listeners. 153 1542011-03-07 Konstantinos Poulios <logari81@googlemail.com> 155 156 Bug #32482. 157 158 * graphics.h.in (axes::properties::update_yaxislocation, 159 axes::properties::update_yaxislocation): 160 Hook update_ylabel_position and update_xlabel_position 161 respectively. 162 1632011-03-06 Konstantinos Poulios <logari81@googlemail.com> 164 165 * graphics.cc (axes::properties::update_xlabel_position, 166 axes::properties::update_ylabel_position, 167 axes::properties::update_zlabel_position, 168 axes::properties::update_title_position): 169 Determine position also for empty axes labels/titles in order 170 to improve the tightinset calculation. 171 (axes::properties::get_extent): Take position of empty strings 172 into account for the calculation of axes extents. 173 1742011-03-03 Konstantinos Poulios <logari81@googlemail.com> 175 176 * graphics.h.in (axes::properties::get_extent): Add new optional 177 argument for ignoring the length of text objects. 178 * graphics.cc (axes::properties::get_extent): Add the possibility 179 of ignoring the length of text objects. 180 (axes::properties::calc_tightbox): Take only text height into 181 account for the calculation of the tight box. 182 1832011-02-26 Konstantinos Poulios <logari81@googlemail.com> 184 185 * DLD-FUNCTIONS/__init_fltk__.cc (plot_window::plot_window): 186 Move canvas allocation after the configuration of the menubar. 187 (plot_window::show_menubar, plot_window::hide_menubar): 188 Simplify source code. 189 1902011-02-26 Rik <octave@nomad.inbox5.com> 191 192 * DLD-FUNCTIONS/besselj.cc, DLD-FUNCTIONS/cellfun.cc, 193 DLD-FUNCTIONS/filter.cc, DLD-FUNCTIONS/matrix_type.cc, 194 DLD-FUNCTIONS/strfind.cc, DLD-FUNCTIONS/sub2ind.cc, bitfcns.cc, 195 data.cc, error.cc, file-io.cc, graphics.cc, help.cc, input.cc, 196 load-path.cc, load-save.cc, oct-parse.yy, ov-base.cc, ov-cell.cc, 197 ov-class.cc, ov-fcn-handle.cc, ov-fcn-inline.cc, ov-flt-re-mat.cc, 198 ov-struct.cc, ov-usr-fcn.cc, pr-output.cc, pt-mat.cc, sparse.cc, 199 strfns.cc, syscalls.cc, sysdep.cc, toplev.cc, utils.cc, variables.cc: 200 Rewrite error strings to use variables named in documentation. 201 2022011-02-23 John W. Eaton <jwe@octave.org> 203 204 * mex.cc (mxArray_base::dup): Return retval. 205 2062011-02-22 Konstantinos Poulios <logari81@googlemail.com> 207 208 * graphics.h.in (class axes::properties): New hidden property 209 looseinset. 210 (axes::properties::update_looseinset): New function. 211 * graphics.cc (axes::properties::init): Initialize looseinset. 212 (axes::properties::sync_positions): Take looseinset into account 213 instead of default_axes_position. 214 (axes::properties::set_defaults): Default values for looseinset. 215 2162011-02-21 Kai Habel <kai.habel@gmx.de> 217 218 * src/DLD-FUNCTIONS/__fltk_uigetfile__cc: 219 Use forward slash as file seperator for fltk file path processing only. 220 2212011-02-21 Kai Habel <kai.habel@gmx.de> 222 223 * src/DLD-FUNCTIONS/__init_fltk__.cc(plot_window::plot_window): 224 Call size_range early to allow window resizing for MacOS and MinGW. 225 2262011-02-21 John W. Eaton <jwe@octave.org> 227 228 * DLD-FUNCTIONS/regexp.cc: Assume we have PCRE. 229 2302011-02-19 Rik <octave@nomad.inbox5.com> 231 232 * src/DLD-FUNCTIONS/regexp.cc: Use PCRE regular expressions everywhere 233 now that Octave requires library for building. Remove testif PCRE 234 on testing blocks and adjust all documentation. 235 2362011-02-18 Konstantinos Poulios <logari81@googlemail.com> 237 238 * graphics.cc (axes::properties::sync_positions): Fix a small 239 bug introduced with changes from 2011-02-14. 240 2412011-02-15 Konstantinos Poulios <logari81@googlemail.com> 242 243 Bug #32319. 244 245 * DLD-FUNCTIONS/__init_fltk__.cc: Include sysdep.h. 246 (class OpenGL_fltk): Replace integer print_fid member with 247 boolean print_mode. New class member print_cmd of type string. 248 (OpenGL_fltk::print): Accept command string argument instead of 249 file id. 250 (OpenGL_fltk::draw): Invoke and terminate an octave process for 251 the printing job. 252 (plot_window::print, figure_manager::print, 253 figure_manager::do_print): Replace file id with command string. 254 (fltk_graphics_toolkit::print_figure): Remove parsing of file id. 255 * graphics.cc (drawnow): Recognize strings beginning with "|" as 256 pipelines instead of filenames. 257 2582011-02-14 David Bateman <dbateman@free.fr> 259 260 * gl-render.cc (void opengl_renderer::draw_patch ( 261 const patch::properties &)): Obtain the marker color directly 262 from the cdata rather that the facecolor, as the facecolor might 263 not have been set. Bug #31801. 264 2652011-02-14 Konstantinos Poulios <logari81@googlemail.com> 266 267 * graphics.cc (axes::properties::sync_positions): Calculation of 268 tightinset property. 269 2702011-02-13 Konstantinos Poulios <logari81@googlemail.com> 271 272 Bugs #31800, #32211. 273 274 * gl-render.cc (opengl_renderer::draw_axes_boxes): Draw only one 275 y-axis line when plotyy tag is present. 276 (opengl_renderer::draw_text): Remove superfluous calls of set_font 277 and set_color. 278 * graphics.h.in (class text::properties): Tag color with "u" 279 qualifier. 280 (text::properties::update_color): New function. 281 2822011-02-13 Konstantinos Poulios <logari81@googlemail.com> 283 284 * graphics.h.in (axes::properties::update_boundingbox, 285 axes::properties::update_dataaspectratio, 286 axes::properties::update_dataaspectratiomode, 287 axes::properties::update_plotboxaspectratio, 288 axes::properties::update_plotboxaspectratiomode): 289 Replace update_transform hooks with sync_positions. 290 2912011-02-13 Konstantinos Poulios <logari81@googlemail.com> 292 293 * graphics.h.in (axes::properties::get_extent, 294 axes::properties::calc_tightbox): New functions prototypes. 295 (axes::properties::update_view): Hook sync_positions. 296 (axes::properties::update_outerposition, 297 axes::properties::update_position): Set activepositionproperty 298 appropriately. 299 (text::properties::update_string): Call update_text_extent after 300 request_autopos. 301 * graphics.cc (axes::properties::sync_positions): Enable 302 synchronization of position and outer position. Take label and 303 title extents in the calculation of outerposition into account. 304 Do iterative calculation of position when activepositionproperty 305 is set to outerposition. 306 (axes::properties::update_title_position): Use new function 307 get_extent. 308 (axes::properties::update_autopos): Handle new tag "sync". 309 (axes::properties::get_extent): New function calculating the 310 tight box which contains all axes labels and axes title. 311 (axes::properties::calc_tightbox): New function calculating axes 312 tight box. 313 (axes::properties::update_units): Don't call any hooks and listeners 314 for position, outerposition and tightset. 315 (text::properties::update_text_extent): Request axes positions 316 synchronization when axes labels or title extents change. 317 3182011-02-11 John W. Eaton <jwe@octave.org> 319 320 * load-path.cc (strip_trailing_separators): Declare K as size_t 321 rather than octave_idx_type. 322 3232011-02-10 Carlo de Falco <kingcrimson@tiscali.it> 324 325 * DLD-FUNCTIONS/mgorth.cc: New file implementing modified 326 Gram-Schmidt orthogonalization. 327 3282011-02-10 John W. Eaton <jwe@octave.org> 329 330 * DLD-FUNCTIONS/regexp.cc (octregexp_list): Avoid deprecated 331 Array<T>::resize function. 332 3332011-02-09 Konstantinos Poulios <logari81@googlemail.com> 334 335 * graphics.cc (axes::properties::update_xlabel_position, 336 axes::properties::update_ylabel_position, 337 axes::properties::update_zlabel_position, 338 axes::properties::update_title_position): Use get_transform only 339 when it is required. 340 (text::properties::request_autopos): Remove redundant temporary 341 settting of autopos_tag to none. 342 3432011-02-08 John W. Eaton <jwe@octave.org> 344 345 * pr-output.cc (INSTANTIATE_ABS): Omit inline keyword from 346 template instantiation. From Orion Poplawski <orion@cora.nwra.com>. 347 3482011-02-08 John W. Eaton <jwe@octave.org> 349 350 * DLD-FUNCTIONS/chol.cc: Delete obsolete test of spcholinv. 351 3522011-02-08 John W. Eaton <jwe@octave.org> 353 354 * oct-parse.yy (parse_fcn_file): Don't warn about coercing 355 nested functions to subfunctions if yyparse failed. 356 3572011-02-06 Konstantinos Poulios <logari81@googlemail.com> 358 359 * graphics.h.in (class axes::properties): Tag positionmode, 360 rotationmode, horizontalalignmentmode, verticalalignmentmode 361 with "u" qualifier. New hidden property autopos_tag. 362 (axes::properties::request_autopos, 363 axes::properties::update_positionmode, 364 axes::properties::update_rotationmode, 365 axes::properties::update_horizontalalignmentmode, 366 axes::properties::update_verticalalignmentmode): New functions 367 (base_properties::update_autopos): New virtual function. 368 (axes::properties::update_xlabel_position, 369 axes::properties::update_ylabel_position, 370 axes::properties::update_zlabel_position, 371 axes::properties::update_title_position): Made public. 372 * graphics.cc (base_properties::update_autopos, 373 axes::properties::update_autopos, 374 text::properties::request_autopos): New functions. 375 (axes::properties::init, axes::properties::set_defaults, 376 axes::properties::set_xlabel, axes::properties::set_ylabel, 377 axes::properties::set_zlabel, axes::properties::set_title): 378 Set autopos_tag for {x,y,z}label and title. 379 (axes::properties::update_xlabel_position, 380 axes::properties::update_ylabel_position, 381 axes::properties::update_zlabel_position, 382 axes::properties::update_title_position): Run only for non-empty 383 strings. Set autopos_tag temporarily to none in order to prevent 384 race conditions. 385 3862011-02-06 Konstantinos Poulios <logari81@googlemail.com> 387 388 * graphics.cc: Untabify and improve indentation. 389 3902011-02-06 Konstantinos Poulios <logari81@googlemail.com> 391 392 * graphics.cc (updating_axes_layout): New file-scope variable. 393 (axes::properties::update_axes_layout): Return immediately if 394 updating_axes_layout is true. 395 3962011-02-03 John W. Eaton <jwe@octave.org> 397 398 * octave.cc: Include <sys/types.h> and <unistd.h> for isatty. 399 Bug #32336. 400 4012011-02-03 Konstantinos Poulios <logari81@googlemail.com> 402 403 * gl-render.h: (opengl_renderer::draw_axes_titles): Remove prototype. 404 * gl-render.cc: (opengl_renderer::draw_axes_titles): Remove function. 405 (opengl_renderer::draw_axes_x_grid, 406 opengl_renderer::draw_axes_y_grid, 407 opengl_renderer::draw_axes_z_grid): Remove calculation of axis label 408 positions. 409 * graphics.cc: (axes::properties::update_xlabel_position, 410 axes::properties::update_ylabel_position 411 axes::properties::update_zlabel_position 412 axes::properties::update_title_position): New functions calculating 413 label and title positions. 414 (axes::properties::get_ticklabel_extents): New function. 415 * graphics.h.in: Provide functions prototypes. 416 * txt-eng-ft.cc (ft_render::get_extent): New function version. 417 * txt-eng-ft.h (ft_render::get_extent): Provide function prototype. 418 4192011-02-03 Kai Habel <kai.habel@gmx.de> 420 421 * src/gl-render.cc(text_to_pixels): Use text_renderer object only 422 when freetype is available 423 4242011-02-03 John W. Eaton <jwe@octave.org> 425 426 * ov-base.cc (octave_base_value::as_mxArray): Return 0 silently. 427 * mex.cc (mxArray_octave_value::dup): If value can't be 428 converted to mxArray object, then simply create a clone of the 429 mxArray_octave_value container. 430 4312011-02-02 Rik <octave@nomad.inbox5.com> 432 433 * DLD-FUNCTIONS/eigs.cc, DLD-FUNCTIONS/qr.cc: Use testif to only run 434 some sparse tests when necessary libraries are installed. 435 4362011-02-03 Konstantinos Poulios <logari81@googlemail.com> 437 438 * graphics.cc (axes::properties::update_axes_layout): 439 New function calculating axes layout. 440 (axes::properties::update_ticklengths): New function calculating 441 tick lengths and offsets. 442 * graphics.h.in (class axes::properties):: New private data 443 describing axes layout and corresponding "get" methods. Provide 444 declaration and call dependencies for "update_axes_layout". 445 Tag layer, yaxislocation, xaxislocation, tickdir, tickdirmode, 446 with "u" qualifier. 447 (axes::properties::update_layer, 448 axes::properties::update_yaxislocation, 449 axes::properties::update_xaxislocation, 450 axes::properties::update_ticklengths, 451 axes::properties::update_tickdir, 452 axes::properties::update_tickdirmode): New functions 453 * gl-render.cc: (opengl_renderer::draw_axes_planes, 454 opengl_renderer::draw_axes_boxes, 455 opengl_renderer::draw_axes_x_grid, 456 opengl_renderer::draw_axes_y_grid, 457 opengl_renderer::draw_axes_z_grid, 458 opengl_renderer::draw_axes_title): Simplify arguments list. 459 (opengl_renderer::draw_axes): Remove calculation of axes layout. 460 (opengl_renderer::setup_opengl_transformation): Disable antializing. 461 * gl-render.h: Adapt functions prototypes. 462 4632011-02-01 John W. Eaton <jwe@octave.org> 464 465 * gl-render.h (opengl_renderer::draw (const Matrix& hlist)): 466 Use get_object instead of lookup. 467 * DLD-FUNCTIONS/__init_fltk__.cc (Fl_Gl_Window::draw): Likewise. 468 * graphics.h.in (gh_manager::get_object (double)): New function. 469 * gl-renderer.h (opengl_renderer::draw (const graphics_handle&)): 470 Delete. 471 * gl2ps-renderer.h (glps_renderer::draw (const graphics_handle&)): 472 Delete. 473 4742011-02-01 John W. Eaton <jwe@octave.org> 475 476 * gl2ps-renderer.h: Remove virtual tag for derived virtual functions. 477 (opengl_renderer (const graphics_handle&)): New function. 478 * DLD-FUNCTIONS/__init_fltk__.cc (OpenGL_fltk::Fl_Gl_Window): 479 Don't use new to create temporary glps_renderer object. 480 4812011-02-01 Michael Godfrey <godfrey@isl.stanford.edu> 482 483 * gl2ps-renderer.cc (glps_renderer::draw): 484 Return immediately if fdopen fails. 485 4862011-02-01 John W. Eaton <jwe@octave.org> 487 488 * gl-render.cc: (opengl_renderer::setup_opengl_transformation, 489 opengl_renderer::draw_axes_planes, 490 opengl_renderer::draw_axes_boxes, 491 opengl_renderer::draw_axes_x_grid, 492 opengl_renderer::draw_axes_y_grid, 493 opengl_renderer::draw_axes_z_grid, 494 opengl_renderer::draw_axes_title, 495 opengl_renderer::draw_axes_children): 496 New private functions, extracted from opengl_renderer::draw_axes. 497 (opengl_renderer::draw_axes): Call subfunctions to do most of 498 the work. 499 * gl-render.h: Provide decls. 500 5012011-01-31 John W. Eaton <jwe@octave.org> 502 503 * sysdep.cc (get_P_tmpdir): New function. 504 * file-io.cc (FP_tmpdir): Use it. 505 Bug #32158. 506 5072011-01-30 Rik <octave@nomad.inbox5.com> 508 509 * DLD-FUNCTIONS/__init_fltk__.cc (mouse_wheel_zoom, gui_mode): Rename 510 functions and strip "fltk_" prefix. Improve docstrings. 511 5122011-01-30 John W. Eaton <jwe@octave.org> 513 514 * txt-eng-ft.cc (ft_manager::ft_manager): Omit fc_init_done from 515 initialization list if fontconfig is missing. 516 5172011-01-30 Pascal Dupuis <Pascal.Dupuis@worldonline.be> 518 519 * oct-parse.yy (class stdio_stream_reader): Disallow copying. 520 5212011-01-30 John W. Eaton <jwe@octave.org> 522 523 * graphics.cc (gnuplot_toolkit::redraw): Call __gnuplot_drawnow__, 524 not gnuplot_drawnow. 525 (gnuplot_toolkit::print_figure): Likewise. 526 5272011-01-30 John W. Eaton <jwe@octave.org> 528 529 * Makefile.am (OCTAVE_LIBS): Remove $(ARPACK_LDFLAGS) and 530 $(ARPACK_LIBS) from the list. 531 (DLD-FUNCTIONS/eigs.df): Don't add $(ARPACK_CPPFLAGS) to CPPFLAGS. 532 (DLD_FUNCTIONS_eigs_la_CPPFLAGS): Remove $(ARPACK_CPPFLAGS) from 533 the list. 534 (DLD_FUNCTIONS_eigs_la_LIBADD): Remove $(ARPACK_LDFLAGS) and 535 $(ARPACK_LIBS) from the list. 536 5372011-01-30 John W. Eaton <jwe@octave.org> 538 539 * load-save.cc (Fload): Doc fix. 540 5412011-01-29 Rik <octave@nomad.inbox5.com> 542 543 * DLD-FUNCTIONS/__init_fltk__.cc (fltk_gui_mode, fltk_mouse_wheel_zoom): 544 Improve docstrings. 545 546 * graphics.cc (available_graphics_toolkits): Fix typo in docstring. 547 5482011-01-29 Rik <octave@nomad.inbox5.com> 549 550 * syscalls.cc (S_ISSOCK, S_ISCHR): Improve docstrings 551 5522011-01-29 Rik <octave@nomad.inbox5.com> 553 554 * dirfns.cc (readdir, filesep, pathsep): Improve docstrings 555 * file-io.cc (tmpnam): Improve docstring 556 * input.cc (filemarker): Improve docstring 557 * syscalls.cc (stat, lstat): Improve docstring 558 5592011-01-29 Rik <octave@nomad.inbox5.com> 560 561 * DLD-FUNCTIONS/getrusage.cc, toplev.cc: Improve docstring 562 5632011-01-29 John W. Eaton <jwe@octave.org> 564 565 * DLD-FUNCTIONS/__fltk_uigetfile__.cc (__fltk_uigetfile__): 566 Don't allocate Fl_File_Chooser object with new. Delete unused 567 variable fargs. Allocate default retval values in initial 568 declaration. 569 5702011-01-29 John W. Eaton <jwe@octave.org> 571 572 * DLD-FUNCTIONS/__init_fltk__.cc: Undefine Complex after 573 including FLTK headers. 574 * DLD-FUNCTIONS/__fltk_uigetfile__.cc: Likewise. 575 5762011-01-29 John W. Eaton <jwe@octave.org> 577 578 * Makefile.am (__fltk_uigetfile__): Use the same compiler flags 579 as for __init_fltk__. 580 5812011-01-28 John W. Eaton <jwe@octave.org> 582 583 * DLD-FUNCTIONS/eigs.cc (Feigs): Assume we have ARPACK. 584 Use "test" instead of "testif HAVE_ARPACK". 585 * toplev.cc (octave_config_info): Remove ARPACK_CPPFLAGS, 586 ARPACK_LDFLAGS, ARPACK_LIBS from the struct. 587 * oct-conf.h.in (OCTAVE_CONF_ARPACK_CPPFLAGS, 588 OCTAVE_CONF_ARPACK_LDFLAGS, OCTAVE_CONF_ARPACK_LIBS): 589 Delete #defines. 590 5912011-01-28 Kai Habel <kai.habel@gmx.de> 592 593 * DLD-FUNCTIONS/__fltk_uigetfile__.cc: File filter value is 594 1-based now. 595 5962011-01-28 John W. Eaton <jwe@octave.org> 597 598 * pr-output.cc (Foutput_max_field_width): Set internal variable 599 output_max_field_width, not output_precision. 600 6012011-01-28 John W. Eaton <jwe@octave.org> 602 603 * pr-output.cc (Fformat, Ffixed_point_format, Foutput_precision, 604 Foutput_max_field_width, Fsplit_long_rows, Fprint_empty_dimensions): 605 Update @seealso lists. 606 6072011-01-27 Rik <octave@nomad.inbox5.com> 608 609 * graphics.cc: Improve reset docstring. 610 6112011-01-27 Kai Habel <kai.habel@gmx.de> 612 613 * DLD-FUNCTIONS/__init_fltk__.cc (__fltk_uigetfile__): Remove here. 614 * DLD-FUNCTIONS/__fltk_uigetfile__.cc: New file. 615 * DLD-FUNCTIONS/module-files: Add __fltk_uigetfile__.cc. 616 Bug #32190. 617 6182011-01-27 John W. Eaton <jwe@octave.org> 619 620 * DLD-FUNCTIONS/dlmread.cc (Fdlmread): Skip leading whitespace 621 on each line. 622 6232011-01-27 John W. Eaton <jwe@octave.org> 624 625 * ov-struct.cc (octave_struct::subsasgn, 626 octave_scalar_struct::subsasgn): Call undef_subsasgn on object 627 returned by octave_value::empty_conv if LHS is initially undefined. 628 Bug #32242. 629 6302011-01-27 John W. Eaton <jwe@octave.org> 631 632 * input.cc (input_event_hook): Fix incorrect use of iterator. 633 Reported by Pascal Dupuis <Pascal.Dupuis@worldonline.be>. 634 6352011-01-27 John W. Eaton <jwe@octave.org> 636 637 * ov-class.cc (octave_class::reconstruct_exemplar): 638 Call constructor with do_multi_index_op instead of feval. 639 Verify that symbol_table::find_method did return a class 640 constructor for the correct type. Bug #32242. 641 6422011-01-26 John W. Eaton <jwe@octave.org> 643 644 * lex.ll, graphics.cc, gl-render.cc, ov-mex-fcn.h, graphics.h.in: 645 Delete trailing whitespace. 646 6472011-01-26 John W. Eaton <jwe@octave.org> 648 649 Bug #32242. 650 651 * ov.h, ov.cc (octave_value::undef_subsasgn): New function. 652 * ov-class.h, ov-class.cc (octave_class::undef_subsasgn, 653 octave_class::subsasgn_common): New functions. 654 * ov-base.h, ov-base.cc (octave_base_value::subsasgn): If 655 undefined, call undef_subsasgn on object returned by 656 octave_value::empty_conv. 657 (octave_base_value::undef_subsasgn): New virtual function. 658 (octave_base_value::subsasgn): Only handle case of undefined 659 values here. 660 6612011-01-26 Pascal Dupuis <Pascal.Dupuis@worldonline.be> 662 John W. Eaton <jwe@octave.org> 663 664 * graphics.h.in (scaler::scaler (const std::string&)): New constructor. 665 (graphics_handle::operator++, graphics_hanlde::operator--): 666 Implement as recommended by Effective C++. 667 668 * graphics.h.in (class base_property, class array_property, 669 class children_property, class property, class graphics_xform, 670 class graphics_event): Explicitelly iniatialize 671 all data members in constructor initialisation list. 672 * gl-render.cc (class patch_tesselator): Likewise 673 * graphics.cc (class radio_values, class gh_manager), 674 (class callback_event, class set_event): Likewise. 675 676 * graphics.h.in (class base_graphics_property): Disallow copying. 677 * graphics.cc (class function_event): Likewise. 678 (function_event::function_event (void)): Delete implementation. 679 6802011-01-25 Rik <octave@nomad.inbox5.com> 681 682 * DLD-FUNCTIONS/config-module.awk: Use automake variable for 683 portability. 684 * Makefile.am (uninstall-oct): Use GNU Make features for portability 685 6862011-01-25 Rik <octave@nomad.inbox5.com> 687 688 * DLD-FUNCTIONS/fft.cc, DLD-FUNCTIONS/fft2.cc, DLD-FUNCTIONS/fftn.cc, 689 load-save.cc: Make docstrings static by removing documentation 690 depending on #ifdef configuration variables. 691 6922011-01-25 John W. Eaton <jwe@octave.org> 693 694 * Makefile.am (OCT_STAMP_FILES): New variable. 695 (DISTCLEANFILES): Add $(OCT_STAMP_FILES) to the list. 696 (all-local): Depend on $(OCT_STAMP_FILES) instead of $(OCT_FILES). 697 698 * DLD-FUNCTIONS/config-module.awk: Create stamp files when 699 creating .oct file links. 700 7012011-01-25 Konstantinos Poulios <logari81@googlemail.com> 702 703 * src/graphics.cc (text::properties::update_text_extent): 704 Disable warning about missing freetype library. 705 7062011-01-25 Konstantinos Poulios <logari81@googlemail.com> 707 708 * src/graphics.cc (axes::properties::calc_ticks_and_lims): 709 Fixing wrong dimensions of minor ticks vector. 710 7112011-01-25 John W. Eaton <jwe@octave.org> 712 713 * oct-map.h (octave_map::octave_map (const string_vector&)): 714 Initialize xvals elements to 1x1 Cells. Bug #32222. 715 7162011-01-24 Pascal Dupuis <Pascal.Dupuis@worldonline.be> 717 718 * ov-base-mat.h (class octave_base_matrix): Disallow assignment. 719 * ov-range.h (class octave_range): Likewise. 720 7212011-01-23 John W. Eaton <jwe@octave.org> 722 723 * ov-struct.cc (octave_scalar_struct::print_raw): 724 Avoid unnecessary conversion of map value to Cell. 725 7262011-01-22 John W. Eaton <jwe@octave.org> 727 728 * symtab.h (symbol_table::parent_classes): 729 Also add parents of parents to the list. Bug #32210. 730 7312011-01-22 Jaroslav Hajek <highegg@gmail.com> 732 733 * ov-class.cc (octave_class::subsasgn): Find appropriate unique base 734 before trying any indexed assignment. Bug #32182. 735 7362011-01-22 Konstantinos Poulios <logari81@googlemail.com> 737 738 * graphics.h.in, graphics.cc (xmtick, ymtick, zmtick): 739 New properties holding minor ticks positions. 740 (axes::properties::calc_ticks_and_lims): Calculation of minor ticks 741 positions. 742 * gl-render.h, gl-render.cc 743 (opengl_renderer::render_grid, opengl_renderer::render_tickmarks, 744 opengl_renderer::render_ticktexts): New functions. 745 (opengl_renderer::draw_axes): Make use of new rendering functions 746 and minor ticks positions. 747 Correct axis label positioning for x axis at top and y axis at right 748 position. Bug #31800. 749 Change axis positioning policy for 3D plots, keeping x and y axis 750 always at bottom. 751 7522011-01-22 Jaroslav Hajek <highegg@gmail.com> 753 754 * gl-render.cc: Use octave_refcount for refcounting. 755 * oct-map.h: Ditto. 756 * ov-base.h: Ditto. 757 * pt-mat.cc: Ditto. 758 7592011-01-22 Pascal Dupuis <Pascal.Dupuis@worldonline.be> 760 761 * ov-mex-fcn.h, txt-eng-ft.cc, mex.cc: 762 Initialize all data members in initialization list. 763 7642011-01-22 Pascal Dupuis <Pascal.Dupuis@worldonline.be> 765 766 * DLD-FUNCTIONS/__init_fltk__.cc (fltk_uimenu): Disallow copying. 767 (class plot_window): Likewise. 768 * c-file-ptr-stream.h (class c_file_ptr_buf): Likewise. 769 (class c_file_ptr_stream): Likewise. 770 (class c_zfile_ptr_buf): Likewise. 771 * gl-render.cc (class opengl_tesselator): Likewise. 772 (class patch_tesselator): Likewise. 773 * lex.ll (class flex_stream_reader): Likewise. 774 * mex.cc (class mex): Likewise. 775 * oct-procbuf.h (class octave_procbuf): Likewise. 776 * pt-cbinop.h (class tree_compound_binary_expression): Likewise. 777 * symtab.h (class scope_id_cache): Likewise. 778 (class symbol_table): Likewise. 779 * txt-eng-ft.h (class ft_manager): Likewise. 780 (class ft_render): Likewise. 781 * unwind-prot.h (class unwind_protect::elem): Likewise. 782 (class unwind_protect::fcn_arg_elem): Likewise. 783 (class unwind_protect::method_elem): Likewise. 784 (class unwind_protect::restore_var_elem): Likewise. 785 (class unwind_protect::delete_ptr_elem): Likewise. 786 (class unwind_protect): Likewise. 787 * zfstream.h (class gzfilebuf): Likewise. 788 789 * mex.cc (class mxArray_octave_value): Disallow assignment. 790 (class mxArray_matlab): Likewise. 791 (class mxArray_number): Likewise. 792 (class mxArray_sparse): Likewise. 793 (class mxArray_struct): Likewise. 794 (class mxArray_cell): Likewise. 795 796 * unwind-prot.h (unwind_protect::elem::elem): 797 Provide default constructor. 798 7992011-01-21 Konstantinos Poulios <logari81@googlemail.com> 800 801 * src/graphics.cc (axes::properties::set_xlabel, 802 axes::properties::set_ylabel, axes::properties::set_zlabel): 803 Setting axis label color from axis color. 804 8052011-01-20 Rik <octave@nomad.inbox5.com> 806 807 * src/file-io.cc, src/variables.cc: Prevent doubled quotes around @table 808 items in Info. 809 8102011-01-20 Rik <octave@nomad.inbox5.com> 811 812 * src/DLD-FUNCTIONS/chol.cc, src/DLD-FUNCTIONS/luinc.cc, 813 src/DLD-FUNCTIONS/qz.cc: Use non-breaking spaces between certain 814 adjectives and their linked nouns in docstrings 815 8162011-01-20 Rik <octave@nomad.inbox5.com> 817 818 * src/DLD-FUNCTIONS/str2double.cc, src/data.cc, src/mappers.cc, 819 src/variables.cc: Use @nospell macro on certain words in docstring. 820 8212011-01-20 John W. Eaton <jwe@octave.org> 822 823 * DLD-FUNCTIONS/__delaunayn__.cc, 824 DLD-FUNCTIONS/__init_fltk__.cc, 825 DLD-FUNCTIONS/__magick_read__.cc, DLD-FUNCTIONS/cellfun.cc, 826 DLD-FUNCTIONS/quadcc.cc, DLD-FUNCTIONS/regexp.cc, data.cc, 827 gripes.cc, ls-mat5.cc, toplev.cc, variables.cc: 828 Style fixes for error and warning messages. 829 8302011-01-20 John W. Eaton <jwe@octave.org> 831 832 * Array.cc, Sparse.cc, base-lu.cc, idx-vector.cc, 833 lo-array-gripes.cc: Style fixes for error and warning messages. 834 8352011-01-20 John W. Eaton <jwe@octave.org> 836 837 * DLD-FUNCTIONS/__contourc__.cc, DLD-FUNCTIONS/__delaunayn__.cc, 838 DLD-FUNCTIONS/__dsearchn__.cc, DLD-FUNCTIONS/__glpk__.cc, 839 DLD-FUNCTIONS/__init_fltk__.cc, 840 DLD-FUNCTIONS/__lin_interpn__.cc, 841 DLD-FUNCTIONS/__magick_read__.cc, 842 DLD-FUNCTIONS/__pchip_deriv__.cc, DLD-FUNCTIONS/__qp__.cc, 843 DLD-FUNCTIONS/__voronoi__.cc, DLD-FUNCTIONS/amd.cc, 844 DLD-FUNCTIONS/balance.cc, DLD-FUNCTIONS/besselj.cc, 845 DLD-FUNCTIONS/bsxfun.cc, DLD-FUNCTIONS/ccolamd.cc, 846 DLD-FUNCTIONS/cellfun.cc, DLD-FUNCTIONS/chol.cc, 847 DLD-FUNCTIONS/colamd.cc, DLD-FUNCTIONS/colloc.cc, 848 DLD-FUNCTIONS/convhulln.cc, DLD-FUNCTIONS/daspk.cc, 849 DLD-FUNCTIONS/dasrt.cc, DLD-FUNCTIONS/dassl.cc, 850 DLD-FUNCTIONS/det.cc, DLD-FUNCTIONS/dlmread.cc, 851 DLD-FUNCTIONS/dmperm.cc, DLD-FUNCTIONS/dot.cc, 852 DLD-FUNCTIONS/eig.cc, DLD-FUNCTIONS/eigs.cc, 853 DLD-FUNCTIONS/fft.cc, DLD-FUNCTIONS/fft2.cc, 854 DLD-FUNCTIONS/fftn.cc, DLD-FUNCTIONS/fftw.cc, 855 DLD-FUNCTIONS/filter.cc, DLD-FUNCTIONS/find.cc, 856 DLD-FUNCTIONS/gammainc.cc, DLD-FUNCTIONS/givens.cc, 857 DLD-FUNCTIONS/hex2num.cc, DLD-FUNCTIONS/inv.cc, 858 DLD-FUNCTIONS/kron.cc, DLD-FUNCTIONS/lookup.cc, 859 DLD-FUNCTIONS/lsode.cc, DLD-FUNCTIONS/lu.cc, 860 DLD-FUNCTIONS/luinc.cc, DLD-FUNCTIONS/matrix_type.cc, 861 DLD-FUNCTIONS/max.cc, DLD-FUNCTIONS/md5sum.cc, 862 DLD-FUNCTIONS/onCleanup.cc, DLD-FUNCTIONS/qr.cc, 863 DLD-FUNCTIONS/quad.cc, DLD-FUNCTIONS/quadcc.cc, 864 DLD-FUNCTIONS/qz.cc, DLD-FUNCTIONS/rand.cc, 865 DLD-FUNCTIONS/regexp.cc, DLD-FUNCTIONS/schur.cc, 866 DLD-FUNCTIONS/spparms.cc, DLD-FUNCTIONS/sqrtm.cc, 867 DLD-FUNCTIONS/str2double.cc, DLD-FUNCTIONS/strfind.cc, 868 DLD-FUNCTIONS/sub2ind.cc, DLD-FUNCTIONS/svd.cc, 869 DLD-FUNCTIONS/syl.cc, DLD-FUNCTIONS/symbfact.cc, 870 DLD-FUNCTIONS/symrcm.cc, DLD-FUNCTIONS/tril.cc, 871 DLD-FUNCTIONS/tsearch.cc, DLD-FUNCTIONS/typecast.cc, 872 DLD-FUNCTIONS/urlwrite.cc, OPERATORS/op-b-sbm.cc, 873 OPERATORS/op-bm-sbm.cc, OPERATORS/op-cdm-cdm.cc, 874 OPERATORS/op-chm.cc, OPERATORS/op-cm-cm.cc, 875 OPERATORS/op-cm-m.cc, OPERATORS/op-cm-scm.cc, 876 OPERATORS/op-cm-sm.cc, OPERATORS/op-cs-cs.cc, 877 OPERATORS/op-cs-scm.cc, OPERATORS/op-cs-sm.cc, 878 OPERATORS/op-dm-dm.cc, OPERATORS/op-dms-template.cc, 879 OPERATORS/op-fcdm-fcdm.cc, OPERATORS/op-fcm-fcm.cc, 880 OPERATORS/op-fcm-fcs.cc, OPERATORS/op-fcm-fm.cc, 881 OPERATORS/op-fcm-fs.cc, OPERATORS/op-fcs-fcm.cc, 882 OPERATORS/op-fcs-fcs.cc, OPERATORS/op-fcs-fm.cc, 883 OPERATORS/op-fcs-fs.cc, OPERATORS/op-fdm-fdm.cc, 884 OPERATORS/op-fm-fcm.cc, OPERATORS/op-fm-fcs.cc, 885 OPERATORS/op-fm-fm.cc, OPERATORS/op-fm-fs.cc, 886 OPERATORS/op-fs-fcm.cc, OPERATORS/op-fs-fcs.cc, 887 OPERATORS/op-fs-fm.cc, OPERATORS/op-int-concat.cc, 888 OPERATORS/op-m-cm.cc, OPERATORS/op-m-m.cc, 889 OPERATORS/op-m-scm.cc, OPERATORS/op-m-sm.cc, 890 OPERATORS/op-pm-pm.cc, OPERATORS/op-pm-scm.cc, 891 OPERATORS/op-pm-sm.cc, OPERATORS/op-pm-template.cc, 892 OPERATORS/op-range.cc, OPERATORS/op-s-scm.cc, 893 OPERATORS/op-sbm-b.cc, OPERATORS/op-sbm-bm.cc, 894 OPERATORS/op-sbm-sbm.cc, OPERATORS/op-scm-cm.cc, 895 OPERATORS/op-scm-cs.cc, OPERATORS/op-scm-m.cc, 896 OPERATORS/op-scm-s.cc, OPERATORS/op-scm-scm.cc, 897 OPERATORS/op-scm-sm.cc, OPERATORS/op-sm-cm.cc, 898 OPERATORS/op-sm-cs.cc, OPERATORS/op-sm-m.cc, 899 OPERATORS/op-sm-s.cc, OPERATORS/op-sm-scm.cc, 900 OPERATORS/op-sm-sm.cc, OPERATORS/op-str-str.cc, 901 OPERATORS/op-ui64-ui64.cc, bitfcns.cc, c-file-ptr-stream.cc, 902 c-file-ptr-stream.h, comment-list.h, data.cc, debug.cc, debug.h, 903 defun-int.h, defun.cc, dynamic-ld.cc, error.cc, file-io.cc, 904 gl-render.cc, gl-render.h, gl2ps-renderer.cc, gl2ps-renderer.h, 905 gl2ps.c, gl2ps.h, graphics.cc, graphics.h.in, help.cc, input.cc, 906 lex.h, lex.ll, load-path.cc, load-path.h, load-save.cc, 907 load-save.h, ls-ascii-helper.cc, ls-hdf5.cc, ls-hdf5.h, 908 ls-mat-ascii.cc, ls-mat4.cc, ls-mat4.h, ls-mat5.cc, 909 ls-oct-ascii.cc, ls-oct-ascii.h, ls-oct-binary.cc, mappers.cc, 910 mex.cc, mex.h, mexproto.h, mxarray.h.in, oct-hist.cc, 911 oct-lvalue.cc, oct-lvalue.h, oct-map.cc, oct-map.h, oct-obj.cc, 912 oct-obj.h, oct-parse.yy, oct-procbuf.cc, oct-stream.cc, 913 oct-stream.h, octave.cc, ov-base-diag.cc, ov-base-diag.h, 914 ov-base-int.cc, ov-base-int.h, ov-base-mat.cc, ov-base-mat.h, 915 ov-base-scalar.cc, ov-base-scalar.h, ov-base-sparse.cc, 916 ov-base-sparse.h, ov-base.cc, ov-base.h, ov-bool-mat.cc, 917 ov-bool-mat.h, ov-bool-sparse.cc, ov-bool-sparse.h, ov-bool.cc, 918 ov-bool.h, ov-builtin.h, ov-cell.cc, ov-cell.h, ov-ch-mat.cc, 919 ov-class.cc, ov-class.h, ov-complex.cc, ov-complex.h, 920 ov-cx-diag.cc, ov-cx-diag.h, ov-cx-mat.cc, ov-cx-mat.h, 921 ov-cx-sparse.cc, ov-cx-sparse.h, ov-dld-fcn.h, ov-fcn-handle.cc, 922 ov-fcn-handle.h, ov-fcn-inline.cc, ov-fcn-inline.h, ov-fcn.h, 923 ov-float.cc, ov-float.h, ov-flt-complex.cc, ov-flt-complex.h, 924 ov-flt-cx-diag.cc, ov-flt-cx-diag.h, ov-flt-cx-mat.cc, 925 ov-flt-cx-mat.h, ov-flt-re-diag.cc, ov-flt-re-diag.h, 926 ov-flt-re-mat.cc, ov-flt-re-mat.h, ov-intx.h, ov-lazy-idx.cc, 927 ov-lazy-idx.h, ov-null-mat.cc, ov-null-mat.h, ov-perm.cc, 928 ov-perm.h, ov-range.cc, ov-range.h, ov-re-diag.cc, ov-re-diag.h, 929 ov-re-mat.cc, ov-re-mat.h, ov-re-sparse.cc, ov-re-sparse.h, 930 ov-scalar.cc, ov-scalar.h, ov-str-mat.cc, ov-str-mat.h, 931 ov-struct.cc, ov-struct.h, ov-type-conv.h, ov-typeinfo.cc, 932 ov-usr-fcn.cc, ov-usr-fcn.h, ov.cc, ov.h, pager.cc, 933 pr-output.cc, procstream.h, pt-arg-list.cc, pt-assign.h, 934 pt-binop.cc, pt-bp.cc, pt-bp.h, pt-cbinop.cc, pt-cell.cc, 935 pt-colon.cc, pt-const.cc, pt-decl.cc, pt-eval.cc, 936 pt-fcn-handle.cc, pt-id.h, pt-idx.cc, pt-idx.h, pt-mat.cc, 937 pt-mat.h, pt-pr-code.cc, pt-select.cc, pt-select.h, pt-stmt.cc, 938 pt-unop.cc, pt-unop.h, sighandlers.cc, sighandlers.h, 939 sparse-xdiv.cc, sparse-xdiv.h, sparse-xpow.cc, sparse-xpow.h, 940 sparse.cc, strfns.cc, symtab.cc, symtab.h, syscalls.cc, 941 sysdep.cc, toplev.cc, toplev.h, txt-eng-ft.cc, txt-eng-ft.h, 942 txt-eng.h, unwind-prot.h, utils.cc, utils.h, variables.cc, 943 variables.h, xdiv.cc, xdiv.h, xnorm.cc, xpow.cc, zfstream.cc, 944 zfstream.h: Strip trailing whitespace. 945 9462011-01-20 John W. Eaton <jwe@octave.org> 947 948 * gl-render.cc, DLD-FUNCTIONS/__init_fltk__.cc, 949 DLD-FUNCTIONS/__magick_read__.cc: Untabify. 950 9512011-01-20 Pascal Dupuis <Pascal.Dupuis@worldonline.be>. 952 953 * debug.h, dynamic-ld.cc, gl-render.cc, gl-render.h, 954 gl2ps-renderer.h, lex.h, ls-hdf5.h, oct-stream.h, oct-strstrm.h, 955 ov-base-diag.h, ov-base-mat.h, ov-base-scalar.h, ov-base-sparse.h, 956 ov-cell.h, ov-class.h, ov-dld-fcn.h, ov-fcn-handle.h, 957 ov-lazy-idx.h, ov-perm.h, ov-range.h, ov-struct.h, procstream.h, 958 pt-assign.h, symtab.h, unwind-prot.h: Initialize 959 all data members in initialization list. 960 9612011-01-20 Kai Habel <kai.habel@gmx.de> 962 963 * DLD-FUNCTIONS/__init_fltk__.cc (__fltk_uigetfile__): Append file 964 seperator to 2nd return value (file path). 965 Bug #32190. 966 9672011-01-20 John W. Eaton <jwe@octave.org> 968 969 * oct-obj.h (octave_value_list::octave_value_list): Initialize 970 all data members in initialization list. From Pascal Dupuis 971 <Pascal.Dupuis@worldonline.be>. 972 9732011-01-20 John W. Eaton <jwe@octave.org> 974 975 * ls-mat5.cc (read_mat5_binary_element): 976 Improve diagnositc if uncompress fails. 977 978 * load-path.cc (strip_trailing_separators): New static function. 979 (load_path::do_add, load_path::do_remove): Call it on directory arg. 980 9812011-01-20 John W. Eaton <jwe@octave.org> 982 983 * gl-render.h, graphics.cc, gl-render.cc, graphics.h.in: 984 Update for backend -> graphics_toolkit change. 985 986 * DLD-FUNCTIONS/__init_fltk__.cc: Rename from fltk_backend.cc 987 Update for backend -> graphics_toolkit change. 988 * DLD-FUNCTIONS/module-files, Makefile.am: Update for renamed file. 989 9902011-01-19 Rik <octave@nomad.inbox5.com> 991 992 * src/data.cc, src/input.cc, src/utils.cc: spellcheck docstrings. 993 9942011-01-19 Rik <octave@nomad.inbox5.com> 995 996 * DLD-FUNCTIONS/dlmread.cc, DLD-FUNCTIONS/filter.cc, 997 DLD-FUNCTIONS/inv.cc, DLD-FUNCTIONS/lu.cc, DLD-FUNCTIONS/quad.cc, 998 DLD-FUNCTIONS/quadcc.cc, DLD-FUNCTIONS/rcond.cc, 999 DLD-FUNCTIONS/regexp.cc, DLD-FUNCTIONS/strfind.cc, 1000 DLD-FUNCTIONS/typecast.cc, data.cc, dirfns.cc, error.cc, file-io.cc, 1001 graphics.cc, help.cc, input.cc, load-path.cc, load-save.cc, mappers.cc, 1002 oct-hist.cc, oct-parse.yy, pager.cc, pr-output.cc, pt-binop.cc, 1003 sparse.cc, strfns.cc, syscalls.cc, sysdep.cc, utils.cc: grammarcheck 1004 files in src directory. 1005 10062011-01-19 John W. Eaton <jwe@octave.org> 1007 1008 * oct-obj.cc (octave_value_list::all_scalars): Check for scalar 1009 values, not strings. Bug #32172. 1010 10112011-01-17 Rik <octave@nomad.inbox5.com> 1012 1013 * DLD-FUNCTIONS/module-files: Add quadcc.cc to list of files. 1014 * DLD-FUNCTIONS/quad.cc: Add Seealso links to quadcc. 1015 10162011-01-17 Jaroslav Hajek <highegg@gmail.com> 1017 1018 * DLD-FUNCTION/lookup.cc (Flookup): Validate option string. 1019 10202011-01-17 John W. Eaton <jwe@octave.org> 1021 1022 * ov-usr-fcn.cc (octave_user_function::bind_automatic_vars): 1023 Save argument names in hidden variable .argn.. 1024 1025 * variables.cc (F__varval__): New function. 1026 10272011-01-17 John W. Eaton <jwe@octave.org> 1028 1029 * ov-usr-fcn.cc (bind_automatic_vars): Mark variables created 1030 here as automatic. 1031 1032 * symtab.h (symbol_table::mark_automatic): New function. 1033 (symbol_table::do_mark_automatic): New function. 1034 10352011-01-17 Michael Godfrey <godfrey@isl.stanford.edu> 1036 1037 * variables.cc (Fwhos): Describe a and f attributes in help text. 1038 10392011-01-17 John W. Eaton <jwe@octave.org> 1040 1041 * sighandlers.cc (octave_signal_handler): Wait for children here. 1042 (sigchld_handler): Not here. 1043 10442011-01-16 Rik <octave@nomad.inbox5.com> 1045 1046 * DLD-FUNCTIONS/__delaunayn__.cc, DLD-FUNCTIONS/__dispatch__.cc, 1047 DLD-FUNCTIONS/__dsearchn__.cc, DLD-FUNCTIONS/__glpk__.cc, 1048 DLD-FUNCTIONS/__magick_read__.cc, DLD-FUNCTIONS/__pchip_deriv__.cc, 1049 DLD-FUNCTIONS/__voronoi__.cc, DLD-FUNCTIONS/amd.cc, 1050 DLD-FUNCTIONS/balance.cc, DLD-FUNCTIONS/besselj.cc, 1051 DLD-FUNCTIONS/bsxfun.cc, DLD-FUNCTIONS/ccolamd.cc, 1052 DLD-FUNCTIONS/cellfun.cc, DLD-FUNCTIONS/chol.cc, 1053 DLD-FUNCTIONS/colamd.cc, DLD-FUNCTIONS/colloc.cc, 1054 DLD-FUNCTIONS/conv2.cc, DLD-FUNCTIONS/convhulln.cc, 1055 DLD-FUNCTIONS/cquad.cc, DLD-FUNCTIONS/dasrt.cc, DLD-FUNCTIONS/det.cc, 1056 DLD-FUNCTIONS/dlmread.cc, DLD-FUNCTIONS/dmperm.cc, 1057 DLD-FUNCTIONS/dot.cc, DLD-FUNCTIONS/eig.cc, DLD-FUNCTIONS/eigs.cc, 1058 DLD-FUNCTIONS/fft.cc, DLD-FUNCTIONS/fft2.cc, DLD-FUNCTIONS/fftn.cc, 1059 DLD-FUNCTIONS/fftw.cc, DLD-FUNCTIONS/filter.cc, DLD-FUNCTIONS/find.cc, 1060 DLD-FUNCTIONS/fltk_backend.cc, DLD-FUNCTIONS/gammainc.cc, 1061 DLD-FUNCTIONS/gcd.cc, DLD-FUNCTIONS/getgrent.cc, 1062 DLD-FUNCTIONS/getpwent.cc, DLD-FUNCTIONS/hess.cc, 1063 DLD-FUNCTIONS/hex2num.cc, DLD-FUNCTIONS/inv.cc, DLD-FUNCTIONS/kron.cc, 1064 DLD-FUNCTIONS/lookup.cc, DLD-FUNCTIONS/lsode.cc, DLD-FUNCTIONS/lu.cc, 1065 DLD-FUNCTIONS/luinc.cc, DLD-FUNCTIONS/matrix_type.cc, 1066 DLD-FUNCTIONS/max.cc, DLD-FUNCTIONS/md5sum.cc, 1067 DLD-FUNCTIONS/onCleanup.cc, DLD-FUNCTIONS/pinv.cc, DLD-FUNCTIONS/qr.cc, 1068 DLD-FUNCTIONS/quad.cc, DLD-FUNCTIONS/qz.cc, DLD-FUNCTIONS/rand.cc, 1069 DLD-FUNCTIONS/rcond.cc, DLD-FUNCTIONS/regexp.cc, 1070 DLD-FUNCTIONS/schur.cc, DLD-FUNCTIONS/spparms.cc, 1071 DLD-FUNCTIONS/sqrtm.cc, DLD-FUNCTIONS/str2double.cc, 1072 DLD-FUNCTIONS/strfind.cc, DLD-FUNCTIONS/sub2ind.cc, 1073 DLD-FUNCTIONS/svd.cc, DLD-FUNCTIONS/syl.cc, DLD-FUNCTIONS/symbfact.cc, 1074 DLD-FUNCTIONS/symrcm.cc, DLD-FUNCTIONS/time.cc, DLD-FUNCTIONS/tril.cc, 1075 DLD-FUNCTIONS/tsearch.cc, DLD-FUNCTIONS/typecast.cc, 1076 DLD-FUNCTIONS/urlwrite.cc: Improve docstrings. Use same variable names 1077 in error() strings and docstrings. 1078 10792011-01-16 John W. Eaton <jwe@octave.org> 1080 1081 * mkgendoc: Write function name along with file name in comment. 1082 10832011-01-15 Jordi Gutiérrez Hermoso <jordigh@gmail.com> 1084 1085 * symtab.h (do_clear_global_pattern): Reword so as to not 1086 invalidate iterators when calling std::map::erase(). 1087 * DLD-FUNCTIONS/urwlwrite.cc (~curl_handles): Ditto. 1088 10892011-01-15 Rik <octave@nomad.inbox5.com> 1090 1091 * src/dirfns.cc, src/help.cc, src/input.cc, src/load-save.cc, 1092 src/oct-hist.cc, src/pager.cc, src/pr-output.cc, src/variables.cc: 1093 Eliminate @deffn macros. 1094 10952011-01-15 John W. Eaton <jwe@octave.org> 1096 1097 * syscalls.cc (FWEXITSTATUS, FWIFEXITED): Missing semicolon. 1098 10992011-01-15 John W. Eaton <jwe@octave.org> 1100 1101 * ov-fcn-handle.cc: Use version instead of flops in test. 1102 11032011-01-14 Rik <octave@nomad.inbox5.com> 1104 1105 * DLD-FUNCTIONS/svd.cc: Add Seealso references to svd. 1106 11072011-01-14 Rik <octave@nomad.inbox5.com> 1108 1109 * src/mappers.cc: Add Seealso links between sqrt, cbrt, nthroot 1110 functions. 1111 11122011-01-14 John W. Eaton <jwe@octave.org> 1113 1114 * dirfns.cc (Ffnmatch): Use DEFUNX until gnulib's fnmatch is C++ 1115 friendly. 1116 11172011-01-14 Rik <octave@nomad.inbox5.com> 1118 1119 * src/mappers.cc: Add Seealso links between erf variants to docstring. 1120 11212011-01-14 John W. Eaton <jwe@octave.org> 1122 1123 * sighandlers.cc (BADSIG, BLOCK_SIGNAL, SIGCHLD, BLOCK_CHILD, 1124 UNBLOCK_CHILD): Move macro definitions here from sighandlers.h. 1125 11262011-01-14 John W. Eaton <jwe@octave.org> 1127 1128 * Update copyright notices for 2011. 1129 11302011-01-13 John W. Eaton <jwe@octave.org> 1131 1132 * file-io.cc (mkstemp): Delete. 1133 Delete decl for mkstemps. 1134 (Fmkstemp): Assume we have mkstemp from gnulib. 1135 11362011-01-13 John W. Eaton <jwe@octave.org> 1137 1138 * DLD-FUNCTIONS/__pchip_deriv__.cc, DLD-FUNCTIONS/dot.cc, 1139 octave.cc: Style fixes. 1140 11412011-01-13 David Bateman <dbateman@free.fr> 1142 1143 ls-mat5.cc (int save_mat5_element_length (const octave_value&, 1144 const std::string&, bool, bool)): For sparse matrices use nnz rather 1145 than nzmax. 1146 (bool save_mat5_binary_element (std::ostream&, const octave_value&, 1147 const std::string&, bool, bool, bool, bool)): ditto. 1148 11492011-01-13 John W. Eaton <jwe@octave.org> 1150 1151 * base-list.h (class octave_base_list): Provide explicit 1152 default and copy construtors, assignment operator, and destructor. 1153 * load-path.h (load_path::dir_info::class_info): Likewise. 1154 1155 * load-path.h (load_path::dir_info::dir_info): Initialize all 1156 members in initializaition list. 1157 * lex.h (lexical_feedback::lexical_feedback): Likewise. 1158 11592011-01-13 John W. Eaton <jwe@octave.org> 1160 1161 * cutils.h: New file. 1162 (octave_sleep, octave_usleep, octave_raw_vsnprintf): Move decls 1163 here from utils.h. 1164 * Makefile.am (octinclude_HEADERS): Add cutils.h to the list. 1165 * utils.h: Include cutils.h. 1166 * cutils.c: Include cutils.h. 1167 11682011-01-12 David Grundberg <individ@acc.umu.se> 1169 1170 * DLD-FUNCTIONS/__magick_read__.cc (__magick_read__) [!HAVE_MAGICK]: 1171 Write more verbose error message that blames on imread, not 1172 __magick_read__. 1173 11742011-01-12 John W. Eaton <jwe@octave.org> 1175 1176 * DLD-FUNCTIONS/rand.cc (reset_rand_generator): Delete unused 1177 static function. 1178 11792011-01-12 John W. Eaton <jwe@octave.org> 1180 1181 * graphics.cc (graphics_object::get_ancestor): Avoid GCC warning. 1182 11832011-01-12 John W. Eaton <jwe@octave.org> 1184 1185 * DLD-FUNCTIONS/gcd.cc (extended_gcd): Tag call to floor with gnulib::. 1186 11872011-01-12 John W. Eaton <jwe@octave.org> 1188 1189 * oct-hist.cc (Fhistory_control): New function. 1190 11912011-01-12 Pascal Dupuis <Pascal.Dupuis@worldonline.be> 1192 1193 * oct-hist.cc (default_history_control): New function. 1194 (initialize_history): Pass Vhistory control to 1195 command_history::initialize. 1196 11972011-01-11 Konstantinos Poulios <logari81@googlemail.com> 1198 1199 * gl-render.cc (opengl_renderer::draw_axes): Improve positioning 1200 of titles. 1201 12022011-01-10 John W. Eaton <jwe@octave.org> 1203 1204 * ov-cell.cc (octave_cell::print_as_scalar): Always return true. 1205 (octave_cell::print_raw): Handle extra newlines here. 1206 * ov-struct.cc (Fstruct_levels_to_print): Move here from pr-output.cc 1207 (Vstruct_levels_to_print): Move here from pr-output.cc. Now static. 1208 (Vprint_struct_array_contents): New static variable. 1209 (Fprint_struct_array_contents): New function. 1210 (octave_struct::print_raw): Use Vprint_struct_array_contents. 1211 Simplify and improve output. 1212 (octave_scalar_struct::print_raw): Simplify and improve output. 1213 * pr-output.h (Vstruct_levels_to_print): Delete decl. 1214 * ov-class.cc (octave_class::print_raw): Don't unwind_protect 1215 Vstruct_levels_to_print. 1216 12172011-01-09 David Bateman <dbateman@free.fr> 1218 1219 * ls-mat5.cc (save_mat5_array_length (const float*, octave_idx_type, 1220 bool)): Take in to account the short tags for single data elements. 1221 (int save_mat5_element_length (const octave_value&, const std::string&, 1222 bool, bool)): Declare sparse matrices const to avoid a copy on read. 1223 * ls-utils.cc (save_type get_save_type (float, float)): New function. 1224 * ls-utils.h (save_type get_save_type (float, float)): Declare it. 1225 12262011-01-09 John W. Eaton <jwe@octave.org> 1227 1228 * token.h, token.cc (token::plot_tok_typ): Delete unused enum. 1229 (token::token_type): Delete pttype_token from the list. 1230 (token::token (plot_tok_type, int, int)): Delete unused constructor. 1231 (token::pttype): Delete unused function. 1232 (token::anonymous union): Delete PT element. 1233 12342011-01-09 John W. Eaton <jwe@octave.org> 1235 1236 * lex.ll (display_token): Display token value for NUM, IMAG_NUM, 1237 STRUCT_ELT, NAME, DQ_STRING, and SQ_STRING tokens. 1238 12392011-01-09 John W. Eaton <jwe@octave.org> 1240 1241 * lex.h, lex.ll, oct-parse.yy (lexer_flags::parsed_function_name): 1242 Declare to be std::stack<bool> instead of bool. Change all uses. 1243 Bug #32083. 1244 12452011-01-08 Konstantinos Poulios <logari81@googlemail.com> 1246 1247 * gl-render.cc (opengl_renderer::draw_axes): Revert positionmode 1248 to auto after automatic positioning of titles. Bug #32074. 1249 12502011-01-08 David Grundberg <individ@acc.umu.se> 1251 1252 * ov-fcn.h (is_subfunction): Rename from is_nested_function. 1253 Change all uses and nearby comments. 1254 * ov-usr-fcn.h (is_subfunction, mark_as_subfunction): Rename from 1255 is_nested_function, mark_as_nested_function. Change all uses. 1256 12572011-01-07 John W. Eaton <jwe@octave.org> 1258 1259 * DLD-FUNCTIONS/cellfun.cc (Fcellfun): For uniformoutput case 1260 with nargout > 0, initialize elements of retval to NDArray 1261 objects of the same size as the input. Bug #32067. 1262 12632011-01-07 John W. Eaton <jwe@octave.org> 1264 1265 * graphics.cc (Fget): Return empty matrix if no values are found. 1266 Bug #32067. 1267 12682011-01-06 Konstantinos Poulios <logari81@googlemail.com> 1269 1270 * txt-eng-ft.h, txt-eng-ft.cc: Remove dependency on graphics.h. 1271 (ft_render::set_font): New arguments list. 1272 (ft_render::text_to_pixels): New method. 1273 * graphics.cc (text::properties::update_text_extent): Adapt the call 1274 to ft_render::set_font. 1275 (text::properties::get_extent_matrix): New function. 1276 (text::properties::update_text_extent): Function rewrite. 1277 * gl-render.cc (opengl_renderer::set_font): Likewise. 1278 (opengl_renderer::text_to_pixels): 1279 Make use of ft_render::text_to_pixels. 1280 (opengl_renderer::render_text): Simplify. 1281 (opengl_renderer::draw_text): Make text drawing aware of the text 1282 extent property. 1283 * gl-render.h (opengl_renderer::text_to_pixels): Arguments reordering. 1284 (opengl_renderer::get_transform): New function. 1285 * gl2ps-renderer.cc (glps_renderer::render_text): Adapt the call to 1286 text_to_pixels. 1287 (glps_renderer::alignment_to_mode): New function. 1288 (glps_renderer::draw_text): Overload inherited function. 1289 * gl2ps-renderer.h (glps_renderer::alignment_to_mode): New function. 1290 * graphics.h.in: Add dependency on txt-eng-ft.h. 1291 (class text::properties): Tag horizontalalignment and verticalalignment 1292 with "u" qualifier. 1293 (text::properties::get_extent_matrix, get_pixels, 1294 update_horizontalalignment, update_verticalalignment): New functions. 1295 (text::properties::renderer): New class member of type ft_render. 1296 (text::properties::pixels): New class member of type uint8NDArray. 1297 12982011-01-06 John W. Eaton <jwe@octave.org> 1299 1300 * DLD-FUNCTIONS/rand.cc (Frandperm): Tag call to floor with gnulib::. 1301 * DLD-FUNCTIONS/gcd.cc (divide): Tag calls to floor with gnulib::. 1302 * ov-scalar.cc (octave_scalar::map): Tag floor with gnulib::. 1303 * ov-cell.cc (octave_cell::save_hdf5): Tag call to floor with gnulib::. 1304 * pr-output.cc (engineering_exponent, num_digits, 1305 octave_print_internal_template): Tag call to floor with gnulib::. 1306 * graphics.cc: Consistently use std::ceil. 1307 (axes::properties::get_axis_limits): Tag calls to floor with gnulib::. 1308 (axes::properties::calc_ticks_and_lims): Likewise. 1309 13102011-01-05 John W. Eaton <jwe@octave.org> 1311 1312 Bug #32060. 1313 1314 * ov-fcn.h (octave_function::mark_as_private_function): Now virtual. 1315 * ov-usr-fcn.h (octave_function::mark_as_private_fucntion): 1316 New function. Mark subfunctions as private also. 1317 * symtab.cc, symtab.h 1318 (symbol_table::mark_subfunctions_in_scope_as_private, 1319 symbol_table::fcn_info::mark_subfunction_in_scope_as_private, 1320 symbol_table::fcn_info::fcn_info_rep::mark_subfunction_in_scope_as_private): 1321 New functions. 1322 13232011-01-04 John W. Eaton <jwe@octave.org> 1324 1325 * ov-base-sparse.cc (octave_base_sparse<T>::print_raw): Improve 1326 display of percentage full. Bug #32011. 1327 13282011-01-04 John W. Eaton <jwe@octave.org> 1329 1330 * ov-typeinfo.cc (Ftypeinfo): Return cell array of character 1331 strings, not character array. Bug #32050. 1332 13332011-01-03 Rik <octave@nomad.inbox5.com> 1334 1335 * data.cc (islogical, isnumeric): Add tests to check sparse forms of 1336 logical matrices. 1337 13382011-01-02 Jaroslav Hajek <highegg@gmail.com> 1339 1340 * ov-bool-sparse.h (octave_sparse_bool_matrix::is_numeric_type): New 1341 virtual method override. 1342 13432010-12-31 Rik <octave@nomad.inbox5.com> 1344 1345 * toplev.cc (system): Add additional calling form "shell_cmd" to 1346 documentation. 1347 13482010-12-31 Rik <octave@nomad.inbox5.com> 1349 1350 * data.cc (islogical, isinteger, iscomplex, isfloat, isempty, 1351 isnumeric, ismatrix, issorted): Improve docstring 1352 * graphics.cc (ishandle): Improve docstring 1353 * lex.ll (iskeyword): Improve docstring 1354 * mappers.cc (isalnum, isalpha, isascii, iscntrl, isdigit, isinf, 1355 isgraph, islower, isna, isnan, isprint, ispunct, isspace, isupper, 1356 isxdigit): Improve docstring 1357 (finite/isfinite): Make finite an alias for isfinite rather than the 1358 reverse. Improve docstring. 1359 * ov-cell.cc (iscell, iscellstr): Improve docstring 1360 * ov-class.cc (isobject, ismethod): Improve docstring 1361 * ov-null-mat.cc (isnull): Improve docstring 1362 * ov-struct.cc (isstruct, isfield): Improve docstring 1363 * ov-usr-fcn.cc (isargout): Improve docstring 1364 * sparse.cc (issparse): Improve docstring 1365 * strfns.cc (ischar): Improve docstring 1366 * sysdep.cc (isieee): Improve docstring 1367 * utils.cc (isvarname, is_absolute_filename, 1368 is_rooted_relative_filename, isindex): Improve docstring 1369 * variables.cc (isglobal): Improve docstring 1370 13712010-12-28 Rik <octave@nomad.inbox5.com> 1372 1373 * data.cc (and, ctranspose, eq, ge, gt, ldivide, le, lt, minus, 1374 mldivide, mpower, mrdivide, mtimes, ne, not, or, plus, power, rdivide, 1375 times, transpose, uminus, uplus): Improve docstrings for functions 1376 which emulate operators. Add Seealso cross-referencing. 1377 13782010-12-28 David Bateman <dbateman@free.fr> 1379 1380 * ls-mat5.cc (save_mat5_array_length (const float*, octave_idx_type, 1381 bool)): Take in to account the 4 bytes of padding for an odd number 1382 of elements in single precision arrays. 1383 13842010-12-27 Rik <octave@nomad.inbox5.com> 1385 1386 * syscalls.cc (stat): Add additional calling form using file descriptor 1387 fid to docstring. 1388 13892010-12-26 Michael Godfrey <godfrey@isl.stanford.edu> 1390 1391 * gammainc.cc: Add @tex blocks to docstring. 1392 13932010-12-25 Rik <octave@nomad.inbox5.com> 1394 1395 * DLD-FUNCTIONS/str2double.cc: Fix bug in converting "numberi" strings 1396 such as "2i". Add ability to process special value "NA". Rewrite 1397 docstring. 1398 13992010-12-25 Rik <octave@nomad.inbox5.com> 1400 1401 * input.cc (PS1): Correct use of xref macro to remove Tex warning. 1402 14032010-12-22 Jordi Gutiérrez Hermoso <jordigh@gmail.com> 1404 1405 * input.cc (PS1): Give an example of how PS1 can use ANSI escape 1406 codes for getting a colourised prompt. 1407 * oct-hist.cc (history): Correct documentation about how 1408 history("-r") appends to history, doesn't replace it. 1409 14102010-12-22 Judd Storrs <jstorrs@gmail.com> 1411 1412 * data.cc (Fvec): New optional second argument to set dimension 1413 of result. 1414 14152010-12-18 Konstantinos Poulios <logari81@googlemail.com> 1416 1417 * graphics.h.in (class axes::properties): Tag xtickmode, ytickmode 1418 and ztickmode with "u" qualifier. 1419 (axes::properties::update_xtickmode, axes::properties::update_ytickmode 1420 axes::properties::update_ztickmode): New functions. 1421 14222010-12-18 John W. Eaton <jwe@octave.org> 1423 1424 * DLD-FUNCTIONS/dlmread.cc (Fdlmread): Simplify file name/id logic. 1425 Bug #31910. 1426 14272010-12-17 Rik <octave@nomad.inbox5.com> 1428 1429 * oct-parse.yy (builtin): Remove seealso reference to deprecated 1430 function dispatch. 1431 14322010-12-17 Konstantinos Poulios <logari81@googlemail.com> 1433 1434 * graphics.h.in (class text::properties): New properties positionmode, 1435 rotationmode, horizontalalignmentmode, verticalalignmentmode. 1436 * graphics.cc (axes::properties::init, axes::properties::set_defaults): 1437 Set mode to auto for all initialized positioning properties. 1438 (axes::properties::set_xlabel,set_ylabel,set_zlabel,set_title): 1439 Revert to auto-positioning mode and turn clipping off when title or 1440 labels are set. 1441 * gl-render.cc (opengl_renderer::draw_axes): Disable auto-positioning 1442 of manually positioned title and axes labels. 1443 14442010-12-17 Konstantinos Poulios <logari81@googlemail.com> 1445 1446 * graphics.h.in (class axes::properties): Change default value for 1447 fontsize from 12 to 10. 1448 * graphics.cc (axes::properties::set_defaults): Likewise. 1449 14502010-12-15 John W. Eaton <jwe@octave.org> 1451 1452 Bug #31883. 1453 1454 * oct-hist.cc (initialize_history): Call command_history::initialize. 1455 1456 * octave.cc (gripe_safe_source_exception): New function. 1457 (safe_source_file): New function. 1458 (execute_startup_files): Call safe_source_file instead of source_file. 1459 (execute_command_line_file): Likewise. Don't handle exceptions here. 1460 (execute_eval_option_code): Also catch octave_execution exception. 1461 14622010-12-15 John W. Eaton <jwe@octave.org> 1463 1464 Bug #31861. Also bug #31286. 1465 1466 * lex.h (lexical_feedback::defining_func): Now int instead of bool. 1467 lex.ll (is_keyword_token): Increment lexer_flags.defining_func 1468 instead of setting it to true. 1469 (lexical_feedback::init): Set defining_func to 0 instead of false. 1470 * oct-parse.yy (recover_from_parsing_function): Decrement 1471 lexer_flags.defining_func here. 1472 * input.cc (input_event_hook): Don't do anything if we are 1473 lexer_flags.defining_func is nonzero. 1474 14752010-12-13 Rik <octave@nomad.inbox5.com> 1476 1477 * ov-struct.cc (isfield): Additional test for cellstring of field names. 1478 14792010-12-13 Rik <octave@nomad.inbox5.com> 1480 1481 * data.cc (mod): Additional tests for mod with non-integer real values. 1482 14832010-12-12 Jaroslav Hajek <highegg@gmail.com> 1484 1485 * DLD-FUNCTIONS/lookup.cc (Flookup): Drop support for the "i" option. 1486 14872010-12-09 Marco Atzeri <marco_atzeri@yahoo.it> 1488 1489 * mappers.cc: In test for gamma, expect Inf for gamma(-1), not NaN. 1490 Bug #31772. 1491 14922010-12-08 John W. Eaton <jwe@octave.org> 1493 1494 * graphics.h.in (base_property::do_set): Don't reverse order of 1495 children. Bug #31822. 1496 14972010-12-08 John W. Eaton <jwe@octave.org> 1498 1499 * symtab.cc (symbol_table::fcn_info::fcn_info_rep::find_user_function): 1500 Return if an error occurs in out_of_date_check. 1501 15022010-12-07 John W. Eaton <jwe@octave.org> 1503 1504 * symtab.cc (symbol_table::fcn_info::fcn_info_rep::find): If an 1505 error occurred during the first call to xfind, don't try again. 1506 15072010-12-07 John W. Eaton <jwe@octave.org> 1508 1509 * oct-parse.yy (case_list): Also accept default_case by itself. 1510 Bug #31793. 1511 15122010-12-01 John W. Eaton <jwe@octave.org> 1513 1514 * pt-pr-code.cc (tree_print_code::visit_octave_user_function_trailer): 1515 Don't indent or print "endfunction" here. 1516 * ov-usr-fcn.cc (ov_user_script::do_multi_index_op): Save and 1517 set tree_evaluator::statement_context, not 1518 tree_evaluator::in_fcn_or_script_body. 1519 (ov_user_function::do_multi_index_op): Likewise. 1520 * pt-eval.cc: Initialize tree_evaluator::statement_context, not 1521 tree_evaluator::in_fcn_or_script_body. 1522 (tree_evaluator::visit_break_command): Check statement_context, 1523 not in_fcn_or_script_body. 1524 (tree_evaluator::visit_continue_command): Likewise. 1525 (tree_evaluator::visit_return_command): Likewise. 1526 (visit_statement): Also echo commands in scripts if 1527 Vecho_executing_commands & ECHO_SCRIPTS is true. 1528 * pt-eval.h (tree_evaluator::in_fcn_body, 1529 tree_evaluator::in_script_body): New static variables. 1530 (tree_evaluator::): Now an enum. 1531 (tree_evaluator::in_function_or_script_body): Now an enum. 1532 Rename from in_fcn_or_script_body. 1533 15342010-12-01 Kai Habel <kai.habel@gmx.de> 1535 1536 * DLD-FUNCTIONS/fltk_backend.cc (fltk_gui_mode): Fix gui mode 1537 problems when set to none. 1538 15392010-11-26 Kai Habel <kai.habel@gmx.de> 1540 1541 * DLD-FUNCTIONS/fltk_backend.cc (find_uimenu_children, 1542 __fltk_redraw__): Consider hidden handles here. 1543 15442010-11-26 John W. Eaton <jwe@octave.org> 1545 1546 * defaults.cc (FEXEC_PATH): Only call set_exec_path if nargin is 1547 greater than zero. 1548 15492010-11-25 Kai Habel <kai.habel@gmx.de> 1550 1551 * DLD-FUNCTIONS/fltk_backend.cc (fltk_gui_mode): New 1552 function to set GUI mode. 1553 (__fltk_uigetfile__): Remove nargout from argument list. 1554 (plot_window): Remove gui_mode enum here. 1555 15562010-11-25 John W. Eaton <jwe@octave.org> 1557 1558 * defaults.cc (set_exec_path): Append EXEC_PATH to PATH. Store 1559 only extra directories in EXEC_PATH. 1560 (FEXEC_PATH): Update doc string. 1561 Bug #31695. 1562 15632010-11-22 John W. Eaton <jwe@octave.org> 1564 1565 * defun.cc (defun_isargout): Cast nout to octave_idx_type in call 1566 to std::min. 1567 15682010-11-21 Kai Habel <kai.habel@gmx.de> 1569 1570 * DLD-FUNCTIONS/fltk-backend.cc (__fltk_uigetfile__): New function 1571 for GUI file dialogs. 1572 * graphics.cc (property_list::set): Indentation fix. 1573 15742010-11-20 Ben Abbott <bpabbott@mac.com> 1575 1576 * graphics.h.in: Change intended for 11272. 1577 15782010-11-19 John W. Eaton <jwe@octave.org> 1579 1580 Bug #31706. 1581 1582 * mex.h, mex.cc (mxArray::dup): Rename from clone. Change all 1583 uses and derived classes. 1584 (mxArray_octave_value::dup): Convert to mxArray object here. 1585 15862010-11-19 John W. Eaton <jwe@octave.org> 1587 1588 Bug #31707. 1589 1590 * mex.cc (mex::free): Don't warn about skipping memory not 1591 allocated by mxMalloc, mxCalloc, or mxRealloc. 1592 15932010-11-18 Daisuke TAKAGO <takago@neptune.kanazawa-it.ac.jp> 1594 1595 * gl-render.cc (opengl_renderer::draw_line): 1596 Layer markers in 2D plots. 1597 15982010-11-18 John W. Eaton <jwe@octave.org> 1599 1600 Bug # 31689. 1601 1602 * ov-str-mat.cc (octave_char_matrix_str::save_ascii): 1603 Adapt to change in charMatrix::row_as_string function. 1604 * DLD-FUNCTIONS/md5sum.cc: New tests. 1605 16062010-11-17 John W. Eaton <jwe@octave.org> 1607 1608 * pt-fcn-handle.cc (tree_anon_fcn_handle::rvalue1): Also stash 1609 the directory name of the parent function in the newly created 1610 anonymous function. Bug #31484. 1611 16122010-11-17 John W. Eaton <jwe@octave.org> 1613 1614 * oct-parse.yy (parse_fcn_file): Protect and set global_command 1615 to 0 before calling yyparse. 1616 * toplev.cc (main_loop): Likewise. 1617 1618 * oct-parse.yy (eval_string): Set global_command to 0 after 1619 protecting it and before calling yyparse. 1620 * input.cc (get_debug_input): Likewise. 1621 16222010-11-14 Michael Goffioul <michael.goffioul@gmail.com> 1623 1624 * graphics.h.in (graphics_object::get_ancestor): New method. 1625 * graphics.cc (graphics_object::get_ancestor): Likewise. 1626 (convert_text_position, convert_cdata): Use it. 1627 (xget_ancestor): Remove obsolete function. 1628 * DLD_FUNCTIONS/fltk_backend.cc (plot_window::uimenu_update, 1629 fltk_backend::update): Replace xget_ancestor with 1630 graphics_objects::get_ancestor. 1631 16322010-11-13 John W. Eaton <jwe@octave.org> 1633 1634 * graphics.h.in (figure::properties::filename): Make writable. 1635 Bug #31450. 1636 16372010-11-12 John W. Eaton <jwe@octave.org> 1638 1639 * Makefile.am (nodist_liboctinterp_la_SOURCES): Remove 1640 $(OPT_HANDLERS) from the list. Bug #31623. 1641 16422010-11-11 John W. Eaton <jwe@octave.org> 1643 1644 * data.cc: New tests for cat. Enable 4 asserts that were disabled. 1645 16462010-11-11 Kai Habel <kai.habel@gmx.de> 1647 1648 * fltk-backend.cc (plot_window::uimenu_update, 1649 fltk_backend::update): Add prefix 'ID_' to property ids to avoid 1650 name clash on windows systems. 1651 * graphics.cc (gnuplot_backend::update): Ditto. 1652 * genprops.awk (emit_declarations, emit_source): Ditto. 1653 16542010-11-11 John W. Eaton <jwe@octave.org> 1655 1656 Bug #31165. 1657 1658 * symtab.h (symbol_table::parent_classes): New static function. 1659 * symtab.cc (out_of_date_check): Also look for methods defined 1660 in parent classes of dispatch_type. 1661 (symbol_table::fcn_info::fcn_info_rep::load_class_method): Call 1662 parent_classes instead of accessing parent_map directly. 1663 16642010-11-10 John W. Eaton <jwe@octave.org> 1665 1666 * octave.cc (octave_main): Call octave_ieee_init here. 1667 * sysdep.cc (sysdep_init): Not here. 1668 16692010-11-10 John W. Eaton <jwe@octave.org> 1670 1671 * sysdep.cc: Eliminate special case for __DECCXX. 1672 16732010-11-10 John W. Eaton <jwe@octave.org> 1674 1675 * sysdep.cc (sysdep_init): Eliminate special case for NeXT systems. 1676 (malloc_handler, NeXT_init): Delete. 1677 16782010-11-10 John W. Eaton <jwe@octave.org> 1679 1680 * sighandlers.cc (MAYBE_ACK_SIGNAL): Delete macro and all uses. 1681 (sigchld_handler): Delete special case for __EMX__. 1682 * sysdep.cc (sysdep_init): Eliminate special case for __EMX__. 1683 (OS2_init, Fextproc): Delete. 1684 16852010-11-10 John W. Eaton <jwe@octave.org> 1686 1687 * sysdep.cc (sysdep_init): Eliminate special case for SCO. 1688 (SCO_init): Delete. 1689 16902010-11-10 John W. Eaton <jwe@octave.org> 1691 1692 * DLD-FUNCTIONS/__dispatch__.cc: Rename from dispatch.cc. 1693 Move tests to scripts/deprecated/dispatch.m. 1694 (F__dispatch__): Rename from Fdispatch. 1695 1696 * DLD-FUNCTIONS/module-files: Add __dispatch__.cc to the list. 1697 Remove dispatch.cc from the list. 1698 16992010-11-10 John W. Eaton <jwe@octave.org> 1700 1701 * oct-parse.yy (Fbuiltin): Move here from DLD-FUNCTIONS/dispatch.cc. 1702 17032010-11-10 Kai Habel <kai.habel@gmx.de> 1704 1705 * fltk-backend.cc (fltk_uimenu::update_accelerator 1706 fltk_uimenu::update_callback, fltk_uimenu::update_enable, 1707 fltk_uimenu::update_foregroundcolor fltk_uimenu::update_visible): 1708 Check if find_item was succesful. 1709 (fltk_uimenu::update_seperator): Make sure we don't write beyond 1710 limits of menubar structure. 1711 17122010-11-10 John W. Eaton <jwe@octave.org> 1713 1714 Bug #31491. 1715 1716 * pt-pr-code.cc, pt-pr-code.h (tree_print_code::print_fcn_handle_body): 1717 New function. 1718 * ov-fcn-handle (octave_fcn_handle::print_raw): Use it. 1719 * pt-pr-code.cc (tree_print_code::visit_anon_fcn_handle): Likewise. 1720 * pt-pr-code.h (tree_print_code::suppress_newline): Rename from 1721 printing_newlines. Now int. Change all uses. 1722 * pt-pr-code.cc (tree_print_code::newline): Only set 1723 beginning_of_line if newline is printed. 1724 17252010-11-10 John W. Eaton <jwe@octave.org> 1726 1727 Bug #31567. 1728 1729 * ov-fcn.h (octave_base_value::is_class_constructor) 1730 octave_base_value::is_class_method): New optional character 1731 string argument. 1732 * ov-usr-fcn.h (octave_usr_fcn::is_class_constructor) 1733 octave_usr_fcn::is_class_method): New optional arg. If this 1734 argument is not empty, also check it against the name of the 1735 dispatch class. 1736 * ov-class.cc (Fclass): Allow class function to be called inside 1737 a class method. Require that the to-be-constructed object is of 1738 the same class as the class constructor or method. 1739 17402010-11-09 John W. Eaton <jwe@octave.org> 1741 1742 * lex.ll (handle_number): Set lexer_flags.looking_for_object_index 1743 to false here. Fixes bug #31608. 1744 17452010-11-09 John W. Eaton <jwe@octave.org> 1746 1747 * gl-render.cc (make_marker_list): Call fmod instead of mod. 1748 1749 * data.cc (Frem): Use xrem instead of fmod and fmodf. 1750 (Fmod): Use xmod instead of mod. 1751 17522010-11-08 Kai Habel <kai.habel@gmx.de> 1753 1754 * fltk-backend.cc (fltk_uimenu::do_find_uimenu_children): 1755 Simplify. Remove unused code. 1756 (fltk_uimenu::update_submenu): Remove unused function. 1757 (fltk_uimenu::add_to_menu, fltk_uimenu::remove_from_menu): 1758 Simplify. Get properties for valid objects only. 1759 17602010-11-03 Ben Abbott <bpabbott@mac.com> 1761 1762 * gl-render.cc: Do not give rendering error for uimenus. 1763 17642010-11-03 John W. Eaton <jwe@octave.org> 1765 1766 * DLD-FUNCTIONS/cquad.cc: If we don't have copysign but we do 1767 have _copysign, define copysign to be _copysign. 1768 17692010-11-02 John W. Eaton <jwe@octave.org> 1770 1771 * DLD-FUNCTIONS/cquad.cc (Fcquad): Use octave_Inf, not INFINITY. 1772 17732010-11-02 David Bateman <dbateman@free.fr> 1774 1775 * ls-hdf5.cc (bool hdf5_get_scalar_attr (hid_t, hid_t, 1776 const char *, void *), herr_t hdf5_add_scalar_attr 1777 (hid_t, hid_t, const char *, void *)): New functions. 1778 (herr_t hdf5_add_scalar_attr (hid_t, const char *)): Remove static 1779 definition to make this function visible externally. 1780 * ls-hdf5.h (extern OCTINTERP_API bool hdf5_check_attr (hid_t, 1781 const char *), extern OCTINTERP_API bool hdf5_get_scalar_attr 1782 (hid_t, hid_t, const char *, void *buf), extern OCTINTERP_API herr_t 1783 hdf5_add_attr (hid_t, const char *), extern OCTINTERP_API herr_t 1784 hdf5_add_scalar_attr (hid_t, hid_t, const char *, void *)): Function 1785 declarations. 1786 * ov-range.cc (bool octave_range::save_hdf5 (hid_t, const char *, 1787 bool)): Save the number of elements in the range as an HDF5 attribute. 1788 (bool octave_range::load_hdf5 (hid_t, const char *)): If an HDF5 1789 attribute containing the number of elements exists use it to ensure 1790 the correct number of elements in the range. 1791 17922010-11-01 David Bateman <dbateman@free.fr> 1793 1794 * gl-render.cc (void opengl_renderer::draw_patch (const 1795 patch::properties &)): Draw clipped contours of patches. 1796 * graphics.cc (template<class T> static void get_array_limits 1797 (const Array<T>&, double&, double&, double&)): Don't need to test 1798 for NaN as comparison is always false. 1799 (Matrix children_property::do_get_children (bool) const): New method of 1800 new children_property class. 1801 (void children_property::do_delete_children (bool)): Ditto. 1802 (void base_properties::remove_child (const graphics_handle&)): Delete. 1803 (void base_properties::set_children (const octave_value&)): Delete. 1804 (void base_properties::delete_children (void)): Delete. 1805 (base_properties::update_axis_limits (const std::string&, 1806 const graphics_handle&) const): New method. 1807 (void base_graphics_object::update_axis_limits (const std::string&, 1808 const graphics_handle&)): New Method. 1809 (Matrix base_properties::get_children_internal (bool) const): Delete. 1810 (Matrix base_properties::get_children (void) const): Delete. 1811 (Matrix base_properties::get_hidden_children (void) const): Delete. 1812 (void axes::update_axis_limits (const std::string&, 1813 const graphics_handle&): New Method. 1814 (void hggroup::properties::update_limits (void) const): New method. 1815 (void hggroup::properties::update_limits (const graphics_handle&) 1816 const): New method. 1817 (void hggroup::update_axis_limits (const std::string&, 1818 const graphics_handle&)): New method. 1819 * graphics.h.in (class children_property): New class. 1820 (class base_properties): Use it. 1821 (base_graphics_object::update_axis_limits(const std::string&, 1822 const graphics_handle&)): New method. 1823 (graphics_object::update_axis_limits(const std::string&, 1824 const graphics_handle&)): New method. 1825 (axes::update_axis_limits(const std::string&, 1826 const graphics_handle&)): New method. 1827 (hggroup::adopt (const graphics_handle&)): Use it 1828 (void hggroup::properties::update_limits (void) const): Remove inline 1829 definition of the methid. 1830 (void hggroup::properties::update_limits (const graphics_handle&) 1831 const): New method. 1832 (void hggroup::update_axis_limits (const std::string&, 1833 const graphics_handle&)): New method. 1834 18352010-10-31 Michael Goffioul <michael.goffioul@gmail.com> 1836 1837 * xnorm.h (xnorm, xcolnorms, xrownorms, xfrobnorm): tag with 1838 OCTINTERP_API. 1839 18402010-10-31 Kai Habel <kai.habel@gmx.de> 1841 1842 * fltk-backend.cc (find_uimenu_children): Remove template argument. 1843 (do_find_uimenu_children): New function. 1844 18452010-10-29 David Bateman <dbateman@free.fr> 1846 1847 * graphics.cc (octave_value patch::properties::get_color_data 1848 (void) const): Don't call convert_data is the facevertexcdata 1849 property is undefined or empty. 1850 * gl-render.cc (void opengl_renderer::draw_patch 1851 (const patch::properties &)): Set ec_mode to 0 if edgecolor is "none". 1852 Set fc_mode to 0 if facecolor is "none". 1853 18542010-10-29 Ben Abbott <bpabbott@mac.com> 1855 1856 * gl-render.cc: Crop ticks, ticklabels, and gridlines for OpenGL 1857 backend. 1858 18592010-10-28 Konstantinos Poulios <logari81@googlemail.com> 1860 1861 * graphics.cc (normalized_aspectratios, max_axes_scale): 1862 New file-scope static function 1863 (updating_aspectratios): New file-scope variable. 1864 (axes::properties::update_aspectratios, axes::update_axis_limits): 1865 Return immediately if updating_aspecratios is true. 1866 (axes::properties::update_aspectratios): 1867 If dataaspectratiomode is set to manual this function will try to 1868 respect it even after changes in xlim, ylim, zlim. 1869 If both dataaspectratiomode and plotboxaspectratiomode is set to 1870 manual this function will try to recalulate xlim, ylim, zlim 1871 depending on the status of xlimmode, ylimmode, zlimmode. If 1872 altering xlim, ylim, zlim is not possible, plotboxaspectratio will 1873 be overriden. 1874 * graphics.h.in (class axes::properties): Tag dataaspectratio, 1875 dataaspectratiomode, plotboxaspectratio, and 1876 plotboxaspectratiomode with "u" qualifier. 1877 (axes::update_dataaspectratio, 1878 axes::update_dataaspectratiomode, 1879 axes::update_plotboxaspectratio, 1880 axes::update_plotboxaspectratiomode): New functions. 1881 18822010-10-25 John W. Eaton <jwe@octave.org> 1883 1884 * octave.cc (octave_main): Use F77_CHAR_ARC_LEN macro to pass 1885 character string length in call to xerbla. 1886 18872010-10-25 Kai Habel <kai.habel@gmx.de> 1888 1889 * gl-render.cc (opengl_renderer::draw): Ignore uimenu objects here. 1890 * graphics.h.in (class OCTINTERP_API uimenu): New graphics object. 1891 * graphics.cc (lookup_object_name): Add uimenu here. 1892 (make_graphics_object_from_type): Likewise. 1893 (property_list::set): Likewise. 1894 (property_list::lookup): Likewise. 1895 (root_figure::init_factory_properties): Likewise. 1896 (__go_uimenu__): New function. 1897 * DLD-Functions/fltk-backend.cc (OpenGL_fltk::resize): Make public. 1898 (script_cb): New function. 1899 (fltk_uimenu): New class. 1900 (plot_window::plot_window): Initialize fltk_uimenu object. 1901 (plot_window::~plot_window): Delete fltk_uimenu object. 1902 (plot_window::show_menubar): New function. 1903 (plot_window::hide_menubar): New function. 1904 (plot_window::uimenu_update): New function. 1905 (plot_window::handle): Do not evaluate FLTK events when figure 1906 is deleted. 1907 (figure_manager::uimenu_update): New function. 1908 (figure_manager::toggle_menubar_visibility): New functions. 1909 (figure_manager::do_toggle_menubar_visibility): New function. 1910 (figure_manager::do_uimenu_update): New function. 1911 (fltk_backend::uimenu_set_fltk_label): New function. 1912 (fltk_backend::update): Add figure and uimenu updates. 1913 19142010-10-24 Rik <octave@nomad.inbox5.com> 1915 1916 * DLD-FUNCTIONS/tril.cc, syscalls.cc: Docstring improvements. 1917 19182010-10-24 Rik <octave@nomad.inbox5.com> 1919 1920 * variables.cc: Deprecate is_global function 1921 19222010-10-23 John W. Eaton <jwe@octave.org> 1923 1924 * file-io.cc (Ffopen): Only handle fopen ("all") case if nargout 1925 is 0 or 1. 1926 19272010-10-22 John W. Eaton <jwe@octave.org> 1928 1929 * octave.cc (usage): Put whitespace before and after usage message. 1930 (octave_main): If getopt_long returns '?', it means an 1931 unrecognized option was encountered. 1932 Panic if default case in option switch statement is reached. 1933 (verbose_usage, short_opts, usage_string): Remove '?' as an 1934 alias for 'h' in the list of possible options. 1935 Fixes bug #31423. 1936 19372010-10-22 John W. Eaton <jwe@octave.org> 1938 1939 * oct-parse.yy (load_fcn_from_file): Also strip directory when 1940 computing function name from filename. Bug #31395. 1941 19422010-10-21 Gunnar Farnebäck <gunnar@lysator.liu.se> 1943 1944 * mex.cc (mxArray_number::as_octave_value): Convert single 1945 matlab array to single octave array instead of to double octave 1946 array. 1947 19482010-10-21 John W. Eaton <jwe@octave.org> 1949 1950 * gripes.h: Include lo-array-gripes.h. 1951 19522010-10-21 John W. Eaton <jwe@octave.org> 1953 1954 * ov-float.cc, ov-flt-re-mat.cc, ov-re-mat.cc, ov-re-sparse.cc, 1955 ov-scalar.cc: Use gripe_nan_to_character_conversion. 1956 1957 * ops.h, ov-base-mat.cc, ov-base-scalar.cc, ov-complex.h, 1958 ov-cx-mat.cc, ov-cx-sparse.cc, ov-float.h, ov-flt-complex.h, 1959 ov-flt-cx-mat.cc, ov-flt-re-mat.cc, ov-range.cc, ov-re-mat.cc, 1960 ov-re-sparse.cc, ov-scalar.h: Use gripe_nan_to_logical_conversion. 1961 19622010-10-20 John W. Eaton <jwe@octave.org> 1963 1964 * toplev.cc (Fsystem): Allow optional RETURN_OUTPUT and TYPE 1965 arguments to be specified independently. Update doc string. 1966 19672010-10-18 John W. Eaton <jwe@octave.org> 1968 1969 * load-path.cc (load_path::do_find_first_of, 1970 load_path::do_find_all_first_of): Also search path for relative 1971 filenames. 1972 19732010-10-17 John W. Eaton <jwe@octave.org> 1974 1975 * DLD-FUNCTIONS/tril.cc: Use Octave copyright notice instead of 1976 generic "This program is free software" notice. 1977 1978 * toplev.cc (Fwarranty): Say "GNU Octave" instead of "This program". 1979 19802010-10-16 John W. Eaton <jwe@octave.org> 1981 1982 * mxarray.h.in (mxArray::is_function_handle): New virtual function. 1983 * mex.cc (mxArray_base::is_function_handle): New pure virtual function. 1984 (mxArray_octave_value::is_function_handle): New function. 1985 (mxArray_matlab::is_function_handle): New function. 1986 (mxIsFunctionHandle): New function. 1987 * mexproto.h (mxIsFunctionHandle): Provide decl. 1988 19892010-10-14 John W. Eaton <jwe@octave.org> 1990 1991 * sparse.cc: Rename from DLD-FUNCTIONS/sparse.cc. Include 1992 defun.h, not defun-dld.h. 1993 (Fissparse, Fsparse, Fspalloc): Use DEFUN, not DEFUN_DLD. 1994 * Makefile.am (DIST_SRC): Add sparse.cc to the list. 1995 * DLD-FUNCTIONS/module-files: Remove sparse.cc from the list of files. 1996 19972010-10-09 Ben Abbott <bpabbott@mac.com> 1998 1999 * gl-render.cc: Treat images with scalar unique(x/ydata) like Matlab. 2000 20012010-10-08 John W. Eaton <jwe@octave.org> 2002 2003 * octave.cc (maximum_braindamage): 2004 Set do_braindead_shortcircuit_evaluation to true. 2005 Disable Octave:possible-matlab-short-circuit-operator warning. 2006 * oct-parse.yy (if_cmd_list1, elseif_clause, loop_command): 2007 Mark conditions in IF and WHILE statements for braindead 2008 short-circuit behavior. 2009 * pt-binop.cc (Vdo_braindead_shortcircuit_evaluation): New 2010 static variable. 2011 (Fdo_braindead_shortcircuit_evaluation): New function. 2012 (tree_binary_expression::rvalue1): Perform short-circuit 2013 evaluation of | and & expressions that are conditions of WHILE 2014 and IF statements if Vdo_braindead_shortcircuit_evaluation is true. 2015 * pt-binop.h 2016 (tree_binary_expression::eligible_for_braindead_shortcircuit): 2017 New data member. Initialize it in class constructors. 2018 (tree_binary_expression::mark_braindead_shortcircuit): New function. 2019 * pt-exp.h (tree_expression::mark_braindead_shortcircuit): 2020 New virtual function. 2021 20222010-10-08 Ben Abbott <bpabbott@mac.com> 2023 2024 * graphics.h.in: Properly set image pixel size when unique(x/ydata) 2025 is scalar. 2026 20272010-10-07 Rik <octave@nomad.inbox5.com> 2028 2029 * DLD-FUNCTIONS/conv2.cc (convn): Update docstring. Add 1 new test. 2030 20312010-10-07 John W. Eaton <jwe@octave.org> 2032 2033 * DLD-FUNCTIONS/conv2.cc (convn): Style fixes. Edit docstring. 2034 20352010-10-07 John W. Eaton <jwe@octave.org> 2036 2037 * file-io.cc (do_stream_open): Use fileno instead of ::fileno to 2038 avoid problems if fileno is a macro. 2039 20402010-10-05 John W. Eaton <jwe@octave.org> 2041 2042 * oct-stdstrm.h (octave_stdiostream::octave_stdiostream): Use 2043 fileno instead of ::fileno to avoid problems if fileno is a macro. 2044 20452010-10-04 Shai Ayal <shaiay@users.sourceforge.net> 2046 2047 * graphics.h.in (axis::properties::pixel_size): New function. 2048 (axis::properties::pixel_xsize,axis::properties::pixel_ysize): 2049 New functions, use axis::properties::pixel_size 2050 (axis::properties::update_ydata,axis::properties::update_xdata): 2051 Use axis::properties::pixel_size functions 2052 2053 * graphics.cc (__image_pixel_size__): New function uses 2054 axis::properties::pixel_size functions 2055 20562010-10-01 John W. Eaton <jwe@octave.org> 2057 2058 * graphics.h.in (class caseless_str): Move to 2059 liboctave/caseless-string.h. 2060 20612010-10-01 John W. Eaton <jwe@octave.org> 2062 2063 * graphics.cc (base_properties::get_dynamic): Create and return 2064 octave_scalar_map object instead of Octave_map. 2065 (base_graphics_object::remove_all_listeners): Use octave_map 2066 instead of Octave_map. 2067 (base_graphics_object::values_as_string): Likewise. 2068 2069 * graphics.h.in, graphics.cc (property_list::as_struct): 2070 Return octave_scalar_map instead of Octave_map. 2071 (base_graphics_object::values_as_struct): Likewise. 2072 (graphics_object:values_as_struct): Likewise. 2073 (graphics_object::set): Accept octave_map instead of Octave_map. 2074 2075 * genprops.awk: Use octave_map instead of Octave_map in 2076 generated code. Convert second arg to octave_value in call to 2077 octave_map::assign. 2078 20792010-10-01 John W. Eaton <jwe@octave.org> 2080 2081 * mex.cc (mxArray_struct::as_octave_value): Use octave_map 2082 instead of Octave_map. 2083 20842010-10-01 John W. Eaton <jwe@octave.org> 2085 2086 * ov-base.h: Delete forward decl for Octave_map class. 2087 20882010-10-01 John W. Eaton <jwe@octave.org> 2089 2090 * ov-struct.h (octave_struct (const Octave_map&)): Delete constructor. 2091 20922010-10-01 John W. Eaton <jwe@octave.org> 2093 2094 * ov-fcn-inline.cc (octave_fcn_inline::map_value): Use 2095 octave_scalar_map and octave_map instead of Octave_map. 2096 20972010-10-01 John W. Eaton <jwe@octave.org> 2098 2099 * variables.cc (symbol_info_list::map_value): Use 2100 octave_scalar_map and octave_map instead of Octave_map. 2101 21022010-09-30 Jaroslav Hajek <highegg@gmail.com> 2103 2104 * oct-map.h (octave_fields::nil_rep): Make a static function. 2105 (octave_fields::octave_fields (void)): Use it here. 2106 21072010-09-30 John W. Eaton <jwe@octave.org> 2108 2109 * toplev.cc (octave_config_info): Use Octave_scalar_map instead 2110 of Octave_map. 2111 * sighandlers.cc (make_sig_struct, FSIG): Likewise. 2112 2113 * utils.cc (decode_subscripts): Use octave_map instead of Octave_map. 2114 * octave.cc (F__version_info__): Likewise. 2115 * pt-eval.cc (visit_complex_for_command): Likewise. 2116 * pt-idx.cc (tree_index_expression::lvalue): Likewise. 2117 21182010-09-30 John W. Eaton <jwe@octave.org> 2119 2120 * DLD-FUNCTIONS/gcd.cc: Style fixes. 2121 21222010-09-30 John W. Eaton <jwe@octave.org> 2123 2124 * oct-errno.cc.in (octave_errno::do_list, octave_errno::list): 2125 Use octave_scalar_map instead of Octave_map. 2126 21272010-09-30 Jordi Gutiérrez Hermoso <jordigh@gmail.com> 2128 2129 * DLD-FUNCTIONS/gcd.cc (divide): New function, complex integer 2130 division with remainder. 2131 (simple_gcd): Overload for complex values. 2132 (extended_gcd): Ditto. 2133 (do_simple_gcd): Dispatch for complex gcd. 2134 (do_extended_gcd): Ditto. 2135 (Fgcd): Mention that complex gcd is now also possible. 2136 21372010-09-30 Jordi Gutiérrez Hermoso <jordigh@gmail.com> 2138 2139 * DLD-FUNCTIONS/gcd.cc (extended_gcd): Fix bug that didn't 2140 distinguish the two output coefficients. 2141 (Fgcd): Fix off-by-one bug and typo from copy-pasted code. 2142 21432010-09-30 Jaroslav Hajek <highegg@gmail.com> 2144 2145 * oct-parse.yy (Fautoload): Replace Octave_map by octave_map. 2146 * ov-fcn-handle.cc (Ffunctions): Replace Octave_map by 2147 octave_scalar_map. 2148 21492010-09-30 Jaroslav Hajek <highegg@gmail.com> 2150 2151 * help.cc (F__which__): Use octave_map instead of Octave_map. 2152 * load-save.cc (do_load, save_fields, save_vars): Use 2153 octave_scalar_map instead of Octave_map. 2154 21552010-09-30 Jaroslav Hajek <highegg@gmail.com> 2156 2157 * debug.cc (Fdbstatus, Fdbstack): Use octave_map instead of 2158 Octave_map. 2159 * error.cc (warning_options, initialize_warning_options, 2160 pr_where, Frethrow, Ferror, Fwarning, Flasterror): Use 2161 octave_scalar_map or octave_map instead of Octave_map. 2162 21632010-09-30 Jaroslav Hajek <highegg@gmail.com> 2164 2165 * oct-errno.cc (octave_errno::list, octave_errno::do_list): Use 2166 octave_scalar_map instead of Octave_map. 2167 * oct-errno.h: Update decls. 2168 21692010-09-30 Jaroslav Hajek <highegg@gmail.com> 2170 2171 * pt-idx.cc (tree_index_expression::make_arg_struct): Use octave_map 2172 instead of Octave_map. 2173 * pt-idx.h: Update decl. 2174 21752010-09-29 Jaroslav Hajek <highegg@gmail.com> 2176 2177 * oct-map.cc (octave_map::contents): Fix off-by-1 error. 2178 21792010-09-29 John W. Eaton <jwe@octave.org> 2180 2181 * DLD-FUNCTIONS/__glpk__.cc (OCTAVE_GLPK_GET_REAL_PARAM, 2182 OCTAVE_GLPK_GET_INT_PARAM): Use GETFIELD to access map fields, 2183 not CONTENTS. 2184 * DLD-FUNCTIONS/amd.cc (Famd): Likewise. 2185 * DLD-FUNCTIONS/luinc.cc (Fluinc): Likewise. 2186 21872010-09-29 John W. Eaton <jwe@octave.org> 2188 2189 * DLD-FUNCTIONS/urlwrite.cc (F__ftp_dir__): Use octave_scalar_map 2190 instead of Octave_map. 2191 21922010-09-29 John W. Eaton <jwe@octave.org> 2193 2194 * DLD-FUNCTIONS/luinc.cc (Fluinc): Use octave_scalar_map 2195 instead of Octave_map. 2196 21972010-09-29 John W. Eaton <jwe@octave.org> 2198 2199 * DLD-FUNCTIONS/__glpk__.cc (F__glpk__): Use octave_scalar_map 2200 instead of Octave_map. Use scalar values where appropriate in 2201 call to glpk. 2202 (OCTAVE_GLPK_GET_REAL_PARAM, OCTAVE_GLPK_GET_INT_PARAM): 2203 Update for octave_scalar_map. 2204 22052010-09-29 John W. Eaton <jwe@octave.org> 2206 2207 * DLD-FUNCTIONS/amd.cc (Famd): Use octave_scalar_map instead of 2208 Octave_map. 2209 * DLD-FUNCTIONS/cellfun.cc (get_output_list): Likewise. 2210 22112010-09-29 John W. Eaton <jwe@octave.org> 2212 2213 * DLD-FUNCTIONS/dispatch.cc (Fdispatch): Use octave_scalar_map 2214 instead of Octave_map. 2215 * DLD-FUNCTIONS/fltk_backend.cc (plot_window::handle): Likewise. 2216 * DLD-FUNCTIONS/regexp.cc (octregexp): Likewise. 2217 22182010-09-29 John W. Eaton <jwe@octave.org> 2219 2220 * DLD-FUNCTIONS/eigs.cc (Feigs): Use octave_scalar_map instead 2221 of Octave_map. 2222 22232010-09-29 John W. Eaton <jwe@octave.org> 2224 2225 * DLD-FUNCTIONS/getpwent.cc (mk_pw_map): Use octave_scalar_map 2226 instead of Octave_map. 2227 * DLD-FUNCTIONS/getgrent.cc (mk_gr_map): Likewise. 2228 * DLD-FUNCTIONS/getrusage.cc (Fgetrusage): Likewise. 2229 22302010-09-29 John W. Eaton <jwe@octave.org> 2231 2232 * DLD-FUNCTIONS/time.cc (intfield, stringfield): New functions. 2233 (mk_tm_map, extract_tm): Arg is now octave_scalar_map instead of 2234 Octave_map. 2235 (extract_tm): Use local intfield and setfield functions. 2236 (Fmktime, Fstrftime): Use octave_scalar_map instead of Octave_map. 2237 22382010-09-28 John W. Eaton <jwe@octave.org> 2239 2240 * Cell.h, Cell.cc (Cell::Cell (const std::list<std::string>&)): 2241 New constructor. 2242 22432010-09-28 John P. Swensen <jpswensen@gmail.com> 2244 2245 * DLD-FUNCTIONS/__magick_read__.cc (maybe_initialize_magick): 2246 Warn on initialization of *Magick if QuantumDepth is less than 32. 2247 22482010-09-28 John P. Swensen <jpswensen@gmail.com> 2249 2250 * DLD-FUNCTIONS/__magick_read__.cc (F__magick_format_list__): 2251 New function. 2252 22532010-09-28 John P. Swensen <jpswensen@gmail.com> 2254 2255 * DLD-FUNCTIONS/__magick_read__.cc (encode_uint_image) 2256 (encode_bool_image): Ensure bit depth encoding is correct for 2257 logical, uint8, and uint16 images. 2258 22592010-09-28 Jaroslav Hajek <highegg@gmail.com> 2260 2261 * xpow.cc (xpow (double, const Matrix&)): Ensure real result for 2262 positive base. 2263 (xpow (double, const Matrix&)): Likewise. 2264 22652010-09-28 Jaroslav Hajek <highegg@gmail.com> 2266 2267 * error.cc (interpreter_try): New function. 2268 * error.h: Declare it. 2269 * ov-fcn-handle.cc (octave_fcn_binder::maybe_binder): Use it here. 2270 * variables.cc (safe_symbol_lookup): Also here. 2271 22722010-09-27 John W. Eaton <jwe@octave.org> 2273 2274 * gl-render.cc (opengl_renderer::draw_axes): Reverse order in 2275 which child objects are processed. 2276 22772010-09-26 Rik <octave@nomad.inbox5.com> 2278 2279 * load-path.cc: Use single quotes for regex when possible. 2280 * DLD-FUNCTIONS/regexp.cc (regexp): Update docstring to highlight 2281 differences between POSIX and PCRE regex. 2282 22832010-09-26 Rik <octave@nomad.inbox5.com> 2284 2285 * load-path.cc: Use single quotes for regular expression patterns when 2286 possible. 2287 22882010-09-26 Rik <octave@nomad.inbox5.com> 2289 2290 * DLD-FUNCTIONS/regexp.cc (regexp, regexprep, regexpi): Update 2291 docstrings to more fully explain PCRE. Modify advanced tests to run 2292 only run when PCRE is present. 2293 22942010-09-25 John W. Eaton <jwe@octave.org> 2295 2296 * toplev.cc (Fquit): Allow any number of output parameters. 2297 22982010-09-25 Jaroslav Hajek <highegg@gmail.com> 2299 2300 * DLD-FUNCTIONS/gcd.cc (Fgcd): Rewrite. Use more efficient code. 2301 Specialize for simple/extended Euclid. Handle integer arguments. 2302 23032010-09-24 Rik <octave@nomad.inbox5.com> 2304 2305 * DLD-FUNCTIONS/regexp.cc (regexp, regexprep): Update docstring to 2306 discuss limits when not compiled with PCRE. 2307 23082010-09-23 John W. Eaton <jwe@octave.org> 2309 2310 * Makefile.am (ALL_DEF_FILES): New variable. 2311 (DEF_FILES): Don't include $(DLD_DYNAMIC_DEF_FILES) in the list. 2312 (DEF_FILES DLD_DYNAMIC_DEF_FILES): Fix dependency info. 2313 (doc-files): Depend on $(ALL_DEF_FILES), not $(DEF_FILES). 2314 23152010-09-22 Jaroslav Hajek <highegg@gmail.com> 2316 2317 * xpow.cc (elem_xpow (float, const NDArray&), 2318 elem_xpow (float, const FloatNDArray&)): Use simpler tests. 2319 23202010-09-21 John W. Eaton <jwe@octave.org> 2321 2322 * oct-stream.h (octave_base_stream::file_number): Return 0, 1, 2323 and 2 for named stdin, stdout, and stderr streams; -1 otherwise. 2324 23252010-09-21 John W. Eaton <jwe@octave.org> 2326 2327 * syscalls.cc (Fgethostname): New function. 2328 23292010-09-20 John W. Eaton <jwe@octave.org> 2330 2331 * DLD-FUNCTIONS/time.cc (Fmktime): New tests (bug #31079). 2332 23332010-09-20 John W. Eaton <jwe@octave.org> 2334 2335 Bug #31085: 2336 2337 * file-io.cc (do_stream_open): Use fopen, fileno, and gzdopen 2338 instead of gzopen. Pass integer file id to 2339 octave_zstdiostream::create. 2340 2341 * oct-stdstrm.h (class octave_base_tstdiostream): Rename from 2342 octave_tstdiostream. 2343 (octave_tstdiostream::fnum): New data member. 2344 (octave_tstdiostream::file_number): New member function. 2345 (octave_tstdiostream::octave_tstdiostream): New arg, FID. 2346 (octave_tstdiostream::create): Delete. 2347 (class octave_stdiostream, class octave_zstdiostream): New 2348 non-template classes derived from octave_tstdiostream to replace 2349 typedefs. 2350 2351 * oct-stream.h (octave_base_stream::file_number): Now virtual 2352 and const. Return -1 in defaault implementation. 2353 23542010-09-20 John W. Eaton <jwe@octave.org> 2355 2356 * DLD-FUNCTIONS/regexp.cc (octregexp_list) [HAVE_PCRE]: 2357 Break from search loop if idx is at or beyond end of buffer 2358 (bug #31056). 2359 23602010-09-19 Ben Abbott <bpabbott@mac.com> 2361 2362 * graphics.h.in: Add displayname property to patch and surface objects. 2363 23642010-09-18 David Bateman <dbateman@free.fr> 2365 2366 * graphics.h.in: Remove properties for dead legend code. 2367 23682010-09-18 Ben Abbott <bpabbott@mac.com> 2369 2370 * graphics.cc: Replace pagetype property value custom with <custom>. 2371 23722010-09-16 David Bateman <dbateman@free.fr> 2373 2374 * graphics.cc (static Matrix screen_size_pixels (void), static Matrix 2375 papersize_from_type (const caseless_str, const caseless_str))): New 2376 functions. 2377 (void figure::properties::set_paperunits (const octave_value&), 2378 void figure::properties::set_papertype (const octave_value&), 2379 void figure::properties::update_paperunits (const caseless_str&)) 2380 void figure::properties::update_papertype (void), 2381 void figure::properties::update_papersize (void), 2382 void figure::properties::update_units (const caseless_str&)): New 2383 methods of the figure class. 2384 (void axes::properties::set_units (const octave_value&), 2385 void axes::properties::update_units (const caseless_str&), 2386 void axes::properties::set_fontunits (const octave_value&), 2387 void axes::properties::update_fontunits (const caseless_str&)): 2388 New methods of the axes class. 2389 * graphics.h.in (void figure::properties::update_paperunits 2390 (const caseless_str&), void figure::properties::update_units 2391 (const caseless_str&)): Declaration of new figure methods. 2392 (void figure::properties::update_paperunits (const caseless_str&), 2393 void figure::properties::update_units (const caseless_str&)): 2394 Declaration of new axes methods. 2395 23962010-09-16 John P. Swensen <jpswensen@gmail.com> 2397 2398 * DLD-FUNCTIONS/))magick_read__.cc (write_image): Remove 2399 unnecessary for loop to set image format. 2400 24012010-09-16 John W. Eaton <jwe@octave.org> 2402 2403 * DLD-FUNCTIONS/svd.cc (Fsvd): Delete assert to avoid 2404 "comparison is always false due to limited range of data type" 2405 warning from GCC. 2406 2407 * utils.cc (octave_vsnprintf): Declare nchars volatile to avoid 2408 GCC warning. 2409 2410 * pr-output.cc (octave_print_internal): Avoid uninitialized 2411 variable warning from GCC. 2412 24132010-09-16 John Swensen <jpswensen@gmail.com> 2414 2415 * DLD-FUNCTIONS/__magick_read__.cc (write_image): Allow 2416 arbitrary extensions with format specifier. 2417 24182010-09-15 John W. Eaton <jwe@octave.org> 2419 2420 * load-path.cc (Faddpath, Frmpath): Document path arguments. 2421 24222010-09-15 John Swensen <jpswensen@gmail.com> 2423 2424 * DLD-FUNCTIONS/__magick_read__.cc (write_image): Allow writing 2425 arbitrary image types to filenames without an extension (bug #30784). 2426 24272010-09-14 John W. Eaton <jwe@octave.org> 2428 2429 * variables.cc (symbol_exist): If looking for any type of file 2430 or "file", return 7 for directories and 2 for all other types of 2431 files. 2432 24332010-09-14 John W. Eaton <jwe@octave.org> 2434 2435 * graphics.h.in (base_graphics_backend::initialize): Rename 2436 from base_graphics_backend::object_created. Change all uses. 2437 (base_graphics_backend::finalize): Rename from 2438 base_graphics_backend::object_destoyed. Change all uses. 2439 (base_graphics_backend::update): Rename from 2440 base_graphics_backend::property_changed. Change all uses. 2441 24422010-09-14 John W. Eaton <jwe@octave.org> 2443 2444 * DLD-FUNCTIONS/fltk_backend.cc (fltk_backend::object_destroyed): 2445 Don't attempt to delete window if __plot_stream__ is empty. 2446 24472010-09-14 Jordi Gutiérrez Hermoso <jordigh@gmail.com> 2448 2449 * load-path.cc (genpath): Pass SKIP in recursive call. 2450 (Fgenpath): Accept list of directories to skip. 2451 24522010-09-14 John W. Eaton <jwe@octave.org> 2453 2454 * oct-stream.cc (BEGIN_CHAR_CLASS_CONVERSION): If we hit EOF but 2455 have found a match, clear the stream state (bug # 30997). 2456 24572010-09-13 Jaroslav Hajek <highegg@gmail.com> 2458 2459 * DLD-FUNCTIONS/cellfun.cc (Fcellfun): Remove subsref optimization. 2460 24612010-09-13 Jaroslav Hajek <highegg@gmail.com> 2462 2463 * DLD-FUNCTIONS/cellfun.cc (Fcellindexmat): New DEFUN. 2464 24652010-09-12 Jaroslav Hajek <highegg@gmail.com> 2466 2467 * ov-fcn-handle.cc (octave_fcn_binder::maybe_binder): Stash name tags 2468 in the template. 2469 (octave_fcn_binder::do_multi_index_op): Don't use xelem to ensure 2470 proper unsharing. Make a shallow copy prior to call to ensure 2471 consistency throughout recursive calls. 2472 24732010-09-11 Jaroslav Hajek <highegg@gmail.com> 2474 2475 * ov-fcn-handle.h (octave_fcn_binder): New subclass. 2476 * ov-fcn-handle.cc: Define methods. 2477 * pt-fcn-handle.cc (tree_anon_fcn_handle::rvalue1): Call 2478 octave_fcn_binder::maybe_binder. 2479 24802010-09-11 John W. Eaton <jwe@octave.org> 2481 2482 * pt-misc.cc (tree_parameter_list::initialize_undefined_elements): 2483 Avoid GCC shadow variable warning. 2484 24852010-09-11 John W. Eaton <jwe@octave.org> 2486 2487 * load-path.cc (Faddpath): Adjust value of nargin if numeric 2488 option is found (bug #31001). 2489 24902010-09-09 Shai Ayal <shaiay@users.sourceforge.net> 2491 2492 * gl2ps-renderer.cc: Renders to a previously opened fid. 2493 * gl2ps-renderer.h: Ditto. 2494 * DLD-FUNCTIONS/fltk_backend.cc: print now accepts fid instead 2495 of filename to use with above change 2496 24972010-09-07 Jaroslav Hajek <highegg@gmail.com> 2498 2499 * DLD-FUNCTIONS/__magick_read__.cc (maybe_initialize_magick): New 2500 helper function. Move initialization code & static variable here. 2501 (F__magick_read__, F__magick_write__, F__magick_finfo__): Call it 2502 here. 2503 25042010-09-03 Jaroslav Hajek <highegg@gmail.com> 2505 2506 * DLD-FUNCTIONS/cquad.cc: New source, courtesy by Pedro Gonnet. 2507 * DLD-FUNCTIONS/module-files: Update. 2508 25092010-09-01 Marco Caliari <marco.caliari@univr.it> 2510 2511 * graphics.cc: Fix axes limits underflow to zero for logscale. 2512 25132010-09-01 Jaroslav Hajek <highegg@gmail.com> 2514 2515 * pt-mat.cc (single_type_concat (Array<T>&, ...)): Optimize all 2516 scalars case. 2517 25182010-09-01 Jaroslav Hajek <highegg@gmail.com> 2519 2520 * oct-map.cc (octave_map::cat): Search first for an index with 2521 nonzero nfields and use it for comparisons. 2522 (permute_to_correct_order1): New overloaded helper func. 2523 (permute_to_correct_order): use it here. Pass the index here. 2524 * pt-mat.cc (single_type_concat): Don't subst 0x0 for all empty 2525 arrays. Use the respective cat() capability instead. 2526 25272010-09-01 Jaroslav Hajek <highegg@gmail.com> 2528 2529 * DLD-FUNCTIONS/dlmread.cc (Fdlmread): Support "emptyvalue" option. 2530 Fix condition for terminating read. 2531 25322010-08-31 Jaroslav Hajek <highegg@gmail.com> 2533 2534 * DLD-FUNCTIONS/dlmread.cc (Fdlmread): Support reading from a file ID. 2535 25362010-08-31 Jaroslav Hajek <highegg@gmail.com> 2537 2538 * ov-class.cc (get_current_method_class): Make it an octave_class 2539 method. Return class_name as default. 2540 (octave_class::dotref): Error on zero return value. 2541 25422010-08-30 Ben Abbott <bpabbott@mac.com> 2543 2544 * gl-render.cc: Matlab compatible markers for the OpenGL. 2545 25462010-08-30 John W. Eaton <jwe@octave.org> 2547 2548 * graphics.cc (convert_cdata_1, convert_cdata_2): New functions. 2549 (convert_cdata): Use them to avoid converting all elements of 2550 cdata to double at once. 2551 * graphics.h.in (surface::properties::init): Constrain cdata and 2552 alphadata to be single, double, or uint8. 2553 25542010-08-30 Jaroslav Hajek <highegg@gmail.com> 2555 2556 * graphics.cc (convert_cdata): Avoid extracting pointer to temporary 2557 copy. 2558 25592010-08-30 John W. Eaton <jwe@octave.org> 2560 2561 * graphics.cc (convert_cdata): Allow cdata to be any type that 2562 can be converted to double. 2563 * graphics.h.in (surface::properties::init): Remove constraints 2564 on cdata and alphadata. 2565 25662010-08-27 Jordi Gutiérrez Hermoso <jordigh@gmail.com> 2567 2568 * graphics.cc (axes::properties::rotate_view): Don't rotate past 2569 the top and bottom. 2570 (axes::properties::update_camera): Fix the view when rotating to 2571 the bottom. 2572 (calc_dimensions): New static function. 2573 (F__calc_dimensions__) New defun to replace m-script function. 2574 * graphics.h.in (calc_dimension): Provide decl. 2575 * DLD-FUNCTIONS/fltk_backend.cc (plot_window::plot_window): 2576 Use calc_dimensions to decide whether the current figure should 2577 be rotated. 2578 (plot_window::mark_modified) Recompute the number of dimensions. 2579 Deactivate rotation if necessary. 2580 (plot_window::ndim) New data member. 2581 (plot_window::button_press, plot_window::handle): Only turn on 2582 rotation if ndim == 3. 2583 25842010-08-24 David Bateman <dbateman@free.fr> 2585 2586 * ls-mat5.cc (static void read_mat5_binary_data (std::istream&, 2587 float *, octave_idx_type, bool, mat5_data_type, 2588 oct_mach_info::float_format)) : New function 2589 (std::string read_mat5_binary_element (std::istream&, 2590 const std::string&, bool, bool&, octave_value&)): Treat 2591 MAT_FILE_SINGLE_CLASS as single precision rather than convert to 2592 double precision. 2593 (static void write_mat5_array (std::ostream&, const FloatNDArray&, 2594 bool), int save_mat5_array_length (const float*, octave_idx_type, 2595 bool), int save_mat5_array_length (const FloatComplex*, 2596 octave_idx_type, bool)): New functions. 2597 (int save_mat5_element_length (const octave_value&, 2598 const std::string&, bool save_as_floats, bool), bool 2599 save_mat5_binary_element (std::ostream&, const octave_value&, 2600 const std::string&, bool, bool, bool, bool)): Treat 2601 MAT_FILE_SINGLE_CLASS as single precision rather than convert to 2602 double precision. 2603 26042010-08-23 John W. Eaton <jwe@octave.org> 2605 2606 * load-path.cc (load_path::dir_info::initialize): Clear 2607 method_file_map before updating file list. 2608 * load-path.cc (load_path::load_path): Explicitly initialize 2609 private_fcn_map. 2610 26112010-08-17 Rik <octave@nomad.inbox5.com> 2612 2613 * mappers.cc (gamma,lgamma): Add %!tests for negative integer 2614 input arguments. 2615 26162010-08-17 Rik <octave@nomad.inbox5.com> 2617 2618 * bitfcns.cc (bitmax): Add additional calling argument, class, and 2619 additional return value for bitmax("single"). 2620 26212010-08-17 Rik <octave@nomad.inbox5.com> 2622 2623 * bitfcns.cc (sizemax): Improve documentation string. 2624 26252010-08-16 Ben Abbott <bpabbott@mac.com> 2626 2627 * gl2ps.c: Use upstream version gl2ps-1.3.5-svn-20100816. 2628 26292010-08-13 Rik <octave@nomad.inbox5.com> 2630 2631 * toplev.c (do_goto_frame_relative): Remove unused variable c. 2632 26332010-08-13 Jaroslav Hajek <highegg@gmail.com> 2634 2635 * ov-builtin.cc 2636 (octave_builtin::subsref (..., const std::list<octave_lvalue> *) 2637 octave_builtin::do_multi_index_op (..., const std::list<octave_lvalue> *)): 2638 New methods. Move code here. Set curr_lvalue_list. 2639 (octave_builtin::curr_lvalue_list): New static member. 2640 * ov-fcn-handle.h: Declare them. 2641 * defun.cc (defun_isargout): New overloaded function. 2642 * defun-int.h: Declare it. 2643 26442010-08-11 Jaroslav Hajek <highegg@gmail.com> 2645 2646 * ov-lazy-idx.h (octave_lazy_index::subsasgn): Remove override. Leave 2647 it to the defualt numeric conversion mechanism. 2648 26492010-08-10 Jaroslav Hajek <highegg@gmail.com> 2650 2651 * data.cc (Fdiff): Allow logical type. 2652 26532010-08-09 Rik <octave@nomad.inbox5.com> 2654 2655 * oct-parse.yy (parse_fcn_file): Restore parsing of help text 2656 accidentally lost in previous changeset. 2657 26582010-08-09 John W. Eaton <jwe@octave.org> 2659 2660 * oct-parse.yy (parse_fcn_file): Handle empty script files 2661 (bug #30588). 2662 26632010-08-09 Jaroslav Hajek <highegg@gmail.com> 2664 2665 * ov.cc (octave_value::assign (assign_op, const std::string&, 2666 const std::list<octave_value_list>&, const octave_value&): 2667 Don't attempt to fix struct assignment to non-struct values here. 2668 Check for successful assignment before overwriting this. 2669 2670 * ov-cell.cc (octave_cell::subsasgn): Allow dot assignment into empty 2671 cell. 2672 26732010-08-08 Rik <octave@nomad.inbox5.com> 2674 2675 * DLD-FUNCTIONS/config-module.awk: Add newlines to divide blocks 2676 in generated modules.mk and improve readability. 2677 26782010-08-08 Rik <octave@nomad.inbox5.com> 2679 2680 * Makefile.am: Create .DOCSTRINGS quietly and avoid screen clutter 2681 during build. 2682 26832010-08-08 Rik <octave@nomad.inbox5.com> 2684 2685 * Makefile.am: Run do_subst macro quietly without cluttering screen 2686 during build. 2687 26882010-08-08 Shai Ayal <shaiay@users.sourceforge.net> 2689 2690 * DLD-FUNCTIONS/fltk_backend.cc 2691 (base_graphics_backend::print_figure): Add a redraw to get the 2692 thing going. 2693 26942010-08-05 Shai Ayal <shaiay@users.sourceforge.net> 2695 2696 * gl2ps-renderer.cc (draw): Add support for more terminal types. 2697 * DLD-FUNCTIONS/fltk_backend.cc: Likewise. 2698 26992010-08-04 John W. Eaton <jwe@octave.org> 2700 2701 * mex.cc (mxArray_number (const char *)): Create empty string if 2702 given NULL arg (bug #30639). Create 0x0 string array if given 2703 an empty string argument, not 1x0. 2704 27052010-08-03 Jaroslav Hajek <highegg@gmail.com> 2706 2707 * OPERATORS/op-str-str.cc: Fix assignment operator. 2708 * OPERATORS/op-str-s.cc: Likewise. 2709 * OPERATORS/op-str-m.cc: Likewise. 2710 27112010-08-03 Jaroslav Hajek <highegg@gmail.com> 2712 2713 * ov-fcn-handle.cc 2714 (octave_value::subsref (..., const std::list<octave_lvalue> *) 2715 octave_value::do_multi_index_op (..., const std::list<octave_lvalue> *)): 2716 New methods. Move code here. 2717 * ov-fcn-handle.h: Declare them. 2718 27192010-08-03 Jaroslav Hajek <highegg@gmail.com> 2720 2721 * ov-usr-fcn.cc (Fis_ignored_output): Rename to Fisargout. Change the 2722 behavior to indicate not ignored outputs. 2723 27242010-08-01 Rik <octave@nomad.inbox5.com> 2725 2726 * DLD-FUNCTIONS/amd.cc, DLD-FUNCTIONS/balance.cc, 2727 DLD-FUNCTIONS/besselj.cc, DLD-FUNCTIONS/betainc.cc, 2728 DLD-FUNCTIONS/ccolamd.cc, DLD-FUNCTIONS/cellfun.cc, 2729 DLD-FUNCTIONS/chol.cc, DLD-FUNCTIONS/colamd.cc, DLD-FUNCTIONS/daspk.cc, 2730 DLD-FUNCTIONS/dasrt.cc, DLD-FUNCTIONS/dot.cc, DLD-FUNCTIONS/eigs.cc, 2731 DLD-FUNCTIONS/fftw.cc, DLD-FUNCTIONS/filter.cc, 2732 DLD-FUNCTIONS/lookup.cc, DLD-FUNCTIONS/lsode.cc, DLD-FUNCTIONS/lu.cc, 2733 DLD-FUNCTIONS/matrix_type.cc, DLD-FUNCTIONS/onCleanup.cc, 2734 DLD-FUNCTIONS/qr.cc, DLD-FUNCTIONS/rand.cc, DLD-FUNCTIONS/regexp.cc, 2735 DLD-FUNCTIONS/sparse.cc, DLD-FUNCTIONS/str2double.cc, 2736 DLD-FUNCTIONS/tril.cc, DLD-FUNCTIONS/typecast.cc, data.cc, graphics.cc, 2737 load-save.cc, ov-null-mat.cc, ov-struct.cc, ov-usr-fcn.cc, 2738 pr-output.cc, strfns.cc, variables.cc: Grammarcheck documentation. 2739 Add @noindent lines and ensure line length is less than 80. 2740 27412010-07-31 Rik <octave@nomad.inbox5.com> 2742 2743 * DLD-FUNCTIONS/__magick_read__.cc, DLD-FUNCTIONS/__voronoi__.cc, 2744 DLD-FUNCTIONS/amd.cc, DLD-FUNCTIONS/balance.cc, 2745 DLD-FUNCTIONS/besselj.cc, DLD-FUNCTIONS/betainc.cc, 2746 DLD-FUNCTIONS/ccolamd.cc, DLD-FUNCTIONS/cellfun.cc, 2747 DLD-FUNCTIONS/chol.cc, DLD-FUNCTIONS/colamd.cc, DLD-FUNCTIONS/conv2.cc, 2748 DLD-FUNCTIONS/convhulln.cc, DLD-FUNCTIONS/daspk.cc, 2749 DLD-FUNCTIONS/dasrt.cc, DLD-FUNCTIONS/dassl.cc, 2750 DLD-FUNCTIONS/dmperm.cc, DLD-FUNCTIONS/dot.cc, DLD-FUNCTIONS/eigs.cc, 2751 DLD-FUNCTIONS/fftn.cc, DLD-FUNCTIONS/fftw.cc, DLD-FUNCTIONS/filter.cc, 2752 DLD-FUNCTIONS/find.cc, DLD-FUNCTIONS/gammainc.cc, DLD-FUNCTIONS/gcd.cc, 2753 DLD-FUNCTIONS/getrusage.cc, DLD-FUNCTIONS/givens.cc, 2754 DLD-FUNCTIONS/hess.cc, DLD-FUNCTIONS/hex2num.cc, DLD-FUNCTIONS/inv.cc, 2755 DLD-FUNCTIONS/kron.cc, DLD-FUNCTIONS/lookup.cc, DLD-FUNCTIONS/lsode.cc, 2756 DLD-FUNCTIONS/lu.cc, DLD-FUNCTIONS/luinc.cc, 2757 DLD-FUNCTIONS/matrix_type.cc, DLD-FUNCTIONS/max.cc, 2758 DLD-FUNCTIONS/md5sum.cc, DLD-FUNCTIONS/onCleanup.cc, 2759 DLD-FUNCTIONS/qr.cc, DLD-FUNCTIONS/quad.cc, DLD-FUNCTIONS/qz.cc, 2760 DLD-FUNCTIONS/rand.cc, DLD-FUNCTIONS/regexp.cc, DLD-FUNCTIONS/schur.cc, 2761 DLD-FUNCTIONS/sparse.cc, DLD-FUNCTIONS/spparms.cc, 2762 DLD-FUNCTIONS/str2double.cc, DLD-FUNCTIONS/strfind.cc, 2763 DLD-FUNCTIONS/sub2ind.cc, DLD-FUNCTIONS/svd.cc, DLD-FUNCTIONS/syl.cc, 2764 DLD-FUNCTIONS/symbfact.cc, DLD-FUNCTIONS/time.cc, 2765 DLD-FUNCTIONS/tril.cc, DLD-FUNCTIONS/typecast.cc, 2766 DLD-FUNCTIONS/urlwrite.cc, bitfcns.cc, data.cc, debug.cc, defaults.cc, 2767 dirfns.cc, error.cc, file-io.cc, graphics.cc, help.cc, input.cc, 2768 load-path.cc, load-save.cc, ls-oct-ascii.cc, mappers.cc, oct-hist.cc, 2769 octave.cc, ov-base.cc, ov-cell.cc, ov-class.cc, ov-fcn-handle.cc, 2770 ov-fcn-inline.cc, ov-null-mat.cc, ov-range.cc, ov-struct.cc, 2771 ov-usr-fcn.cc, pager.cc, pr-output.cc, pt-eval.cc, pt-mat.cc, 2772 sighandlers.cc, strfns.cc, symtab.cc, syscalls.cc, sysdep.cc, 2773 toplev.cc, utils.cc, variables.cc: Grammarcheck .cc files 2774 27752010-07-30 John W. Eaton <jwe@octave.org> 2776 2777 * debug.cc (Fdbstack): Improve display. 2778 2779 * toplev.cc (octave_call_stack::do_goto_frame_relative): 2780 Improve message. Don't display column number. 2781 2782 * debug.cc (get_file_line): Don't allow eol to be less than bol. 2783 (Fdbwhere): Improve message. Don't display column number. 2784 (Fdbstack): Omit column number from display. 2785 2786 * pt-eval.cc (tree_evaluator::visit_statement): Don't call 2787 octave_call_stack::set_statement for commands issued while 2788 debugging. 2789 27902010-07-30 John W. Eaton <jwe@octave.org> 2791 2792 * pt-bp.cc (tree_breakpoint::take_action): Only call 2793 delete_breakpoint if is_breakpoint returns true. 2794 (tree_breakpoint::visit_statement): If statement is command, 2795 accept it, otherwise, maybe take action on the statement. 2796 (tree_breakpoint::visit_no_op_command): Handle breakpoints at 2797 end of function. 2798 Addresses more problems found with bug #30490. 2799 28002010-07-30 Rik <octave@nomad.inbox5.com> 2801 2802 * Makefile.am: add .DOCSTRINGS to the DISTCLEANFILES list 2803 28042010-07-30 John W. Eaton <jwe@octave.org> 2805 2806 * pt-eval.cc (tree_evaluator::visit_if_command, 2807 tree_evaluator::visit_switch_command): Also process breakpoints 2808 for the command (bug #30490). 2809 28102010-07-29 Ben Abbott <bpabbott@mac.com> 2811 2812 * gl-render.cc: Transpose markers '^' and 'v'. 2813 28142010-07-29 John W. Eaton <jwe@octave.org> 2815 2816 * pt-bp.cc (tree_breakpoint::visit_if_command): Also allow 2817 breakpoint to be set on command, same as for switch, while, or 2818 do-until statments. 2819 * pt-select.h, pt-select.cc (tree_if_command::set_breakpoint, 2820 tree_if_command::delete_breakpoint, tree_switch_command::set_breakpoint, 2821 tree_switch_command::delete_breakpoint): Delete functions and decls. 2822 (bug #30490). 2823 28242010-07-29 Jaroslav Hajek <highegg@gmail.com> 2825 2826 * ov.cc (octave_value::subsref (..., const std::list<octave_lvalue> *) 2827 octave_value::do_multi_index_op (..., const std::list<octave_lvalue> *)): 2828 New methods. 2829 * ov.h: Declare them. 2830 * ov-base.cc (octave_base_value::subsref (..., const std::list<octave_lvalue> *) 2831 octave_base_value::do_multi_index_op (..., const std::list<octave_lvalue> *)): 2832 New methods. 2833 * ov-base.h: Declare them. 2834 * ov-usr-fcn.cc (octave_user_function::subsref (..., const std::list<octave_lvalue> *) 2835 octave_user_function::do_multi_index_op (..., const std::list<octave_lvalue> *)): 2836 New virtual method overrides. Move code here. 2837 (octave_user_function::bind_automatic_vars): Add lvalue_list 2838 parameter. Bind automatic variable ".ignored.". 2839 (Fis_ignored_output): New defun. 2840 * ov-usr-fcn.h: Update decls. 2841 * pt-misc.cc (tree_parameter_list::initialize_undefined_elements): 2842 Skip warning if outputs are ignored. 2843 * pt-exp.cc (tree_expression::rvalue (..., const 2844 std::list<octave_lvalue> *)): New method overload. 2845 * pt-exp.h: Declare it. 2846 * pt-idx.cc (tree_index_expression::rvalue (..., const 2847 std::list<octave_lvalue> *)): New method override. Move code here. 2848 * pt-idx.h: Declare it. 2849 * pt-assign.cc (tree_multi_assignment::rvalue): Pass in the pointer to 2850 lvalue_list. 2851 28522010-07-28 John W. Eaton <jwe@octave.org> 2853 2854 * DLD-FUNCTIONS/find.cc (Ffind): Reorder cases to check for 2855 character strings before numeric arrays. 2856 Delete explicit instantiations of find_nonzero_elem_idx templates. 2857 New test for char array argument. 2858 28592010-07-27 Rik <octave@nomad.inbox5.com> 2860 2861 * DLD-FUNCTIONS/schur.cc (rsf2csf): Change first documentation line to 2862 active voice. 2863 28642010-07-27 Jaroslav Hajek <highegg@gmail.com> 2865 2866 * DLD-FUNCTIONS/schur.cc (Frsf2csf): New DEFUN. 2867 28682010-07-23 Jaroslav Hajek <highegg@gmail.com> 2869 2870 * ov-base-scalar.cc (octave_base_scalar::diag): Implement here. Fix. 2871 * ov-base-scalar.h: Only declare here. 2872 28732010-07-23 Jaroslav Hajek <highegg@gmail.com> 2874 2875 * ov-re-diag.cc (octave_diag_matrix::try_narrowing_conversion): Remove 2876 redundant cast. 2877 * ov-flt-re-diag.cc 2878 (octave_float_diag_matrix::try_narrowing_conversion): Ditto. 2879 * ov-cx-diag.cc 2880 (octave_complex_diag_matrix::try_narrowing_conversion): Ditto. 2881 * ov-flt-cx-diag.cc 2882 (octave_float_complex_diag_matrix::try_narrowing_conversion): Ditto. 2883 28842010-07-23 Jaroslav Hajek <highegg@gmail.com> 2885 2886 * pt-mat.cc (do_single_type_concat_no_mutate): Remove. 2887 (tree_matrix::rvalue1): Use do_single_type_concat instead. 2888 28892010-07-21 Jaroslav Hajek <highegg@gmail.com> 2890 2891 * bitfcns.cc (Fsizemax): New DEFUN. 2892 28932010-07-20 Shai Ayal <shaiay@users.sourceforge.net> 2894 2895 * DLD-FUNCTIONS/fltk_backend.cc (plot_window::plot_window): 2896 Added a bottom Fl_Box (copied from gmsh) and tooltips 2897 28982010-07-20 Rik <octave@nomad.inbox5.com> 2899 2900 * DLD-FUNCTIONS/typecast.cc (typecast): Combine two @seealso macro 2901 uses to one. 2902 29032010-07-20 Jaroslav Hajek <highegg@gmail.com> 2904 2905 * DLD-FUNCTIONS/dlmread.cc (Fdlmread): Use octave_idx_type instead of 2906 unsigned long. Over-allocate by a factor 2 to reduce copying. 2907 Attempt to estimate number of columns from first line. 2908 Hoist tmp_stream out of the loop and reset it for each substring. 2909 29102010-07-17 Rik <octave@nomad.inbox5.com> 2911 2912 * data.cc (repelems): Add more documentation about new function. 2913 29142010-07-19 Jaroslav Hajek <highegg@gmail.com> 2915 2916 * data.cc (do_repelems): New helper func. 2917 (Frepelems): New DEFUN. 2918 29192010-07-19 John W. Eaton <jwe@octave.org> 2920 2921 * DLD-FUNCTIONS/fltk_backend.cc (plot_window::gui_mode): 2922 Use enum instead of int. Change all uses. 2923 29242010-07-18 Kai Habel <kai.habel@gmx.de> 2925 2926 * DLD-FUNCTIONS/fltk_backend.cc: Add mode for mouse rotation. 2927 (view2status): new function 2928 * graphics.cc: Remove limitations for zooming and translation. 2929 (axes::properties::rotate_view): new function 2930 29312010-07-17 Rik <octave@nomad.inbox5.com> 2932 2933 * DLD-FUNCTIONS/balance.cc, DLD-FUNCTIONS/ccolamd.cc, 2934 DLD-FUNCTIONS/cellfun.cc, DLD-FUNCTIONS/dasrt.cc, 2935 DLD-FUNCTIONS/dmperm.cc, DLD-FUNCTIONS/eigs.cc, DLD-FUNCTIONS/qz.cc, 2936 DLD-FUNCTIONS/rand.cc, DLD-FUNCTIONS/sparse.cc, 2937 DLD-FUNCTIONS/sqrtm.cc, DLD-FUNCTIONS/symrcm.cc, dirfns.cc, 2938 file-io.cc, syscalls.cc: Spellcheck documentation 2939 29402010-07-08 Rik <octave@nomad.inbox5.com> 2941 2942 * DLD_FUNCTIONS/rand.cc: Correct typo in rande documentation. 2943 (bug #30446). 2944 29452010-07-13 Jaroslav Hajek <highegg@gmail.com> 2946 2947 * DLD-FUNCTIONS/cellfun.cc (mat2cell_mismatch, prepare_idx, 2948 do_mat2cell_2d, do_mat2cell_nd, do_mat2cell): New helper funcs. 2949 (Fmat2cell): Use them here. 2950 29512010-07-13 Jaroslav Hajek <highegg@gmail.com> 2952 2953 * data.cc (do_sparse_diff): Use typecasts where needed. 2954 29552010-07-12 Jaroslav Hajek <highegg@gmail.com> 2956 2957 * DLD-FUNCTIONS/rand.cc (do_rand): Pass the distribution name as an 2958 argument. Ensure restoration using unwind_protect. 2959 (Frand, Frandn, Frandg, Frandp, Frande): Update. 2960 29612010-07-12 Jaroslav Hajek <highegg@gmail.com> 2962 2963 * unwind-prot.h (unwind_protect::fcn_crefarg_elem): New class. 2964 (unwind_protect::add_fcn (void (*) (const T&), T)): New method 2965 overload. 2966 29672010-07-08 David Bateman <dbateman@free.fr> 2968 2969 * DLD-FUNCTIONS/__magick_read__,cc (F__magick_read__): Add the syntax 2970 __magick_read__ ("file", "frames", "all"). 2971 29722010-07-08 Rik <octave@nomad.inbox5.com> 2973 2974 * DLD_FUNCTIONS/eigs.cc: Initialize random number generator in test 2975 blocks to get reproducible results. 2976 29772010-07-08 Jaroslav Hajek <highegg@gmail.com> 2978 2979 * ov-cell.cc (Fstruct2cell): Use octave_map. Optimize. 2980 29812010-07-07 Rik <octave@nomad.inbox5.com> 2982 2983 * pr-output.cc (calc_scale_exp): Avoid use of % operator on negative 2984 operands for portability between C++ compilers. 2985 (engineering_exponent): Avoid use of % operator. Keep calculation of 2986 exponent within pr_engineering_float class. (encapsulation). 2987 (num_digits): Rename from calc_digits. Return true number of digits = 2988 1 + calc_digits. 2989 (calc_scale_exp): Rename from maybe_mod3 for readability. 2990 (operator << (... pr_engineering_float pef): Use pef abbreviation for 2991 pr_engineering_float. 2992 29932010-07-07 David Bateman <dbateman@free.fr> 2994 2995 * graphics.h.in (axes): Add hidden property __hold_all. 2996 29972010-07-07 Jaroslav Hajek <highegg@gmail.com> 2998 2999 * ov-class.h (octave_class::map): Turn to octave_map. 3000 * ov-class.cc (octave_class): Update methods. 3001 * ov-base.h, ov-base.cc (octave_base_value::old_map_value) : Remove. 3002 * ov.h, ov.cc (octave_value::old_map_value) : Remove. 3003 30042010-07-06 David Bateman <dbateman@free.fr> 3005 3006 * pr-output.cc (static bool print_eng): Flag engineering format, 3007 (float_format::float_format (int, int, int, int)): New constructor. 3008 (int float_format::ex): New field in the class. 3009 (static int maybe_mod3 (const int&), static int 3010 engineering_exponent (const double&), 3011 static int calc_digits (const double&)): New functions 3012 (class pr_engineering_float): New class 3013 (std::ostream& operator << (std::ostream&, 3014 const pr_formatted_float&)): New operator. Make it a friend of the 3015 float_format class. 3016 (static void set_real_format(...), 3017 static void set_real_matrix_format (...), 3018 static void set_complex_format(...), 3019 static void set_complex_matrix_format (...), 3020 static void set_range_format (...)): Set width for engineering format. 3021 (static void set_format (...)): Call calc_digits to find the number 3022 of digits in a value. 3023 (static void pr_any_float (const float_format *, std::ostream&, 3024 double, int)): Print engineering formats. 3025 (static void init_format_state (void)): Set default state of print_eng. 3026 (static void set_format_style (int, const string_vector&)): Parse 3027 the "eng" argument. 3028 (Fformat): Document the new engineering format. 3029 30302010-07-04 Søren Hauberg <hauberg@gmail.com> 3031 3032 * DLD_FUNCTIONS/__magick_read__.cc: restore locale after 3033 GraphicsMagick initialisation. 3034 30352010-07-02 Jaroslav Hajek <highegg@gmail.com> 3036 3037 * toplev.cc (octave_call_stack::do_backtrace): Use static 3038 octave_fields struct. 3039 (octave_call_stack::empty_backtrace): New static method. 3040 * toplev.h: Declare it. 3041 * error.cc (Vlast_error_stack, initialize_last_error_stack, 3042 Frethrow): Use octave_map or octave_scalar_map where applicable. 3043 30442010-07-02 Jaroslav Hajek <highegg@gmail.com> 3045 3046 * pt-mat.cc (tm_row_const::tm_row_const_rep::all_1x1, 3047 tm_cont::all_1x1): New member fields. 3048 (tm_row_const::tm_row_const_rep::init, tm_const::init): 3049 Handle them here. 3050 (tm_row_const::all_1x1_p, tm_const::all_1x1_p): New methods. 3051 (single_type_concat<MAP> (octave_map&, ...)): New template 3052 overload. 3053 (do_single_type_concat<octave_map>): New template specialization. 3054 (tree_matrix::rvalue1): Specialize for cell and struct classes. 3055 * oct-map.cc (octave_map::do_cat (..., const octave_map *, ...)): 3056 Assign result dimensions. 3057 30582010-07-02 Jaroslav Hajek <highegg@gmail.com> 3059 3060 * oct-map.cc (octave_map::cat (..., const octave_scalar_map *)): 3061 Handle special dims (-1, -2). 3062 * data.cc (do_single_type_concat_map): Don't handle them here. 3063 30642010-07-01 Jaroslav Hajek <highegg@gmail.com> 3065 3066 * syscalls.cc (mk_stat_map, Funame): Use octave_scalar_map. 3067 30682010-07-01 Jaroslav Hajek <highegg@gmail.com> 3069 3070 * oct-map.h (octave_scalar_map::assign (const std::string&, const 3071 octave_value&), octave_map::assign (const std::string&, const Cell&)): 3072 Backward-compatible aliases for setfield. 3073 30742010-07-01 Jaroslav Hajek <highegg@gmail.com> 3075 3076 * oct-map.cc (octave_fields::equal_up_to_order (const octave_fields&, 3077 octave_idx_type *)): New overload. 3078 (octave_fields::equal_up_to_order (const octave_fields&, 3079 Array<octave_idx_type>&)): Use it here. 3080 (octave_map::fast_elem_insert, 3081 octave_map::fast_elem_extract): New methods. 3082 * oct-map.h: Update decls. 3083 * ov-struct.cc (octave_struct::fast_elem_extract, 3084 octave_struct::fast_elem_insert, 3085 octave_scalar_struct::fast_elem_insert_self): New methods. 3086 * ov-struct.h: Update decls. 3087 30882010-06-28 Jaroslav Hajek <highegg@gmail.com> 3089 3090 * data.cc (single_type_concat): Optimize all scalars case where 3091 applicable. 3092 (single_type_concat_map, do_single_type_concat_map): New funcs. 3093 * pt-mat.cc (get_concat_class): Handle cell and struct concats. 3094 3095 30962010-06-25 Jaroslav Hajek <highegg@gmail.com> 3097 3098 * DLD-FUNCTIONS/cellfun.cc (Fnum2cell, do_num2cell): Optimize cells 3099 and structs. 3100 31012010-06-25 Jaroslav Hajek <highegg@gmail.com> 3102 3103 * ov-struct.h (octave_scalar_struct::resize, octave_struct::resize): 3104 Don't ignore fill argument. 3105 31062010-06-25 Jaroslav Hajek <highegg@gmail.com> 3107 3108 * oct-map.h (octave_map::octave_map (const dim_vector&, const 3109 octave_fields&)): New internal ctor. 3110 3111 * oct-map.cc (octave_map::assign): Handle no fields case. 3112 31132010-06-25 Jaroslav Hajek <highegg@gmail.com> 3114 3115 * ov-struct.cc (Fcell2struct): Rewrite. 3116 31172010-06-30 Jaroslav Hajek <highegg@gmail.com> 3118 3119 * ov-range.cc (octave_range::save_ascii): Save length rather than 3120 limit when inc is zero. Adjust comment. 3121 (octave_range::save_binary, octave_range::save_hdf5): Ditto. 3122 (octave_range::load_ascii): Assume limit is length when increment is 3123 zero. 3124 (octave_range::load_binary, octave_range::load_hdf5): Ditto. 3125 3126 31272010-06-25 John W. Eaton <jwe@octave.org> 3128 3129 * graphics.cc (reset_default_properties): New static function. 3130 (root_figure::reset_default_properties, 3131 figure::reset_default_properties, axes::reset_default_properties): 3132 Use it to avoid duplicated code. 3133 31342010-06-24 Rik <octave@nomad.inbox5.com> 3135 3136 * octave.cc: Add [FILE] to octave usage string (bug #30258). 3137 31382010-06-24 Jaroslav Hajek <highegg@gmail.com> 3139 3140 * oct-map.h (octave_map, octave_scalar_map): New classes. 3141 * oct-map.cc (octave_map, octave_scalar_map): Implement them. 3142 (Octave_map::Octave_map (const octave_map&)): New ctor. 3143 * ov-struct.h (octave_struct): Use octave_map for storage. 3144 (octave_scalar_struct): New class. 3145 * ov-struct.cc: Update implementations. 3146 * ov-base.h (octave_base_value::old_map_value): New method. 3147 (octave_base_value::map_value): Return octave_map. 3148 (octave_base_value::scalar_map_value): New method. 3149 * ov-base.cc (octave_base_value::old_map_value, 3150 octave_base_value::map_value, octave_base_value::scalar_map_value): 3151 Add default implementations. 3152 * ov-class.h (octave_class::old_map_value): New override. 3153 * ov-class.cc: Use old_map_value for efficiency. 3154 31552010-06-23 David Bateman <dbateman@free.fr> 3156 3157 * graphics.cc (void root_figure::reset_default_properties (void), 3158 void figure::reset_default_properties (void), 3159 void figure::reset_default_properties (void), 3160 Freset): New functions. 3161 * graphics.h.in (void graphics_object:reset_default_properies (void), 3162 virtual void base_graphics_object:reset_default_properies (void)): 3163 New functions. 3164 (void root_figure::reset_default_properties (void), 3165 void figure::reset_default_properties (void), 3166 void figure::reset_default_properties (void)): Declarations. 3167 (std::string color_property::values_as_string (void) const, 3168 Cell color_property::values_as_cell (void) const): New functions. 3169 31702010-06-21 Rik <octave@nomad.inbox5.com> 3171 3172 * DLD-FUNCTIONS/dlmread.cc: Fix spreadsheet style range option. 3173 (bug #30183). 3174 31752010-06-21 David Bateman <dbateman@free.fr> 3176 3177 * graphics.cc (std::string radio_values:values_as_string (void) 3178 const, Cell radio_values:values_as_cell (void) const): New functions. 3179 (void graphics_object::set (const octave_value_list&)): Throw error 3180 with no arguments. 3181 (std::string base_graphics_object::values_as_string (void), 3182 Octave_map base_graphics_object::values_as_struct (void)): New 3183 functions. 3184 (Fset): Allow single handle as an argument and return the radio 3185 values. 3186 * graphics.h.in (virtual bool base_property::is_radio (void) const, 3187 virtual std::string base_property::values_as_string (void) const, 3188 virtual Cell base_property::values_as_cell (void) const): 3189 New function. 3190 (std::string radio_values::values_as_string (void) const, 3191 Cell radio_values::values_as_cell (void) const): Declaration. 3192 (octave_idx_type radio_values::nelem (void) const): New function. 3193 (std::string radio_property::values_as_string (void) const, 3194 Cell radio_property::values_as_cell (void) const, 3195 bool radio_property::is_radio (void) const): New functions. 3196 (bool property::is_radio (void) const, 3197 std::string raproperty::values_as_string (void) const, 3198 Cell property::values_as_cell (void) const): New functions. 3199 (std::string base_graphics_object::values_as_string (void), 3200 Octave_map base_graphics_object::values_as_struct (void)): Declaration. 3201 (std::string graphics_object::values_as_string (void), 3202 Octave_map graphics_object::values_as_struct (void)): New functions. 3203 32042010-06-21 Jaroslav Hajek <highegg@gmail.com> 3205 3206 * data.cc (single_type_concat): Assume matrix arguments start from 3207 index zero. 3208 (do_cat): Make dim a separate argument. Special-case support for dim = 3209 -1 and dim = -2 3210 32112010-06-18 Jaroslav Hajek <highegg@gmail.com> 3212 3213 * pt-mat.cc (tm_row_const::eval_error): Make a static func. 3214 (tm_row_const::do_init_element): Simplify using dim_vector::hvcat. 3215 (tm_const::init): Ditto. 3216 (single_type_concat): Special-case empty results. Skip or use 0x0 for 3217 empty arrays otherwise. 3218 (tree_matrix::rvalue1): Skip empty arrays in the fallback branch. 3219 32202010-06-16 Rik <octave@nomad.inbox5.com> 3221 3222 * DLD-FUNCTIONS/cellfun.cc, DLD-FUNCTIONS/dot.cc, 3223 DLD-FUNCTIONS/gammainc.cc, DLD-FUNCTIONS/lookup.cc, 3224 DLD-FUNCTIONS/lu.cc, DLD-FUNCTIONS/luinc.cc, DLD-FUNCTIONS/onCleanup.cc, 3225 DLD-FUNCTIONS/sparse.cc, DLD-FUNCTIONS/spparms.cc, DLD-FUNCTIONS/svd.cc, 3226 data.cc, dirfns.cc, graphics.cc, mappers.cc, ov-cell.cc, ov-range.cc: 3227 Periodic grammar check of documentation to ensure a common format. 3228 32292010-06-11 David Bateman <dbateman@free.fr> 3230 3231 * DLD-FUNCTIONS/rand.cc : Add "reset" flag to reset the random 3232 generators from the entropy pool. 3233 3234 * genprops.awk : Don't special case the color_property in the 3235 factory default methods. 3236 32372010-06-16 Jaroslav Hajek <highegg@gmail.com> 3238 3239 * data.cc (Fsort): Fix invalid tests. 3240 32412010-06-15 Rik <octave@nomad.inbox5.com> 3242 3243 * pr-output.cc: Second try at removing extra newlines from NDArrays 3244 32452010-06-14 Rik <octave@nomad.inbox5.com> 3246 3247 * pr-output.cc: Remove extra newlines when displaying multi-dimensional 3248 arrays (bug #30029). 3249 32502010-06-14 Jaroslav Hajek <highegg@gmail.com> 3251 3252 * data.cc (Fsort, Fnth_element): Fix behavior when trailing singleton 3253 dim is specified. 3254 32552010-06-12 Ben Abbott <bpabbott@mac.com> 3256 3257 * DLD-FUNCTIONS/gammainc.cc: Fix doc-string typo. 3258 32592010-06-11 David Bateman <dbateman@free.fr> 3260 3261 * DLD-FUNCTIONS/gammainc.cc: Implement complementary incomplete 3262 gamma function. 3263 32642010-06-10 Ben Abbott <bpabbott@mac.com> 3265 3266 * data.cc: Fix test for concatentating empty nd-arrays. 3267 32682010-06-10 Jaroslav Hajek <highegg@gmail.com> 3269 3270 * data.cc (Fvec): New DEFUN. 3271 32722010-06-09 Jaroslav Hajek <highegg@gmail.com> 3273 3274 * data.cc (Freshape): Use octave_idx_type rather than int. 3275 Don't use intermediate Array when sizes are given as separate 3276 arguments. Simplify computing unknown dimension. 3277 32782010-06-09 David Grundberg <individ@acc.umu.se> 3279 3280 * ov-struct.cc (Fisfield): Accept cell array as name argument. 3281 32822010-06-08 Rik <octave@nomad.inbox5.com> 3283 3284 * DLD-FUNCTIONS/bsxfun.cc, DLD-FUNCTIONS/cellfun.cc, 3285 DLD-FUNCTIONS/det.cc, DLD-FUNCTIONS/lookup.cc, DLD-FUNCTIONS/lu.cc, 3286 DLD-FUNCTIONS/rand.cc, DLD-FUNCTIONS/svd.cc, DLD-FUNCTIONS/tril.cc, 3287 data.cc, ov.cc: Improve documentation string. 3288 32892010-06-06 Michael Goffioul <michael.goffioul@gmail.com> 3290 3291 * data.cc (Frem, Fmod): Specify template arguments of binmap 3292 explicitely. 3293 32942010-06-02 Jaroslav Hajek <highegg@gmail.com> 3295 3296 * DLD-FUNCTIONS/strfind.cc (Fqs_replace): Allow overlapped matches. 3297 (Fstrrep): Support "overlaps" option. 3298 (Fstrfind): Ditto. 3299 33002010-05-28 Jaroslav Hajek <highegg@gmail.com> 3301 3302 * ov.h (octave_value::fast_elem_extract, 3303 octave_value::fast_elem_insert): New methods. 3304 * ov-base.cc (octave_base_value::fast_elem_extract, 3305 octave_base_value::fast_elem_insert, 3306 octave_base_value::fast_elem_insert_self): New methods. 3307 * ov-base.h: Declare them. 3308 * ov-base-mat.cc (octave_base_matrix::fast_elem_extract, 3309 octave_base_matrix::fast_elem_insert): New overrides. 3310 * ov-base-mat.h: Declare them. 3311 * ov-base-scalar.cc (octave_base_scalar::fast_elem_extract, 3312 octave_base_scalar::fast_elem_insert_self): New overrides. 3313 * ov-base-scalar.h: Declare them. 3314 (octave_base_scalar::scalar_ref): New method. 3315 * ov-scalar.cc (octave_scalar::fast_elem_insert_self): New override. 3316 * ov-scalar.h: Declare it. 3317 * ov-float.cc (octave_float_scalar::fast_elem_insert_self): New override. 3318 * ov-float.h: Declare it. 3319 * ov-cell.cc (octave_base_matrix<Cell>::fast_elem_extract, 3320 octave_base_matrix<Cell>::fast_elem_insert): New specializations. 3321 * DLD-FUNCTIONS/cellfun.cc (scalar_col_helper, scalar_col_helper_def, 3322 scalar_col_helper_nda, make_col_helper, can_extract): Remove. 3323 (Fcellfun): Use the new fast_elem_insert method. 3324 33252010-05-10 Rik <octave@nomad.inbox5.com> 3326 3327 * DLD-FUNCTIONS/eigs.cc: Improve documentation string. 3328 Use ~ notation instead of dummy variables for unused return arguments. 3329 33302010-05-27 Jaroslav Hajek <highegg@gmail.com> 3331 3332 * ov-base-mat.h (octave_base_matrix::matrix_ref (void) const): New 3333 overload. 3334 33352010-05-26 Jaroslav Hajek <highegg@gmail.com> 3336 3337 * oct-obj.h (octave_value_list::slice): Optionally include tags in 3338 slicing. 3339 * oct-parse.yy (get_feval_args): Simplify. 3340 * pt-idx.cc (make_value_list): Use octave_idx_type instead of int. 3341 33422010-05-25 Jaroslav Hajek <highegg@gmail.com> 3343 3344 * ov.cc (octave_value::length): Simplify. 3345 33462010-05-25 Jaroslav Hajek <highegg@gmail.com> 3347 3348 * ov-base-mat.h (octave_base_matrix::ndims): New override. 3349 * ov-base-scalar.h (octave_base_scalar::numel, 3350 octave_base_scalar::ndims): New overrides. 3351 33522010-05-25 Jaroslav Hajek <highegg@gmail.com> 3353 3354 * ov-base.cc (octave_base_value::ndims): Remove fallback 3355 implementation (makes no sense). 3356 * ov-base.h (octave_base_value::ndims): Use a simplistic fallback 3357 here. 3358 33592010-05-25 Jaroslav Hajek <highegg@gmail.com> 3360 3361 * ov-base.h (octave_base_value::rows, octave_base_value::columns): 3362 Use const where appropriate, don't test for impossible condition. 3363 33642010-05-24 Jaroslav Hajek <highegg@gmail.com> 3365 3366 * Cell.h (Cell::index, Cell::assign, Cell::delete_elements): 3367 Make signatures consistent with inherited overloads. Import inherited 3368 overloads to class's scope. 3369 * oct-map.cc (Octave_map::maybe_delete_elements): Simplify. 3370 33712010-05-20 John W. Eaton <jwe@octave.org> 3372 3373 * utils.cc (Ffile_in_path, Ffile_in_loadpath): If no file is 3374 found, return empty character string instead of empty matrix. 3375 33762010-05-20 Jaroslav Hajek <highegg@gmail.com> 3377 3378 * DLD-FUNCTIONS/onCleanup.cc (octave_oncleanup::load_ascii, 3379 octave_oncleanup::load_binary, octave_oncleanup::load_hdf5, 3380 octave_oncleanup::save_ascii, octave_oncleanup::save_binary, 3381 octave_oncleanup::save_hdf5): Comment out unused params. 3382 33832010-05-18 Jaroslav Hajek <highegg@gmail.com> 3384 3385 * defun-int.h (octave_auto_shlib): Make members public. 3386 * DLD-FUNCTIONS/onCleanup.cc: New source. 3387 * DLD-FUNCTIONS/module-files: Add it here. 3388 33892010-05-18 Jaroslav Hajek <highegg@gmail.com> 3390 3391 * variables.cc (set_internal_variable (int&, ..., const char **)): 3392 Drop nchoices argument. Instead determine nchoices by trailing NULL. 3393 * variables.h (SET_INTERNAL_VARIABLE_CHOICES): Update. 3394 * DLD-FUNCTIONS/svd.cc (Fsvd_driver): Update. 3395 33962010-05-17 Jaroslav Hajek <highegg@gmail.com> 3397 3398 * variables.cc (set_internal_variable (int&, ..., const char **, int)): 3399 New overload. 3400 * variables.h: Declare it. 3401 (SET_INTERNAL_VARIABLE_CHOICES): New macro. 3402 * DLD-FUNCTIONS/svd.cc (Fsvd_driver): Use it here. 3403 34042010-05-17 Jaroslav Hajek <highegg@gmail.com> 3405 3406 * ov-usr-fcn.h (octave_user_function::curr_unwind_protect_frame): New 3407 field. 3408 (octave_user_function::local_protect): New template method. 3409 * ov-usr-fcn.cc (octave_user_function::octave_user_function): 3410 Initialize it here. 3411 (octave_user_function::do_multi_index_op): Set and restore it here. 3412 * variables.cc (wants_local_change, try_local_protect): New helper 3413 funcs. 3414 (set_internal_variable): Call them in all overloads. 3415 34162010-05-14 Jaroslav Hajek <highegg@gmail.com> 3417 3418 * symtab.cc (symtab::do_mark_global, symtab::do_mark_hidden): Force 3419 non-existing symbol to be created. 3420 34212010-05-13 Jaroslav Hajek <highegg@gmail.com> 3422 3423 * xdiv.cc (solve_singularity_warning): Use ID for the warning. 3424 34252010-05-13 Jaroslav Hajek <highegg@gmail.com> 3426 3427 * DLD-FUNCTIONS/sqrtm.cc (sqrtm_utri_inplace): Use an ID for the 3428 warning. 3429 34302010-05-13 Jaroslav Hajek <highegg@gmail.com> 3431 3432 * load-save.cc (install_loaded_variable): Pre-extract symbol record 3433 reference to do all operations. 3434 34352010-05-11 David Bateman <dbateman@free.fr> 3436 3437 * ls-mat5.cc (save_mat5_element_length): Correct element length for 3438 sparse elements with NZMAX=1 or NC=0. 3439 (save_mat5_binary_element): Save the NZMAX elements of the RIDX 3440 sparse index. 3441 34422010-05-11 Jaroslav Hajek <highegg@gmail.com> 3443 3444 * ov-lazy-idx.cc (octave_lazy_index::save_binary): Fix arguments to 3445 save_binary_data. 3446 34472010-05-07 Jaroslav Hajek <highegg@gmail.com> 3448 3449 * DLD-FUNCTIONS/sqrtm.cc (do_sqrtm): Mark the result as triangular 3450 where applicable. 3451 34522010-05-10 Rik <octave@nomad.inbox5.com> 3453 3454 * DLD-FUNCTIONS/qr.cc: Split qrdelete test into high precision test 3455 when QRUPDATE is present and low precision when it is not. 3456 34572010-05-10 Jaroslav Hajek <highegg@gmail.com> 3458 3459 * DLD-FUNCTIONS/schur.cc (Fschur): Mark triangular matrices on output. 3460 34612010-05-10 Jaroslav Hajek <highegg@gmail.com> 3462 3463 * ov-range.cc (octave_range::index_vector): Optimize order of 3464 conditions. 3465 34662010-05-08 Jaroslav Hajek <highegg@gmail.com> 3467 3468 * ov.cc (octave_value::do_non_const_unary_op): Always return *this as 3469 octave_value&. Remove unused overload. 3470 * oct-lvalue.cc (octave_lvalue::do_unary_op): Simplify. 3471 * pt-unop.cc (tree_prefix_expression::rvalue1, 3472 tree_postfix_expression::rvalue1): Remove dummy rvalue1 calls. 3473 34742010-05-07 Michael Goffioul <michael.goffioul@gmail.com> 3475 3476 * ov-base.h (Vsparse_auto_mutate): Add OCTINTERP_API tag. 3477 34782010-05-07 John W. Eaton <jwe@octave.org> 3479 3480 * octave.cc (maximum_braindamage): Set value of internal 3481 variable Vallow_noninteger_range_as_index to true instead of 3482 setting Octave:allow-noninteger-ranges-as-indices warning state. 3483 * ov-range.cc (Fallow_noninteger_range_as_index): New function. 3484 (Vallow_noninteger_range_as_index): New variable. 3485 (octave_range::index_vector): Only allow non-integer range as 3486 index if Vallow_noninteger_range_as_index is true. 3487 (octave_range::bool_array_value): Move definition here from ov-range.h. 3488 * ov-range.h (Vallow_noninteger_range_as_index): Provide decl. 3489 * utils.cc (reset_warning_state): Delete. 3490 (Fisindex): Temporarily set Vallow_noninteger_range_as_index 3491 instead of changing warning state for 3492 Octave:allow-noninteger-ranges-as-indices to "error". 3493 34942010-05-06 John W. Eaton <jwe@octave.org> 3495 3496 * xgl2ps.c: Don't compile gl2ps.c unless we have OpenGL. 3497 From Petr Mikulik <mikulik>. 3498 34992010-05-06 John W. Eaton <jwe@octave.org> 3500 3501 * ov-range.cc (octave_range::index_vector): 3502 Improve warning/error message. 3503 35042010-05-06 Jaroslav Hajek <highegg@gmail.com> 3505 3506 * DLD-FUNCTIONS/sqrtm.cc (sqrtm_utri_inplace, do_sqrtm): New helper 3507 functions. 3508 (Fsqrtm): Rewrite. 3509 35102010-05-06 Jaroslav Hajek <highegg@gmail.com> 3511 3512 * DLD-FUNCTIONS/schur.cc (Fschur): Recognize "complex" option for 3513 Matlab compatibility. Simplify argument handling and improve error 3514 messages. 3515 35162010-05-05 John W. Eaton <jwe@octave.org> 3517 3518 * utils.cc (reset_warning_state): New function. 3519 (Fisindex): Temporarily set warning state for 3520 Octave:allow-noninteger-ranges-as-indices to "error". 3521 * error.cc (set_warning_state): New function. 3522 (initialize_default_warning_state): Set default warning state 3523 for Octave:allow-noninteger-ranges-as-indices to "error". 3524 * error.h (set_warning_state): Provide decl. 3525 * octave.cc (maximum_braindamage): Set warning state for 3526 Octave:allow-noninteger-ranges-as-indices to "on". 3527 * ov-range.cc (octave_range::index_vector): Warn if range 3528 contains non-integer values. 3529 35302010-05-03 Jaroslav Hajek <highegg@gmail.com> 3531 3532 * DLD-FUNCTIONS/svd.cc (driver): New static var. 3533 (Fsvd): Use it to select a driver. 3534 (Fsvd_driver): New DEFUN. 3535 35362010-05-02 Rik <octave@nomad.inbox5.com> 3537 3538 * ov-cell.cc: Wrap documentation line to prevent overfull hbox 3539 LaTex warning 3540 35412010-05-01 Ben Abbott <bpabbott@mac.com> 3542 3543 * graphics.cc, graphics.h.in: Remove line object properties ldata, 3544 udata, xldata, xudata. 3545 35462010-04-30 Shai Ayal <shaiay@users.sourceforge.net> 3547 3548 * DLD-FUNCTIONS/fltk_backend.cc (plot_window::set_axes_currentpoint): 3549 check for valid object before manipulating it 3550 35512010-04-27 John W. Eaton <jwe@octave.org> 3552 3553 * graphics.h.in (string_array_property::string_array_property): 3554 Index string_vector with [], not (). 3555 (string_array_property::string_value): Likewise. 3556 (string_array_property::do_set): Likewise. 3557 Avoid indexing past last element of string_vector object. 3558 Fixes bug #29695. 3559 35602010-04-27 Jaroslav Hajek <highegg@gmail.com> 3561 3562 * ov-cs-list.cc (octave_cs_list::subsref): New methods. Just gripe. 3563 * ov-cs-list.h: Declare them. 3564 35652010-04-27 John W. Eaton <jwe@octave.org> 3566 3567 * ov-usr-fcn.cc (octave_user_script::do_multi_index_op): 3568 Correct spelling of max_recursion_depth in error message. 3569 (octave_usr_fcn::do_multi_index_op): Ditto. 3570 * pt-eval.h, pt-eval.cc (Vmax_recursion_depth): Move definition 3571 here from ov-usr-fcn.cc. Now extern. 3572 (Fmax_recursion_depth): Move definition here from ov-usr-fcn.cc. 3573 * oct-parse.yy (source_file): Limit recursive calls on a 3574 per-file basis. 3575 Addresses bug #29491. 3576 35772010-04-25 David Bateman <dbateman@free.fr> 3578 3579 * oct-parse.yy (octave_function * load_fcn_from_file 3580 (const std::string&, const std::string&, const std::string&) 3581 (const std::string&, bool)): When loading a mex-file attempt 3582 to load the m-file first to get the help string. 3583 35842010-04-24 Ben Abbott <bpabbott@mac.com> 3585 3586 * graphics.h.in: Have figure color property support a radio value, 3587 'none'. 3588 35892010-04-24 David Bateman <dbateman@free.fr> 3590 3591 * graphics.cc (void axes::properties::set_defaults 3592 (base_graphics_object&, const std::string&)): Make the default 3593 axes color "none". 3594 35952010-04-24 Shai Ayal <shaiay@users.sourceforge.net> 3596 3597 * Makefile.am: change GRAPHICS_CPPFLAGS to GRAPHICS_CFLAGS since 3598 the former does not exist and the latter serves the same purpose 3599 36002010-04-23 Rik <octave@nomad.inbox5.com> 3601 3602 * Makefile.am: Clarify compilation note about defaults.h 3603 36042010-04-23 Rik <octave@nomad.inbox5.com> 3605 3606 * symtab.h: Clear global variables when 'clear -all' called 3607 36082010-04-23 John W. Eaton <jwe@octave.org> 3609 3610 * DLD-FUNCTIONS/fltk_backend.cc (OpenGL_fltk::OpenGL_fltk): 3611 Explicitly initizlize all data members in the order they are declared. 3612 36132010-04-23 John W. Eaton <jwe@octave.org> 3614 3615 * txt-eng-ft.cc (ft_render::visit): Declare loop counter size_t, 3616 not int. 3617 3618 * graphics.h.in (graphics_xform::untransform): Likewise. 3619 * graphics.cc (text::properties::update_text_extent): Likewise. 3620 * DLD-FUNCTIONS/fltk_backend.cc (plot_window::set_axes_currentpoint): 3621 Avoid GCC shadow variable warning. 3622 3623 * DLD-FUNCTIONS (plot_window::plot_window): Explicitly 3624 initialize all data members in the order they are declared. 3625 36262010-04-23 John W. Eaton <jwe@octave.org> 3627 3628 * DLD-FUNCTIONS/gcd.cc (Fgcd): Use two-argument dim_vector constructor. 3629 3630 * ov-str-mat.cc (octave_char_matrix_str::do_index_op_internal): 3631 Explicitly create idx_vec with column orientation. 3632 3633 * oct-obj.cc (octave_value_list::octave_value_list): 3634 Explicitly resize data to be row vector. 3635 36362010-04-23 Rik <octave@nomad.inbox5.com> 3637 3638 * DLD-FUNCTIONS/regexp.cc.: Eliminate compile warning. 3639 warning: suggest explicit braces to avoid ambiguous 'else'. 3640 36412010-04-23 Jaroslav Hajek <highegg@gmail.com> 3642 3643 * ov-base-scalar.h (octave_base_scalar::reshape, 3644 octave_base_scalar::permute): Remove implementations. 3645 * ov-base-scalar.cc (octave_base_scalar::reshape, 3646 octave_base_scalar::permute): Provide correct implementations here. 3647 36482010-04-23 Jaroslav Hajek <highegg@gmail.com> 3649 3650 * ov-bool.h (octave_bool::empty_clone): Correctly return an empty 3651 matrix. 3652 * ov-float.h (octave_float::empty_clone): Ditto. 3653 * ov-base-mat.h (octave_base_matrix::clone, 3654 octave_base_matrix::empty_clone): Remove. 3655 * ov-base-scalar.h (octave_base_scalar::clone, 3656 octave_base_scalar::empty_clone): Remove. 3657 * ov-base-sparse.h (octave_base_sparse::clone, 3658 octave_base_sparse::empty_clone): Remove. 3659 * ov-base.h (octave_base_value::empty_clone): Remove implementation. 3660 * ov-base.cc (octave_base_value::empty_clone): Implement here. 3661 Fall back to resize() for empty_clone(). 3662 * ov.cc (octave_value::assign): Correct behavior in the indexed 3663 OP= case. Use better error messages. Always return non-const 3664 reference, like any assignment. 3665 * ov.h: Update decls. 3666 * oct-lvalue.cc (octave_lvalue::assign): Simplify. 3667 36682010-04-22 Rik <octave@nomad.inbox5.com> 3669 3670 * DLD-FUNCTIONS/hess.cc.: return correct Hessenberg matrix when 3671 called with only one output argument. 3672 36732010-04-22 Jaroslav Hajek <highegg@gmail.com> 3674 3675 * data.cc (do_hypot): New helper function. Move bulk code from Fhypot 3676 here. 3677 (Fhypot): Account for >2 args by folding do_hypot several times. 3678 36792010-04-20 Jaroslav Hajek <highegg@gmail.com> 3680 3681 * pt-mat.cc (single_type_concat): New overloads. Make TYPE an explicit 3682 template parameter. Try to forward some cases to Array<T>::cat and 3683 Sparse<T>::cat. 3684 (do_single_type_concat, do_single_type_concat_no_mutate): Don't 3685 allocate the array here, let single_type_concat do it. 3686 36872010-04-19 Jaroslav Hajek <highegg@gmail.com> 3688 3689 * data.cc (single_type_concat, do_single_type_concat): Rewrite using 3690 new liboctave facilities. 3691 (do_cat): Don't compute result dims if the case can be forwarded to 3692 liboctave. 3693 36942010-04-13 David Bateman <dbateman@free.fr> 3695 3696 * graphics.cc (void text::properties::update_text_extent (void)): 3697 Don't call text_renderer.set_font if HAVE_FONTCONFIG is not set. 3698 36992010-04-13 David Bateman <dbateman@free.fr> 3700 3701 * DLD-FUNCTIONS/regexp.cc (octregexp_list): Handle repeated matches 3702 in the list of matches returned by pcre. 3703 37042010-04-13 Shai Ayal <shaiay@users.sourceforge.net> 3705 3706 * DLD-FUNCTIONS/fltk_backend.cc (plot_window::set_currentpoint, 3707 (plot_window::set_axes_currentpoint, plot_window::key2shift, 3708 (plot_window::key2ascii, plot_window::modifier2cell): New helper 3709 functions for keypress and mousebutton callbacks. 3710 (plot_window::handle): implement keypress and mousebutton callbacks. 3711 3712 * graphics.h.in (callback_property::is_defined): New conveniance 3713 function. Rename figure.current_point to figure.currentpoint. 3714 37152010-04-13 Jaroslav Hajek <highegg@gmail.com> 3716 3717 * DLD-FUNCTIONS/sparse.cc (Fspalloc): New DEFUN. 3718 * ov-base.cc (octave_base_value::nzmax): Return numel by default. 3719 37202010-04-13 Jaroslav Hajek <highegg@gmail.com> 3721 3722 * ov-base-sparse.cc (octave_base_sparse::assign): Rewrite. 3723 * ov-cx-sparse.cc (octave_sparse_complex_matrix::assign 3724 (const octave_value_list& idx, const SparseMatrix& rhs)): Remove. 3725 * ov-cx-sparse.h: Remove decl. 3726 37272010-04-10 Ben Abbott <bpabbott@mac.com> 3728 3729 * graphics.h.in: Fix nextplot property values. Add "new" to 3730 list for axes nextplot values. Change "replace_children" to 3731 "replacechildren" for both axes and figures. 3732 37332010-04-09 David Bateman <dbateman@free.fr> 3734 3735 * DLD-FUNCTIONS/regexp.cc (octregexp_list): Properly ignore 3736 zero-length matches in named tokens. 3737 37382010-04-09 John W. Eaton <jwe@octave.org> 3739 3740 * ov-ch-mat.h (octave_char_matrix::mex_get_data): New function. 3741 Addresses bug #29475. 3742 37432010-04-09 Judd Storrs <jstorrs@gmail.com> 3744 3745 * utils.cc (isvarname): Keywords are not valid variable names. 3746 37472010-04-08 Jaroslav Hajek <highegg@gmail.com> 3748 3749 * help.cc (make_name_list): Don't insert global and top-level scope 3750 variables. Always insert current scope. 3751 37522010-04-08 Jaroslav Hajek <highegg@gmail.com> 3753 3754 * data.cc (SINGLE_TYPE_CONCAT, DO_SINGLE_TYPE_CONCAT): Replace by 3755 templates. 3756 (single_type_concat, do_single_type_concat): New static temvplate 3757 funcs. Correctly skip 0x0 matrices. 3758 (Fcat): Call them here. Add tests. 3759 37602010-04-07 Jaroslav Hajek <highegg@gmail.com> 3761 3762 * oct-parse.yy (feval): Use do_multi_index_op on handles. 3763 (get_feval_args): Use array slicing functions rather than loops. 3764 37652010-04-06 Jaroslav Hajek <highegg@gmail.com> 3766 3767 * ov-base-sparse.cc (octave_base_sparse::delete_elements): Rewrite. 3768 37692010-04-02 Judd Storrs <jstorrs@gmail.com> 3770 3771 * octave.cc (intern_argv): Truncate argv when script files are 3772 run without command line parameters. Resolves bug #29423. 3773 37742010-03-31 Jaroslav Hajek <highegg@gmail.com> 3775 3776 * DLD-FUNCTIONS/sparse.cc (Fsparse): Rewrite. 3777 37782010-03-28 David Grundberg <davidg@cs.umu.se> 3779 3780 * DLD-FUNCTIONS/convhulln.cc [HAVE_QHULL]: Neither include 3781 qhull/qhull_a.h nor run tests if unless we HAVE_QHULL. 3782 37832010-03-26 Jaroslav Hajek <highegg@gmail.com> 3784 3785 * variables.cc (maybe_missing_function_hook): Temporarily clear before 3786 executing the hook to avoid recursive calls. 3787 37882010-03-25 John W. Eaton <jwe@octave.org> 3789 3790 * gl2ps-renderer.cc (glps_renderer::draw): Tag call to fclose 3791 with gnulib::. 3792 37932010-03-25 John W. Eaton <jwe@octave.org> 3794 3795 * oct-parse.yy, oct-fstrm.cc, mex.cc, input.cc, 3796 c-file-ptr-stream.cc: Revert changes from 2010-03-24. 3797 37982010-03-25 Jaroslav Hajek <highegg@gmail.com> 3799 3800 * kron.cc (Fkron): Completely rewrite. 3801 38022010-03-24 John W. Eaton <jwe@octave.org> 3803 3804 * version.h.in (OCTAVE_BUGS_STATEMENT): Point to 3805 http://www.octave.org/bugs.html, not the mailing list. 3806 38072010-03-24 John W. Eaton <jwe@octave.org> 3808 3809 * DLD-FUNCTIONS/config-module.awk: Emit additions to EXTRA_DIST. 3810 38112010-03-24 John W. Eaton <jwe@octave.org> 3812 3813 * Makefile.am ($(srcdir)/DLD-FUNCTIONS/module.mk): 3814 Remove doubled // from file name in rule. 3815 38162010-03-24 David Grundberg <davidg@cs.umu.se> 3817 3818 * oct-parse.yy: Include gnulib stdlib.h/stdio.h instead of C++ 3819 headers. 3820 * oct-fstrm.cc: Include gnulib stdlib.h/string.h instead of C++ 3821 headers. 3822 * mex.cc: Include gnulib stdlib.h instead of C++ headers. 3823 * input.cc: Include gnulib stdio.h instead of C++ headers. 3824 * c-file-ptr-stream.cc: Include gnulib stdio.h. 3825 38262010-03-24 John W. Eaton <jwe@octave.org> 3827 3828 * load-path.cc (load_path::add_to_fcn_map): Style fixes. 3829 38302010-03-24 Jaroslav Hajek <highegg@gmail.com> 3831 3832 * variables.cc (maybe_missing_function_hook): Don't call hook if 3833 errors are being handled. 3834 38352010-03-24 Jaroslav Hajek <highegg@gmail.com> 3836 3837 * variables.cc (Fmissing_function_hook): New pseudo-variable. 3838 (Vmissing_function_hook): New static var. 3839 (maybe_missing_function_hook): New function. 3840 * variables.h: Declare it. 3841 * pt-id.cc (tree_identifier::eval_undefined_error): Call it here. 3842 * oct-parse.yy (feval (const std::string&, ...)): Also here. 3843 38442010-03-23 Jaroslav Hajek <highegg@gmail.com> 3845 3846 * data.cc (Frem, Fmod): New DEFUNs. 3847 (Ffmod): Remove. Make an alias of Frem. 3848 38492010-03-23 Jaroslav Hajek <highegg@gmail.com> 3850 3851 * data.cc (map_d_m, map_m_d, map_m_m, map_f_fm, map_fm_f, map_fm_fm, 3852 map_d_s, map_s_d, map_s_s): Remove. 3853 (Fatan2, Fhypot, Ffmod): Rewrite using binmap. 3854 38552010-03-21 Jaroslav Hajek <highegg@gmail.com> 3856 3857 * DLD-FUNCTIONS/cellfun.cc (Fcellfun): Fix the parsing of string 3858 function arguments. 3859 38602010-03-20 John W. Eaton <jwe@octave.org> 3861 3862 * lex.ll: Don't undefine GNULIB_NAMESPACE. Define fprintf, 3863 fwrite, malloc, and realloc and GNULIB_NAMESPACE::fprintf, ... 3864 * oct-parse.yy: Likewise. Always include cstdlib. 3865 38662010-03-16 John W. Eaton <jwe@octave.org> 3867 3868 * ls-oct-ascii.cc (save_ascii_data): Insert extra newline after 3869 data is written to file. From Brett Stewart <btstewart@wisc.edu>. 3870 38712010-03-16 Jaroslav Hajek <highegg@gmail.com> 3872 3873 * ov-base.h (unary_mapper_t::umap_cbrt): New enum member. 3874 * ov.h (octave_value::cbrt): New forwarder method. 3875 * ov-scalar.cc (octave_scalar::map): Handle cbrt. 3876 * ov-float.cc (octave_float_scalar::map): Ditto. 3877 * ov-re-mat.cc (octave_matrix::map): Ditto. 3878 * ov-flt-re-mat.cc (octave_float_matrix::map): Ditto. 3879 * ov-re-sparse.cc (octave_sparse_matrix::map): Ditto. 3880 38812010-03-15 John W. Eaton <jwe@octave.org> 3882 3883 * oct-parse.yy, lex.ll: Undefine GNULIB_NAMESPACE immediately 3884 after including <config.h>. 3885 3886 * toplev.cc (wait_for_input): Tag call to select with gnulib::. 3887 3888 * sighandlers.h (BLOCK_SIGNAL): Tag calls to sigemptyset, 3889 sigaddset, and sigprocmask with gnulib::. 3890 (UNBLOCK_CHILD): Tag call to sigprocmask with gnulib::. 3891 * sighandlers.cc (octave_set_signal_handler): Tag calls to 3892 sigemptyset with gnulib::. 3893 (octave_set_signal_handler): Tag call to sigaction with gnulib::. 3894 3895 * oct-procbuf.cc (octave_procbuf::open): Tag calls to close, dup2, 3896 and fclose with gnulib::. 3897 (octave_procbuf::close): Tag call to fclose with gnulib::. 3898 3899 * oct-hist.cc (unlink_cleanup): Tag call to unlink with gnulib::. 3900 3901 * oct-fstrm.cc (octave_fstream::octave_fstream): Tag call to 3902 strerror with gnulib::. 3903 3904 * mex.cc (mex::malloc_unmarked, mex::realloc, mxArray::malloc, 3905 mxMalloc, mxRealloc): Tag call to malloc with gnulib::. 3906 3907 * input.cc (gnu_readline): Tag call to fputs with gnulib::. 3908 3909 * file-io.cc (cleanup_tmp_files): Tag call to unlink with gnulib::. 3910 (do_stream_open, Ftmpfile, Fmkstemp): Tag call to strerror with 3911 gnulib::. 3912 3913 * dirfns.cc (octave_change_to_directory): Tag call to strerror 3914 with gnulib::. 3915 3916 * c-file-ptr-stream.cc (c_file_ptr_buf::overflow): Tag calls to 3917 fputc with gnulib::. 3918 (c_file_ptr_buf::xsputn): Tag call to fwrite with gnulib::. 3919 (c_file_ptr_buf::file_close): Move here from 3920 c-file-ptr-stream.h. Tag call to fclose with gnulib::. 3921 39222010-03-12 Ben Abbott <bpabbott@mac.com> 3923 3924 * /DLD-FUNCTIONS/chol.cc: Increase tolerance for single precision test. 3925 39262010-03-09 Jaroslav Hajek <highegg@gmail.com> 3927 3928 * DLD-FUNCTIONS/lookup.cc (Flookup): Fix deprecated array constructor. 3929 39302010-03-09 Jaroslav Hajek <highegg@gmail.com> 3931 3932 * ov-intx.h 3933 (OCTAVE_INT_NDARRAY_T::convert_gripe): Remove method. 3934 (OCTAVE_INT_NDARRAY_T): Remove all uses. 3935 (OCTAVE_INT_T::convert_gripe): Remove method. 3936 (OCTAVE_INT_T): Remove all uses. 3937 * ov.cc (convert_to_int_array, convert_to_octave_idx_type_array): 3938 Remove int conversion warnings. 3939 * data.cc (NATIVE_REDUCTION_1): Ditto. 3940 3941 * OPERATORS/op-intx.h: Remove integer warning stubs. 3942 * OPERATORS/opt-int-conv.cc: Ditto. 3943 3944 * gripes.cc (gripe_truncated_conversion, 3945 gripe_binop_integer_math_truncated, 3946 gripe_native_integer_math_truncated, 3947 gripe_unop_integer_math_truncated, gripe_non_integer_conversion, 3948 gripe_nan_conversion): Remove. 3949 * gripes.h: Remove decls. 3950 * error.cc (initialize_default_warning_state): Don't initialize 3951 removed warnings. 3952 39532010-03-07 Michael Goffioul <michael.goffioul@gmail.com> 3954 3955 * gl-render.cc (draw_figure): disable depth test on the 3rd pass. 3956 (draw_text): use get_data_position to get text position. 3957 * graphics.h.in (graphics_xform): New zlim field. 3958 (graphics_xform::untransform(double,double,bool)): New method. 3959 (axes::properties::get_transform): Provide zlim data to graphics_xform 3960 constructor. 3961 (text::properties::string, text::properties::units, 3962 text::properties::rotation, text::properties::fontname, 3963 text::properties::fontangle, text::properties::fontsize, 3964 text::properties::fontweight, text::properties::interpreter): Add 'u' 3965 modified. 3966 (text::properties::extent): New property. 3967 (text::properties::get_data_position): New method. 3968 (text::properties::update_position): Use it. 3969 (text::properties::update_text_extent, 3970 text::properties::update_string, text::properties::update_rotation, 3971 text::properties::update_fontname, text::properties::update_fontsize, 3972 text::properties::update_fontangle, 3973 text::properties::update_fontweight, 3974 text::properties::update_interpreter, text::properties::update_units): 3975 New updaters. 3976 * graphics.cc (convert_position): Support single point. 3977 (convert_text_position): New helper function. 3978 (text::properties::get_data_position, text::properties::get_extent, 3979 text::properties::update_text_extent, text::properties::update_units): 3980 New methods. 3981 * txt-eng-ft.h (ft_render::get_extent, ft_render::rotation_to_mode): 3982 New methods. 3983 * txt-eng-ft.cc (ft_render::get_extent, ft_render::rotation_to_mode): 3984 Ditto. 3985 39862010-03-05 Jaroslav Hajek <highegg@gmail.com> 3987 3988 * data.cc (do_accumdim_sum): New helper function. 3989 (F__accumdim_sum__): New DEFUN. 3990 39912010-03-04 Jaroslav Hajek <highegg@gmail.com> 3992 3993 * ov-base.h (unary_mapper_t::umap_erfcx): New enum member. 3994 * ov.h (octave_value::erfcx): New forwarder method. 3995 * ov-scalar.cc (octave_scalar::map): Handle erfcx. 3996 * ov-float.cc (octave_float_scalar::map): Ditto. 3997 * ov-re-mat.cc (octave_matrix::map): Ditto. 3998 * ov-flt-re-mat.cc (octave_float_matrix::map): Ditto. 3999 40002010-03-03 John W. Eaton <jwe@octave.org> 4001 4002 * DLD-FUNCTIONS/__magick_read__.cc (F__magick_read__): 4003 Call Magick::InitializeMagick. 4004 40052010-03-02 Jaroslav Hajek <highegg@gmail.com> 4006 4007 * DLD-FUNCTIONS/__convn__.cc: Remove. 4008 * DLD-FUNCTIONS/module-files: Update. 4009 40102010-03-02 Jaroslav Hajek <highegg@gmail.com> 4011 4012 * DLD-FUNCTIONS/conv.cc (Fconv2): Rewrite using convn from liboctave. 4013 (Fconvn): New DEFUN. 4014 40152010-03-01 John W. Eaton <jwe@octave.org> 4016 4017 * (str2double1): Pass argument as const reference and make 4018 explicit copy instead of passing by value. 4019 40202010-03-01 John W. Eaton <jwe@octave.org> 4021 4022 * DLD-FUNCTIONS/str2double.cc (set_component): Use autoconf 4023 macros instead of checking predefined compiler macros. 4024 (str2double1): Pass val to set_component, not c. 4025 40262010-03-01 Jaroslav Hajek <highegg@gmail.com> 4027 4028 * DLD-FUNCTIONS/str2double.cc (set_component): New helper func. 4029 (str2double1): Use it here. 4030 40312010-03-01 Jaroslav Hajek <highegg@gmail.com> 4032 4033 * DLD-FUNCTIONS/str2double.cc (str2double1): Use ISO-conformant code 4034 for setting the real and imaginary part. 4035 40362010-02-28 David Bateman <dbateman@free.fr> 4037 4038 * DLD-FUNCTIONS/urlwrite.cc (curl_handle::init): Don't set 4039 CURLOPT_USERPWD if userpwd is empty. 4040 40412010-02-28 John W. Eaton <jwe@octave.org> 4042 4043 * Makefile.am ($(srcdir)/DLD-FUNCTIONS/module.mk): New target. 4044 4045 * DLD-FUNCTIONS/config-module.sh: Accept top_srcdir argument. 4046 Work from build directory too, not just source tree. 4047 40482010-02-28 Jaroslav Hajek <highegg@gmail.com> 4049 4050 * ov-typeinfo.h (octave_value_typeinfo::octave_value_typeinfo): 4051 Add missing initializers. 4052 40532010-02-28 John W. Eaton <jwe@octave.org> 4054 4055 * DLD-FUNCTIONS/conv2.cc (conv2 (const MArray<T>&, const MArray<T>&, 4056 Shape)): Args are now const. Move invariant expressions outside 4057 of loops. Use pointers instead of Array class indexing methods. 4058 (conv2 (const MArray<T>&, const MArray<T>&, const MArray<T>&, Shape)): 4059 Ditto. 4060 40612010-02-27 Jaroslav Hajek <highegg@gmail.com> 4062 4063 * ov-base-mat.cc (do_index_op): Use checkelem for scalar indices. 4064 Simplify. 4065 40662010-02-26 Jaroslav Hajek <highegg@gmail.com> 4067 4068 * xpow.cc: Update. 4069 * ov-base-diag.cc: Update. 4070 40712010-02-25 Jaroslav Hajek <highegg@gmail.com> 4072 4073 * DLD-FUNCTIONS/str2double.cc (single_number): New helper func. 4074 (extract_number): Call it instead of >> to get Inf's and NaN's 4075 correctly. 4076 40772010-02-25 Jaroslav Hajek <highegg@gmail.com> 4078 4079 * DLD-FUNCTIONS/str2double.cc: New source. 4080 40812010-02-19 John W. Eaton <jwe@octave.org> 4082 4083 * DLD-FUNCTIONS/qr.cc: Increase tolerance for test. 4084 40852010-02-24 Jaroslav Hajek <highegg@gmail.com> 4086 4087 * TEMPLATE-INST/Array-tc.cc: Remove Array2 instantiation. 4088 * DLD-FUNCTIONS/besselj.cc: Use Array instead of Array2. 4089 * DLD-FUNCTIONS/tril.cc: Ditto. 4090 * data.cc: Ditto. 4091 * ov-typeinfo.cc: Ditto. 4092 * ov-typeinfo.h: Ditto. 4093 * pr-output.cc: Ditto. 4094 40952010-02-23 Jaroslav Hajek <highegg@gmail.com> 4096 4097 * ov-bool-mat.h (octave_bool_matrix::octave_bool_matrix (const 4098 Array<bool>&)): New ctor. 4099 * ov-ch-mat.h (octave_char_matrix::octave_char_matrix (const 4100 Array<char>&)): New ctor. 4101 * ov-str-mat.h (octave_char_matrix_str::octave_char_matrix_str (const 4102 Array<char>&)): New ctor. 4103 (octave_char_matrix_sq_str::octave_char_matrix_sq_str (const 4104 Array<char>&)): New ctor. 4105 41062010-02-23 Jaroslav Hajek <highegg@gmail.com> 4107 4108 * Cell.cc: Reflect Array API changes. 4109 * DLD-FUNCTIONS/__convn__.cc: Ditto. 4110 * DLD-FUNCTIONS/__glpk__.cc: Ditto. 4111 * DLD-FUNCTIONS/__magick_read__.cc: Ditto. 4112 * DLD-FUNCTIONS/bsxfun.cc: Ditto. 4113 * DLD-FUNCTIONS/cellfun.cc: Ditto. 4114 * DLD-FUNCTIONS/conv2.cc: Ditto. 4115 * DLD-FUNCTIONS/dlmread.cc: Ditto. 4116 * DLD-FUNCTIONS/filter.cc: Ditto. 4117 * DLD-FUNCTIONS/kron.cc: Ditto. 4118 * DLD-FUNCTIONS/qz.cc: Ditto. 4119 * DLD-FUNCTIONS/regexp.cc: Ditto. 4120 * DLD-FUNCTIONS/sub2ind.cc: Ditto. 4121 * data.cc: Ditto. 4122 * file-io.cc: Ditto. 4123 * gl-render.cc: Ditto. 4124 * ls-mat5.cc: Ditto. 4125 * oct-map.cc: Ditto. 4126 * oct-obj.h: Ditto. 4127 * oct-parse.yy: Ditto. 4128 * oct-stream.cc: Ditto. 4129 * ov-base-mat.cc: Ditto. 4130 * ov-base-sparse.cc: Ditto. 4131 * ov-perm.cc: Ditto. 4132 * ov-struct.cc: Ditto. 4133 * ov-typeinfo.cc: Ditto. 4134 * ov-typeinfo.h: Ditto. 4135 * ov.cc: Ditto. 4136 * pr-output.cc: Ditto. 4137 * pt-mat.cc: Ditto. 4138 * strfns.cc: Ditto. 4139 * txt-eng-ft.cc: Ditto. 4140 * variables.cc: Ditto. 4141 41422010-02-22 John W. Eaton <jwe@octave.org> 4143 4144 * ls-mat5.cc: Use numel instead of nelem consistently and where 4145 appropriate in all functions. 4146 (read_mat5_binary_element): Declare ridx and cidx as pointer to 4147 octave_idx_type, not int. 4148 (read_mat5_integer_data): Declare count as octave_idx_type, not int. 4149 (READ_INTEGER_DATA): Loop counter is octave_idx_type, not int. 4150 (OCTAVE_MAT5_INTEGER_READ): Declare n and loop counter as 4151 octave_idx_type, not int. 4152 (read_mat5_binary_element): Rows and columns of sparse matrix 4153 are octave_idx_type, not int. Declare nzmax and nnz as 4154 octave_idx_type. Read nzmax as 32-bit int, and assign. Move 4155 decls closer to first use. 4156 (read_mat5_binary_data): Declare count as octave_idx_type, not int. 4157 (read_mat5_binary_element, write_mat5_array): 4158 Use octave_idx_type instead of int for numel and loop counters. 4159 (write_mat5_array): Declare len and nel as octave_idx_type. 4160 Move declarations closer to first use. 4161 (write_mat5_tag): Declare bytes arg as octave_idx_type, not int. 4162 (write_mat5_integer_data): Declare nel as octave_idx_type, not int. 4163 (write_mat5_cell_array): Declare nel and loop counter as 4164 octave_idx_type, not int. 4165 (save_mat5_array_length): Declare nel nad loop counters as 4166 octave_idx_type, not int. 4167 (save_mat5_binary_element): Declare dims and counters as 4168 octave_idx_type, not int. Delete unused streampos variables. 4169 Call write_mat5_sparse_index_vector to write ridx and cidx. 4170 Don't write element if dimension is too large to save. 4171 (gripe_dim_too_large, write_mat5_sparse_index_vector): New functions. 4172 41732010-02-22 Carlo de Falco <kingcrimson@tiscali.it> 4174 4175 * dirfns.cc (Fglob): Make glob function test more robust. 4176 41772010-02-21 Michael Goffioul <michael.goffioul@gmail.com> 4178 4179 * gl-render.h: Define WIN32_LEAN_AND_MEAN and don't #undef min/max. 4180 * DLD-FUNCTIONS/fltk_backend.cc: Don't #undef min/max. 4181 4182 * sighandlers.cc (octave_set_signal_handler): Don't use SIGALRM 4183 unconditionally. 4184 4185 * ov-bool.h (class octave_bool): Add OCTINTERP_API. 4186 * unwind-prot.h (class unwind_protect_safe): Ditto. 4187 4188 * Makefile.am: Add -bindir flag to liboctinterp_la_LDFLAGS. Remove 4189 temporary libtool module file after copying oct file. 4190 41912010-02-19 John W. Eaton <jwe@octave.org> 4192 4193 * DLD-FUNCTIONS/qr.cc: Increase tolerance for test. 4194 41952010-02-19 Jaroslav Hajek <highegg@gmail.com> 4196 4197 * ov-lazy-idx.cc (octave_lazy_index::reshape, 4198 octave_lazy_index::squeeze, octave_lazy_index::permute, 4199 octave_lazy_index::sort, octave_lazy_index::is_sorted, 4200 octave_lazy_index::sort_rows_idx, octave_lazy_index::is_sorted_rows): 4201 New method overrides. 4202 * ov-lazy-idx.h: Declare them. 4203 * ov-re-mat.cc (octave_matrix::reshape, octave_matrix::squeeze, 4204 octave_matrix::sort, octave_matrix::is_sorted, 4205 octave_matrix::sort_rows_idx, octave_matrix::is_sorted_rows): New 4206 method overrides. 4207 * ov-re-mat.h: Declare them. 4208 42092010-02-19 Jaroslav Hajek <highegg@gmail.com> 4210 4211 * DLD-FUNCTIONS/find.cc (Ffind): Avoid unsafe conversion from Inf to 4212 integer. 4213 42142010-02-18 Jaroslav Hajek <highegg@gmail.com> 4215 4216 * syscalls.cc (mk_stat_result): New helper function. 4217 (Flstat): Call it here. 4218 (Fstat): Also here. Handle also the fstat case here. 4219 42202010-02-18 Thorsten Meyer <thorsten.meyier@gmx.de> 4221 4222 * dirfns.cc (Fglob): Document globbing patterns, add test. 4223 42242010-02-18 Jaroslav Hajek <highegg@gmail.com> 4225 4226 * load-path.cc (in_path_list): New helper function. 4227 (add_to_fcn_map): Use it here. 4228 42292010-02-18 Søren Hauberg <hauberg@gmail.com> 4230 4231 * DLD-FUNCTIONS/__magick_read__.cc (__magick_finfo__): 4232 Handle multiple frames in a single image file. 4233 42342010-02-18 John W. Eaton <jwe@octave.org> 4235 4236 * oct-map.h (Octave_map::Octave_map): Allow dimension to also be 4237 specified in string_vector constructor. 4238 42392010-02-17 John W. Eaton <jwe@octave.org> 4240 4241 * Makefile.am (OCTAVE_LIBS, OCTINTERP_LINK_DEPS): 4242 Include ../libcruft/libranlib.la in the list. 4243 * oct-conf.h.in (OCTAVE_CONF_F77_INTEGER_8_FLAG): New macro. 4244 * toplev.cc (octave_config_info): Include F77_INTEGER_8_FLAG in 4245 the struct. 4246 42472010-02-17 Jaroslav Hajek <highegg@gmail.com> 4248 4249 * DLD-FUNCTIONS/lookup.cc (do_numeric_lookup): Return an idx_vector 4250 when left_inf is in effect, to enable lazy index optimization. 4251 42522010-02-16 Jaroslav Hajek <highegg@gmail.com> 4253 4254 * ov-lazy-idx.h: New source. 4255 * ov-lazy-idx.cc: New source. 4256 * ov.cc (install_types): Register lazy_index here. 4257 (octave_value::octave_value (const idx_vector&)): Use lazy 4258 construction if possible, under control of an optional flag. 4259 (octave_value::clone): Implement. 4260 * ls-hdf5.cc (save_hdf5): Avoid saving lazy indices. 4261 42622010-02-15 Jaroslav Hajek <highegg@gmail.com> 4263 4264 * ov-fcn-handle.h (octave_fcn_handle::print_as_scalar): New method 4265 override. 4266 42672010-02-15 Jaroslav Hajek <highegg@gmail.com> 4268 4269 * ov-fcn-handle.cc (octave_fcn_handle::is_equal_to): New method. 4270 * ov-fcn-handle.h: Declare it. 4271 * OPERATORS/op-fcn.cc (eq, ne): Call it here. Register new handler. 4272 42732010-02-13 Jaroslav Hajek <highegg@gmail.com> 4274 4275 * load-path.cc (load_path::do_any_class_method): Rename to 4276 do_overloads. Return a list of classes. 4277 * load-path.h (load_path::any_class_method): Likewise. 4278 * symtab.cc (get_dispatch_type): Rewrite. 4279 * symtab.h (get_dispatch_type): Update decl. 4280 * ov-fcn-handle.h (octave_fcn_handle): Partially rewrite. 4281 (octave_fcn_handle::builtin_overloads, octave_fcn_handle::overloads, 4282 octave_fcn_handle::has_overloads): New members. 4283 * ov-fcn-handle.cc (octave_fcn_handle::do_multi_index_op): Rewrite. 4284 (make_fcn_handle): Partially rewrite. 4285 42862010-02-11 John W. Eaton <jwe@octave.org> 4287 4288 * DLD-FUNCTIONS/config-module.awk, genprops.awk, graphics.h.in, 4289 mkgendoc, mk-pkg-add, mxarray.h.in, zfstream.cc, zfstream.h: 4290 Untabify. 4291 42922010-02-11 John W. Eaton <jwe@octave.org> 4293 4294 * strfns.cc (Fstrcmpi, Fstrncmpi): Use DEFUNX instead of DEFUN. 4295 (Fstrncmpi): Report strncmpi in error message, not strncmp. 4296 42972010-02-11 John W. Eaton <jwe@octave.org> 4298 4299 * Cell.cc, bitfcns.cc, c-file-ptr-stream.cc, comment-list.cc, 4300 data.cc, debug.cc, defaults.cc, defun.cc, dirfns.cc, display.cc, 4301 dynamic-ld.cc, error.cc, file-io.cc, gl-render.cc, 4302 gl2ps-renderer.cc, graphics.cc, gripes.cc, help.cc, input.cc, 4303 load-path.cc, load-save.cc, ls-ascii-helper.cc, ls-hdf5.cc, 4304 ls-mat-ascii.cc, ls-mat4.cc, ls-mat5.cc, ls-oct-ascii.cc, 4305 ls-oct-binary.cc, mex.cc, oct-fstrm.cc, oct-hist.cc, 4306 oct-lvalue.cc, oct-map.cc, oct-obj.cc, oct-prcstrm.cc, 4307 oct-procbuf.cc, oct-stream.cc, oct-strstrm.cc, octave.cc, 4308 ov-base-diag.cc, ov-base-int.cc, ov-base-mat.cc, 4309 ov-base-scalar.cc, ov-base-sparse.cc, ov-base.cc, 4310 ov-bool-mat.cc, ov-bool-sparse.cc, ov-bool.cc, ov-builtin.cc, 4311 ov-cell.cc, ov-ch-mat.cc, ov-class.cc, ov-colon.cc, 4312 ov-complex.cc, ov-cx-diag.cc, ov-cx-mat.cc, ov-cx-sparse.cc, 4313 ov-dld-fcn.cc, ov-fcn-handle.cc, ov-fcn-inline.cc, ov-float.cc, 4314 ov-flt-complex.cc, ov-flt-cx-diag.cc, ov-flt-cx-mat.cc, 4315 ov-flt-re-diag.cc, ov-flt-re-mat.cc, ov-int16.cc, ov-int32.cc, 4316 ov-int64.cc, ov-int8.cc, ov-mex-fcn.cc, ov-perm.cc, ov-range.cc, 4317 ov-re-diag.cc, ov-re-mat.cc, ov-re-sparse.cc, ov-scalar.cc, 4318 ov-str-mat.cc, ov-struct.cc, ov-typeinfo.cc, ov-uint16.cc, 4319 ov-uint32.cc, ov-uint64.cc, ov-uint8.cc, ov-usr-fcn.cc, ov.cc, 4320 pager.cc, pr-output.cc, procstream.cc, pt-arg-list.cc, 4321 pt-assign.cc, pt-binop.cc, pt-bp.cc, pt-cbinop.cc, pt-cell.cc, 4322 pt-check.cc, pt-cmd.cc, pt-colon.cc, pt-const.cc, pt-decl.cc, 4323 pt-eval.cc, pt-except.cc, pt-exp.cc, pt-fcn-handle.cc, pt-id.cc, 4324 pt-idx.cc, pt-jump.cc, pt-loop.cc, pt-mat.cc, pt-misc.cc, 4325 pt-pr-code.cc, pt-select.cc, pt-stmt.cc, pt-unop.cc, 4326 sighandlers.cc, sparse-xdiv.cc, sparse-xpow.cc, strfns.cc, 4327 symtab.cc, syscalls.cc, sysdep.cc, toplev.cc, txt-eng-ft.cc, 4328 utils.cc, variables.cc, xdiv.cc, xpow.cc, oct-parse.yy, lex.ll: 4329 Untabify. 4330 43312010-02-11 John W. Eaton <jwe@octave.org> 4332 4333 * Cell.h, base-list.h, c-file-ptr-stream.h, comment-list.h, 4334 debug.h, defun-int.h, dynamic-ld.h, error.h, gl-render.h, 4335 gl2ps-renderer.h, gripes.h, load-path.h, load-save.h, ls-hdf5.h, 4336 ls-mat-ascii.h, ls-mat4.h, ls-mat5.h, ls-oct-ascii.h, 4337 ls-oct-binary.h, oct-fstrm.h, oct-iostrm.h, oct-lvalue.h, 4338 oct-map.h, oct-obj.h, oct-prcstrm.h, oct-stdstrm.h, 4339 oct-stream.h, oct-strstrm.h, octave.h, ops.h, ov-base-diag.h, 4340 ov-base-int.h, ov-base-mat.h, ov-base-scalar.h, 4341 ov-base-sparse.h, ov-base.h, ov-bool-mat.h, ov-bool-sparse.h, 4342 ov-bool.h, ov-builtin.h, ov-cell.h, ov-class.h, ov-complex.h, 4343 ov-cx-diag.h, ov-cx-mat.h, ov-cx-sparse.h, ov-dld-fcn.h, 4344 ov-fcn-handle.h, ov-fcn-inline.h, ov-fcn.h, ov-float.h, 4345 ov-flt-complex.h, ov-flt-cx-diag.h, ov-flt-cx-mat.h, 4346 ov-flt-re-diag.h, ov-flt-re-mat.h, ov-intx.h, ov-mex-fcn.h, 4347 ov-perm.h, ov-range.h, ov-re-diag.h, ov-re-mat.h, 4348 ov-re-sparse.h, ov-scalar.h, ov-str-mat.h, ov-struct.h, 4349 ov-type-conv.h, ov-typeinfo.h, ov-usr-fcn.h, ov.h, parse.h, 4350 pr-output.h, pt-arg-list.h, pt-assign.h, pt-binop.h, pt-cell.h, 4351 pt-cmd.h, pt-colon.h, pt-const.h, pt-decl.h, pt-eval.h, 4352 pt-except.h, pt-exp.h, pt-fcn-handle.h, pt-id.h, pt-idx.h, 4353 pt-jump.h, pt-loop.h, pt-mat.h, pt-misc.h, pt-pr-code.h, 4354 pt-select.h, pt-stmt.h, pt-unop.h, sighandlers.h, sparse-xdiv.h, 4355 sparse-xpow.h, symtab.h, token.h, toplev.h, txt-eng-ft.h, 4356 txt-eng.h, utils.h, variables.h, xdiv.h: Untabify. 4357 43582010-02-11 John W. Eaton <jwe@octave.org> 4359 4360 * DLD-FUNCTIONS/qz.cc: Untabify. 4361 (Fqz): Declare complex_case volatile to avoid GCC warning. 4362 43632010-02-11 John W. Eaton <jwe@octave.org> 4364 4365 * DLD-FUNCTIONS/qz.cc: Style fixes. 4366 43672010-02-11 John W. Eaton <jwe@octave.org> 4368 4369 * load-save.cc: If gnulib defines open, undefine it. Move 4370 #undefs before including zfstream.h. 4371 43722010-01-30 Jyh-Miin Lin <jyhmiin@gmail.com> 4373 4374 * DLD-FUNCTIONS/qz.cc (Fqz): Handle complex case without reordering. 4375 Return Q' for Matlab compatibility. 4376 43772010-02-11 Jaroslav Hajek <highegg@gmail.com> 4378 4379 * symtab.cc: Reverse the effect of 2ceae0b40515. 4380 (get_dispatch_type): If btyp_unknown occurs, read the class dispatch 4381 type. 4382 43832010-02-10 John W. Eaton <jwe@octave.org> 4384 4385 * load-save.cc: If gnulib defines close, undefine it. 4386 43872010-02-10 Jaroslav Hajek <highegg@gmail.com> 4388 4389 * ov-perm.h (octave_perm_matrix::builtin_type): New function. 4390 * symtab.cc (build_sup_table): Build the matrix with extra column 4391 and row to avoid segfault when undefined value leaks in. 4392 (get_dispatch_type): Update. Gripe if invalid result is detected. 4393 43942010-02-10 John W. Eaton <jwe@octave.org> 4395 4396 * data.cc: Ensure that CLOCKS_PER_SEC is defined instead of HZ. 4397 (Fcputime): Use CLOCKS_PER_SEC instead of HZ. 4398 43992010-02-10 John W. Eaton <jwe@octave.org> 4400 4401 * data.cc: Include <sys/times.h>. Define HZ if it is not defined. 4402 44032010-02-10 John W. Eaton <jwe@octave.org> 4404 4405 * graphics.cc (base_properties::set_children): Ensure that new 4406 children are stored as a column vector. 4407 4408 * syscalls.cc (Fdup2, Fexec, Fpopen2, Ffork, Fgetpgrp, Fgetpid, 4409 Fgetppid, Fgetegid, Fgetgid, Fgeteuid, Fkill, Ffstat, Flstat, 4410 Fpipe, Fstat, Fwaitpid): Use DEFUNX instead of DEFUN. 4411 44122010-02-10 David Grundberg <davidg@cs.umu.se> 4413 4414 * DLD-FUNCTIONS/__magick_read__.cc (read_images): Reimplement 4415 copying with direct fortran_vec manipulation, avoiding indexing 4416 operations. Replace scale_quantum_to_depth calls with simple 4417 arithmetics. 4418 (scale_quantum_to_depth): Remove function. 4419 44202010-02-10 Jaroslav Hajek <highegg@gmail.com> 4421 4422 * DLD-FUNCTIONS/bsxfun.cc (Fbsxfun): Remove redundant test. Add 4423 explanation. 4424 44252010-02-10 Jaroslav Hajek <highegg@gmail.com> 4426 4427 * ov-base.h (octave_base_value::is_list): Remove. 4428 * ov.h (octave_value::is_list): Remove. 4429 * data.cc (Fislist): Remove. 4430 * oct-stream.cc (printf_value_cache::printf_value_cache): Don't call 4431 is_list. 4432 44332010-02-10 Jaroslav Hajek <highegg@gmail.com> 4434 4435 * ov-str-mat.h (octave_char_matrix_str::is_real_type): Delete 4436 overload. 4437 * data.cc (Fisreal): Improve docs. 4438 44392010-02-10 Jaroslav Hajek <highegg@gmail.com> 4440 4441 * data.cc (Fisnumeric): Improve documentation. 4442 (Fismatrix): Ditto. 4443 44442010-02-09 John W. Eaton <jwe@octave.org> 4445 4446 * graphics.cc, graphics.h.in 4447 (base_properties::get_hidden_children): New function. 4448 (base_properties::get_children_internal): New function. 4449 (base_properties::get_children): Call get_children_internal to 4450 do the work. 4451 (base_properties::set_children): Incorporate maybe_set_children 4452 function here. Account for hidden children. 4453 (maybe_set_children): Delete. 4454 4455 * c-file-ptr-stream.h (c_file_ptr_buf::buf_close): Rename from close. 4456 (c_file_ptr_buf::file_close): Rename from fclose. 4457 (c_file_ptr_stream::stream_close): Rename from close. 4458 (c_zfile_ptr_buf:buf_close): Rename from close. 4459 Change all callers. 4460 44612010-02-09 John W. Eaton <jwe@octave.org> 4462 4463 * dynamic-ld.cc (clear): Only warn if reloading a dynamically 4464 linked file that defines multiple functions. 4465 44662010-02-09 Jaroslav Hajek <highegg@gmail.com> 4467 4468 * DLD-FUNCTIONS/find.cc (find_nonzero_elem_idx (const Array<T>&, ...)): 4469 Optimize creation of result indices. 4470 * data.cc (Fsort): Ditto. 4471 44722010-02-09 Jaroslav Hajek <highegg@gmail.com> 4473 4474 * DLD-FUNCTIONS/colamd.cc (Fcolamd, Fsymamd, Fetree): Fix improper arg 4475 checks. 4476 * DLD-FUNCTIONS/ccolamd.cc (Fccolamd, Fcsymamd): Likewise. 4477 44782010-02-08 Jaroslav Hajek <highegg@gmail.com> 4479 4480 * ov-re-mat.cc (octave_matrix::sort): Special-case sorting a known 4481 index vector. 4482 44832010-02-08 John W. Eaton <jwe@octave.org> 4484 4485 * ov-class.cc (Fclass): If more than 1 argument, check that 4486 call is inside class constructor first, then check for valid 4487 arguments. 4488 44892010-02-05 Jaroslav Hajek <highegg@gmail.com> 4490 4491 * data.cc (F__accumarray_sum__): Allow bool and char inputs. 4492 (do_accumarray_minmax, do_accumarray_minmax_fun): New helper funcs. 4493 (F__accumarray_min__, F__accumarray_max__): New defuns. 4494 44952010-02-04 John W. Eaton <jwe@octave.org> 4496 4497 * sysdep.cc: Don't include <sys/utsname.h>. 4498 44992010-02-04 John W. Eaton <jwe@octave.org> 4500 4501 * graphics.h.in (gh_manager::lookup (const octave_value&)): 4502 New function. 4503 * graphics.cc (axes::properties::set_text_child): Validate value. 4504 Allow value to be character string or handle of text object. 4505 45062010-02-04 John W. Eaton <jwe@octave.org> 4507 4508 * Makefile.am (OCTAVE_LIBS): Include all liboctave library 4509 dependencies here. 4510 45112010-02-03 Jaroslav Hajek <highegg@gmail.com> 4512 4513 * ov-fcn-handle.h (octave_fcn_handle::anonymous): New static field. 4514 * ov-fcn-handle.cc (octave_fcn_handle::anonymous): Initialize it. 4515 Use everywhere instead of hardwired string. 4516 (octave_fcn_handle::print_raw): Print named function handle with 4517 starting @. 4518 * pt-fcn-handle.cc: Use octave_fcn_handle::anonymous rather than 4519 hardcoded string. 4520 45212010-02-03 Jaroslav Hajek <highegg@gmail.com> 4522 4523 * OPERATORS/op-fcn.cc: New source. 4524 * OPERATORS/module.mk: Include it. 4525 45262010-02-03 John W. Eaton <jwe@octave.org> 4527 4528 * file-io.cc: Assume we have fcntl.h and sys/stat.h. 4529 4530 * syscalls.cc: Assume we have fcntl.h and fcntl. 4531 (Ffcntl): Use DEFUNX, not DEFUN. Call octave_fcntl, not 4532 octave_syscalls::fcntl. 4533 45342010-02-03 John W. Eaton <jwe@octave.org> 4535 4536 * DLD-FUNCTIONS/sub2ind.cc (get_dim_vector): 4537 Eliminate unnecessary cast. 4538 4539 * DLD-FUNCTIONS/qr.cc (Fqrinsert, Fqrdelete): 4540 Avoid type mismatch errors with octave_idx_type. 4541 4542 * oct-stream.cc (scanf_format_list::add_elt_to_list): 4543 NUM_ELTS arg is octave_idx_type, not int. 4544 4545 * ov-struct.cc (octave_struct::load_ascii): Ensure args to 4546 std::max are the same type. 4547 * DLD-FUNCTIONS/lookup.cc (do_numeric_lookup): Likewise. 4548 * DLD-FUNCTIONS/sub2ind.cc (get_dim_vector): Likewise. 4549 * DLD-FUNCTIONS/strfind.cc (qs_search): Likewise, for std::min. 4550 * DLD-FUNCTIONS/tril.cc (do_tril, do_triu): Likewise. 4551 45522010-02-03 John W. Eaton <jwe@octave.org> 4553 4554 * utils.cc (octave_vsnprintf): Assume we have vsnprintf with 4555 semantics that match the version provided by gnulib. 4556 4557 * DLD-FUNCTIONS/convhulln.cc (Fconvhulln): 4558 Use std::sstream instead of fixed-length buffer and snprintf. 4559 45602010-02-03 John W. Eaton <jwe@octave.org> 4561 4562 * cutils.c (octave_usleep): Implement using nanosleep. 4563 (octave_sleep): Assume sleep exists. 4564 45652010-02-03 John W. Eaton <jwe@octave.org> 4566 4567 * syscalls.cc (Fcanonicalize_file_name): 4568 Call octave_canonicalize_file_name instead of 4569 file_ops::canonicalize_file_name. 4570 45712010-02-03 John W. Eaton <jwe@octave.org> 4572 4573 * dirfns.cc (Fpwd): Call octave_env::get_current_directory, not 4574 octave_env::getcwd. 4575 4576 * utils.cc (search_path_for_file, search_path_for_all_files, 4577 make_absolute, Ffile_in_loadpath, Ffile_in_path, file_in_path, 4578 contents_file_in_path, Fmake_absolute_filename): 4579 Don't pass current directory to octave_env::make_absolute. 4580 * ov-fcn-handle.cc (octave_fcn_handle::set_fcn): Likewise. 4581 * octave.cc (execute_startup_files): Likewise. 4582 * ls-mat5.cc (read_mat5_binary_element): Likewise. 4583 * load-save.cc (find_file_to_load): Likewise. 4584 * load-path.cc (load_path::dir_info::update, 4585 load_path::dir_info::initialize, load_path::do_find_dir, 4586 load_path::do_find_matching_dirs): Likewise. 4587 * file-io.cc (do_stream_open): Likewise. 4588 * oct-parse.yy (load_fcn_from_file, Fautoload): Likewise. 4589 * DLD-FUNCTIONS/md5sum.cc (Fmd5sum): Likewise. 4590 * DLD-FUNCTIONS/urlwrite.cc (Furlwrite): Likewise. 4591 45922010-02-02 John W. Eaton <jwe@octave.org> 4593 4594 * syscalls.cc (Fcanonicalize_file_name): Use DEFUNX instead of DEFUN. 4595 45962010-02-02 Thomas Weber <thomas.weber.mail@gmail.com> 4597 4598 * DLD-FUNCTIONS/filter.cc: New tests. 4599 46002010-02-02 John W. Eaton <jwe@octave.org> 4601 4602 * octave.cc (octave_main): Assume we have atexit. 4603 * sighandlers.h, sighandlers.cc: Delete conditional definition 4604 of RETSIGTYPE. Replace all uses of RETSIGTYPE with void. 4605 (MAYBE_REINSTALL_SIGHANDLER, SIGHANDLER_RETURN): 4606 Delete macros and all uses. 4607 46082010-02-01 Jaroslav Hajek <highegg@gmail.com> 4609 4610 * load-path.cc (load_path::add_to_fcn_map): Warn when core library or 4611 built-in functions are being shadowed. 4612 (load_path::do_add): Pass at_end to add_to_fcn_map, add_to_method_map. 4613 Don't abort when "." not yet included. 4614 (load_path::do_clear): Don't append "." here. 4615 (load_path::do_set): Always prepend "." here. 4616 (load_path::initialize): Don't explicitly include "." here. 4617 46182010-02-02 John W. Eaton <jwe@octave.org> 4619 4620 * DLD-FUNCTIONS/filter.cc (filter (MArray<T>&, MArray<T>&, 4621 MArrayN<T>&, MArrayN<T>&, int)): Return early if X is empty. 4622 46232010-02-02 John W. Eaton <jwe@octave.org> 4624 4625 * cutils.c: Include <sys/times.h>, not "systime.h". 4626 * data.cc (Fcputime): Assume we have times. 4627 4628 * DLD-FUNCTIONS/getrusage.cc (Fgetrusage): Assume we have times. 4629 Include <times.h> and <sys/times.h> unconditionally. 4630 Don't include <windows.h> 4631 46322010-02-01 Jaroslav Hajek <highegg@gmail.com> 4633 4634 * strfns.cc (Fstrncmpi): Fix typo in docstring. 4635 46362010-01-30 Jaroslav Hajek <highegg@gmail.com> 4637 4638 * ov-list.h, ov-list.cc, OPERATORS/op-list.cc: Remove. 4639 4640 * Makefile.am, OPERATORS/module.mk: Update. 4641 * debug.cc: Remove #include. 4642 * ov-base.cc: Ditto. 4643 * ov-cs-list.h: Ditto. 4644 * ov-struct.cc: Ditto. 4645 * pt-bp.cc: Ditto. 4646 * ov.cc (octave_value::octave_value (const octave_value_list&)): 4647 Simplify. 4648 (install_types): Omit octave_list. 4649 46502010-01-30 Thorsten Meyer <thorsten.meyier@gmx.de> 4651 4652 * DLD-FUNCTIONS/time.cc: Replace struct_contains by isfield. 4653 46542010-01-30 Jaroslav Hajek <highegg@gmail.com> 4655 4656 * pt-assign.h (tree_multi_assignment::etype): Remove. 4657 (tree_multi_assignment::tree_multi_assignment): Update. 4658 (tree_multi_assignment::op_type): Update. 4659 * pt-assign.cc (tree_multi_assignment::tree_multi_assignment): Update. 4660 (tree_multi_assignment::rvalue): Update. 4661 (tree_multi_assignment::dup): Update. 4662 * oct=parse.yy (make_assign_op): Don't allow computed multiple 4663 assignments. 4664 46652010-01-30 Shai Ayal <shaiay@users.sourceforge.net> 4666 4667 * DLD-FUNCTIONS/fltk_backend.cc (__fltk_redraw__): call 4668 Fl::check twice to ensure all pending draws are shown on screen 4669 46702010-01-30 Jaroslav Hajek <highegg@gmail.com> 4671 4672 * oct-lvalue.h (octave_lvalue::black_hole): Remove field. 4673 (octave_lvalue::(all methods)): Update. 4674 * oct-lvalue.cc: Ditto. 4675 46762010-01-29 David Grundberg <davidg@cs.umu.se> 4677 4678 * mex.cc (mex::realloc): Allocate new memory if the argument is 4679 NULL. 4680 46812010-01-29 Ryan Rusaw <rrusaw@gmail.com> 4682 4683 * pt-eval.h, pt-eval.cc (tree_evaluator::do_keyboard): 4684 New virtual function. 4685 46862010-01-28 Jaroslav Hajek <highegg@gmail.com> 4687 4688 * toplev.cc (run_command_and_return_output): Fix testing of failed 4689 process creation, simplify. 4690 (cleanup_iprocstream): Remove. 4691 46922010-01-27 Jaroslav Hajek <highegg@gmail.com> 4693 4694 * pt-eval.cc (do_unwind_protect_cleanup_code): Save 4695 current_statement and restore it after cleanup block. 4696 46972010-01-27 Jaroslav Hajek <highegg@gmail.com> 4698 4699 * oct-parse.yy (validate_matrix_row): New static helper func. 4700 (cell_or_matrix_row): Call it here. 4701 47022010-01-27 Jaroslav Hajek <highegg@gmail.com> 4703 4704 * oct-lvalue.h (octave_lvalue::is_black_hole): New method. 4705 (octave_lvalue::black_hole): New field. 4706 (octave_lvalue::is_defined, octave_lvalue::is_undefined, 4707 octave_lvalue::is_map): Make const. 4708 (octave_lvalue::index_set): Remove field. 4709 (octave_lvalue::octave_lvalue, octave_lvalue::operator =): Correctly 4710 handle black holes. Update. 4711 (dummy_value): Remove. 4712 * pt-id.h (tree_identifier::is_black_hole): New method. 4713 (tree_identifier::is_variable): Make virtual. 4714 (tree_black_hole): New class. 4715 * oct-parse.yy (magic_tilde): New terminal. 4716 (param_list): Allow magic_tilde. 4717 (arg_list): Allow magic_tilde. 4718 * pt-misc.cc (tree_parameter_list::validate): Handle black holes. 4719 * pt-idx.cc (tree_index_expression::append): Gripe if arguments 4720 contain magic tilde. 4721 * pt-arg-list.h (tree_argument_list::has_magic_tilde): New method 4722 decl. 4723 (tree_argument_list::list_includes_magic_tilde): New field. 4724 (tree_argument_list::tree_argument_list): Initialize it in ctors. 4725 * pt-arg-list.cc (tree_argument_list::has_magic_tilde): New method. 4726 (tree_argument_list::append): Update list_includes_magic_tilde. 4727 47282010-01-27 Judd Storrs <jstorrs@gmail.com> 4729 4730 * ov-class.cc (octave_class::print_with_name) Add default case for 4731 classes that don't define a display method. 4732 47332010-01-26 Shai Ayal <shaiay@users.sourceforge.net> 4734 4735 * gl-render.cc (draw_text): scale position. 4736 47372010-01-26 John W. Eaton <jwe@octave.org> 4738 4739 * dirfns.cc (Fmkdir, Frmdir, Flink, Fsymlink, Freadlink, 4740 Frename, Ftmpnam, Fumask): Use DEFUNX instead of DEFUN. 4741 * syscall.scc (Fmkfifo, Funlink): Ditto. 4742 * DLD-FUNCTIONS/urlwrite.cc (cleanup_urlwrite, reset_path, 4743 delete_file): Now static. 4744 47452010-01-23 John W. Eaton <jwe@octave.org> 4746 4747 * octave.cc (octave_main): Use getopt directly instead of using 4748 the (mostly useless) prog_args wrapper class. 4749 Include <getopt.h>, not "prog-args.h". 4750 47512010-01-23 John W. Eaton <jwe@octave.org> 4752 4753 * sighandlers.cc (user_abort): Also set debug_mode if Vdebugging. 4754 * debug.cc (bp_table::do_add_breakpoint, do_remove_all_breakpoints, 4755 bp_table::do_remove_breakpoint, do_remove_all_breakpoints_in_file): 4756 Also set debug_mode if Vdebugging. 4757 * pt-eval.cc (visit_return_command): Actually call reset_debug_state. 4758 (reset_debug_state): Also set debug_mode if Vdebugging. 4759 47602010-01-22 John W. Eaton <jwe@octave.org> 4761 4762 * octave.cc (octave_main): Use new names for prog_args member 4763 functions. 4764 47652010-01-22 John W. Eaton <jwe@octave.org> 4766 4767 * octave.cc: Don't include sys/types.h, unistd.h, or fstream. 4768 47692010-01-22 John W. Eaton <jwe@octave.org> 4770 4771 * oct-parse.yy (make_break_command, make_continue_command, 4772 make_return_command): Don't examine evaluator state here. 4773 * pt-eval.cc (tree_evaluator::visit_break_command): Don't set 4774 tree_break_command::breaking unless inside function or script 4775 body, or inside a looping command. 4776 (tree_evaluator::visit_continue_command): Likewise, for 4777 tree_continue_command::continuing. 4778 (tree_evaluator::visit_return_command): Likewise, for 4779 tree_return_command::returning. Act like dbcont if debugging 4780 and in the top-level debugging stack frame. 4781 47822010-01-22 John W. Eaton <jwe@octave.org> 4783 4784 * oct-stream.cc (octave_base_stream::do_scanf): Don't skip 4785 whitespace, literal text, and %% elements at the end of the 4786 format spec. Correctly process formats containing only literal text. 4787 (scanf_format_list::finish_conversion): Don't increment nconv 4788 for literal % characters. 4789 (scanf_format_list::length, scanf_format_list::num_conversions): 4790 Return octave_idx_type, not int. 4791 (scanf_format_list::nconv, scanf_format_list::curr_idx): 4792 Now octave_idx_type, not int. Change all uses. 4793 (printf_format_list::length): Return octave_idx_type, not int. 4794 (scanf_format_list::nconv, scanf_format_list::curr_idx): 4795 Now octave_idx_type, not int. Change all uses. 4796 (scanf_format_list::add_elt_to_list, 4797 scanf_format_list::process_conversion, 4798 scanf_format_list::finish_conversion, 4799 printf_format_list::add_elt_to_list, 4800 printf_format_list::process_conversion, 4801 printf_format_list::finish_conversion): 4802 Use size_t instead of int as appropriate. 4803 * oct-stream.h: Update decls. 4804 48052010-01-22 John W. Eaton <jwe@octave.org> 4806 4807 * debug.cc (Fdbcont, Fdbquit): Call reset_debug_state. 4808 (Fdbquit): Set Vdebugging to false. 4809 * input.cc (Fkeyboard): Set tree_evaluator::debug_state to true. 4810 Set tree_evaluator::current_frame to the initial stack frame 4811 that is active for debugging commands. 4812 * pt-eval.cc (tree_evaluator::reset_debug_state): New function. 4813 * pt-eval.h (tree_evaluator::reset_debug_state): Provide decl. 4814 * toplev.cc (main_loop): Call tree_evaluator::reset_debug_state 4815 if at top level. 4816 48172010-01-22 Jaroslav Hajek <highegg@gmail.com> 4818 4819 * data.cc (Fnorm): Don't special-case empty matrix. 4820 * DLD-FUNCTIONS/svd.cc (Fsvd): Fix empty matrix case. Add tests. 4821 48222010-01-21 Jaroslav Hajek <highegg@gmail.com> 4823 4824 * ov-builtin.cc (octave_builtin::do_multi_index_op): Partially undo 4825 previous change. 4826 * ov-type-conv.h (octave_type_conv_body): Undo previous change. 4827 * ov-dld-fcn.cc (octave_dld_function::do_multi_index_op): Ditto. 4828 48292010-01-21 John W. Eaton <jwe@octave.org> 4830 4831 * DLD-FUNCTIONS/getrusage.cc, DLD-FUNCTIONS/getgrent.cc, 4832 DLD-FUNCTIONS/getpwent.cc, DLD-FUNCTIONS/regexp.cc, lex.ll, 4833 cutils.c, data.cc, defaults.cc, dirfns.cc, file-io.cc, help.cc, 4834 input.cc, oct-hist.cc, oct-procbuf.cc, oct-procbuf.h, octave.cc, 4835 pager.h, procstream.h, sighandlers.cc, toplev.cc, syscalls.cc, 4836 sysdep.cc, utils.cc: Assume sys/types.h and unistd.h are present 4837 (gnulib provides them). 4838 48392010-01-21 Jaroslav Hajek <highegg@gmail.com> 4840 4841 * ov-base.h (octave_base_value::dim_vector): Return 0x0 by default. 4842 * oct-obj.h (octave_value_list::xelem, octave_value_list::clear): New 4843 methods. 4844 * ov-builtin.cc (octave_builtin::do_multi_index_op): Don't call 4845 make_storable_values. Chop a potential single undefined value. 4846 * ov-type-conv.h (octave_type_conv_body): Ensure storable value. 4847 * ov-dld-fcn.cc (octave_dld_function::do_multi_index_op): New method. 4848 * DLD-FUNCTIONS/cellfun.cc (get_output_list): New helper function. 4849 (Fcellfun): Call it here. Optimize. 4850 48512010-01-20 John W. Eaton <jwe@octave.org> 4852 4853 * defaults.h.in, graphics.h.in, oct-conf.h.in, oct-errno.cc.in, 4854 version.h.in: Delete Emacs local-variable settings. 4855 48562010-01-20 John W. Eaton <jwe@octave.org> 4857 4858 * cutils.c, main.c, matherr.c, siglist.c, Cell.cc, bitfcns.cc, 4859 c-file-ptr-stream.cc, comment-list.cc, data.cc, debug.cc, 4860 defaults.cc, defun.cc, dirfns.cc, display.cc, dynamic-ld.cc, 4861 error.cc, file-io.cc, gl-render.cc, gl2ps-renderer.cc, 4862 graphics.cc, gripes.cc, help.cc, input.cc, load-path.cc, 4863 load-save.cc, ls-ascii-helper.cc, ls-hdf5.cc, ls-mat-ascii.cc, 4864 ls-mat4.cc, ls-mat5.cc, ls-oct-ascii.cc, ls-oct-binary.cc, 4865 ls-utils.cc, mappers.cc, oct-fstrm.cc, oct-hist.cc, 4866 oct-iostrm.cc, oct-lvalue.cc, oct-map.cc, oct-obj.cc, 4867 oct-prcstrm.cc, oct-procbuf.cc, oct-stream.cc, oct-strstrm.cc, 4868 octave.cc, ov-base-int.cc, ov-base-mat.cc, ov-base-scalar.cc, 4869 ov-base-sparse.cc, ov-base.cc, ov-bool-mat.cc, 4870 ov-bool-sparse.cc, ov-bool.cc, ov-builtin.cc, ov-cell.cc, 4871 ov-ch-mat.cc, ov-class.cc, ov-colon.cc, ov-complex.cc, 4872 ov-cs-list.cc, ov-cx-mat.cc, ov-cx-sparse.cc, ov-dld-fcn.cc, 4873 ov-fcn-handle.cc, ov-fcn-inline.cc, ov-fcn.cc, ov-float.cc, 4874 ov-flt-complex.cc, ov-flt-cx-mat.cc, ov-flt-re-mat.cc, 4875 ov-int16.cc, ov-int32.cc, ov-int64.cc, ov-int8.cc, ov-list.cc, 4876 ov-mex-fcn.cc, ov-range.cc, ov-re-mat.cc, ov-re-sparse.cc, 4877 ov-scalar.cc, ov-str-mat.cc, ov-struct.cc, ov-typeinfo.cc, 4878 ov-uint16.cc, ov-uint32.cc, ov-uint64.cc, ov-uint8.cc, 4879 ov-usr-fcn.cc, ov.cc, pager.cc, pr-output.cc, procstream.cc, 4880 pt-arg-list.cc, pt-assign.cc, pt-binop.cc, pt-bp.cc, pt-cell.cc, 4881 pt-check.cc, pt-cmd.cc, pt-colon.cc, pt-const.cc, pt-decl.cc, 4882 pt-eval.cc, pt-except.cc, pt-exp.cc, pt-fcn-handle.cc, pt-id.cc, 4883 pt-idx.cc, pt-jump.cc, pt-loop.cc, pt-mat.cc, pt-misc.cc, 4884 pt-pr-code.cc, pt-select.cc, pt-stmt.cc, pt-unop.cc, pt.cc, 4885 sighandlers.cc, sparse-xdiv.cc, sparse-xpow.cc, strfns.cc, 4886 symtab.cc, syscalls.cc, sysdep.cc, token.cc, toplev.cc, 4887 unwind-prot.cc, utils.cc, variables.cc, xdiv.cc, xpow.cc, 4888 zfstream.cc, Cell.h, base-list.h, builtins.h, 4889 c-file-ptr-stream.h, comment-list.h, debug.h, defun-dld.h, 4890 defun-int.h, defun.h, dirfns.h, display.h, dynamic-ld.h, 4891 error.h, file-io.h, gl2ps-renderer.h, gripes.h, help.h, input.h, 4892 lex.h, load-path.h, load-save.h, ls-ascii-helper.h, ls-hdf5.h, 4893 ls-mat-ascii.h, ls-mat4.h, ls-mat5.h, ls-oct-ascii.h, 4894 ls-oct-binary.h, ls-utils.h, mex.h, mexproto.h, oct-errno.h, 4895 oct-fstrm.h, oct-hdf5.h, oct-hist.h, oct-iostrm.h, oct-lvalue.h, 4896 oct-map.h, oct-obj.h, oct-prcstrm.h, oct-procbuf.h, 4897 oct-stdstrm.h, oct-stream.h, oct-strstrm.h, oct.h, octave.h, 4898 ops.h, ov-base-int.h, ov-base-mat.h, ov-base-scalar.h, 4899 ov-base-sparse.h, ov-base.h, ov-bool-mat.h, ov-bool-sparse.h, 4900 ov-bool.h, ov-builtin.h, ov-cell.h, ov-ch-mat.h, ov-class.h, 4901 ov-colon.h, ov-complex.h, ov-cs-list.h, ov-cx-mat.h, 4902 ov-cx-sparse.h, ov-dld-fcn.h, ov-fcn-handle.h, ov-fcn-inline.h, 4903 ov-fcn.h, ov-float.h, ov-flt-complex.h, ov-flt-cx-diag.h, 4904 ov-flt-cx-mat.h, ov-flt-re-mat.h, ov-int-traits.h, ov-int16.h, 4905 ov-int32.h, ov-int64.h, ov-int8.h, ov-intx.h, ov-list.h, 4906 ov-mex-fcn.h, ov-range.h, ov-re-mat.h, ov-re-sparse.h, 4907 ov-scalar.h, ov-str-mat.h, ov-struct.h, ov-type-conv.h, 4908 ov-typeinfo.h, ov-uint16.h, ov-uint32.h, ov-uint64.h, 4909 ov-uint8.h, ov-usr-fcn.h, ov.h, pager.h, parse.h, pr-output.h, 4910 procstream.h, pt-all.h, pt-arg-list.h, pt-assign.h, pt-binop.h, 4911 pt-bp.h, pt-cbinop.h, pt-cell.h, pt-check.h, pt-cmd.h, 4912 pt-colon.h, pt-const.h, pt-decl.h, pt-eval.h, pt-except.h, 4913 pt-exp.h, pt-fcn-handle.h, pt-id.h, pt-idx.h, pt-jump.h, 4914 pt-loop.h, pt-mat.h, pt-misc.h, pt-pr-code.h, pt-select.h, 4915 pt-stmt.h, pt-unop.h, pt-walk.h, pt.h, sighandlers.h, siglist.h, 4916 sparse-xdiv.h, sparse-xpow.h, symtab.h, sysdep.h, token.h, 4917 toplev.h, unwind-prot.h, utils.h, variables.h, xdiv.h, xpow.h, 4918 zfstream.h, oct-parse.yy, lex.ll: Delete EMacs local-variable settings. 4919 49202010-01-20 John W. Eaton <jwe@octave.org> 4921 4922 * DLD-FUNCTIONS/__magick_read__.cc, DLD-FUNCTIONS/balance.cc, 4923 DLD-FUNCTIONS/besselj.cc, DLD-FUNCTIONS/betainc.cc, 4924 DLD-FUNCTIONS/ccolamd.cc, DLD-FUNCTIONS/cellfun.cc, 4925 DLD-FUNCTIONS/chol.cc, DLD-FUNCTIONS/colamd.cc, 4926 DLD-FUNCTIONS/colloc.cc, DLD-FUNCTIONS/conv2.cc, 4927 DLD-FUNCTIONS/daspk.cc, DLD-FUNCTIONS/dasrt.cc, 4928 DLD-FUNCTIONS/dassl.cc, DLD-FUNCTIONS/det.cc, 4929 DLD-FUNCTIONS/dmperm.cc, DLD-FUNCTIONS/dot.cc, 4930 DLD-FUNCTIONS/eig.cc, DLD-FUNCTIONS/eigs.cc, 4931 DLD-FUNCTIONS/fft.cc, DLD-FUNCTIONS/fft2.cc, 4932 DLD-FUNCTIONS/fftn.cc, DLD-FUNCTIONS/filter.cc, 4933 DLD-FUNCTIONS/find.cc, DLD-FUNCTIONS/fltk_backend.cc, 4934 DLD-FUNCTIONS/gammainc.cc, DLD-FUNCTIONS/gcd.cc, 4935 DLD-FUNCTIONS/getgrent.cc, DLD-FUNCTIONS/getpwent.cc, 4936 DLD-FUNCTIONS/getrusage.cc, DLD-FUNCTIONS/givens.cc, 4937 DLD-FUNCTIONS/hess.cc, DLD-FUNCTIONS/inv.cc, 4938 DLD-FUNCTIONS/lookup.cc, DLD-FUNCTIONS/lsode.cc, 4939 DLD-FUNCTIONS/lu.cc, DLD-FUNCTIONS/luinc.cc, 4940 DLD-FUNCTIONS/matrix_type.cc, DLD-FUNCTIONS/max.cc, 4941 DLD-FUNCTIONS/pinv.cc, DLD-FUNCTIONS/qr.cc, 4942 DLD-FUNCTIONS/quad.cc, DLD-FUNCTIONS/qz.cc, 4943 DLD-FUNCTIONS/rand.cc, DLD-FUNCTIONS/regexp.cc, 4944 DLD-FUNCTIONS/schur.cc, DLD-FUNCTIONS/sparse.cc, 4945 DLD-FUNCTIONS/spparms.cc, DLD-FUNCTIONS/sqrtm.cc, 4946 DLD-FUNCTIONS/svd.cc, DLD-FUNCTIONS/syl.cc, 4947 DLD-FUNCTIONS/symbfact.cc, DLD-FUNCTIONS/time.cc, 4948 DLD-FUNCTIONS/tril.cc: Delete Emacs local-variable settings. 4949 49502010-01-20 John W. Eaton <jwe@octave.org> 4951 4952 * DLD-FUNCTIONS/__contourc__.cc, DLD-FUNCTIONS/__convn__.cc, 4953 DLD-FUNCTIONS/__delaunayn__.cc, DLD-FUNCTIONS/__dsearchn__.cc, 4954 DLD-FUNCTIONS/__glpk__.cc, DLD-FUNCTIONS/__lin_interpn__.cc, 4955 DLD-FUNCTIONS/__magick_read__.cc, 4956 DLD-FUNCTIONS/__pchip_deriv__.cc, DLD-FUNCTIONS/__qp__.cc, 4957 DLD-FUNCTIONS/__voronoi__.cc, DLD-FUNCTIONS/amd.cc, 4958 DLD-FUNCTIONS/balance.cc, DLD-FUNCTIONS/besselj.cc, 4959 DLD-FUNCTIONS/betainc.cc, DLD-FUNCTIONS/bsxfun.cc, 4960 DLD-FUNCTIONS/ccolamd.cc, DLD-FUNCTIONS/cellfun.cc, 4961 DLD-FUNCTIONS/chol.cc, DLD-FUNCTIONS/colamd.cc, 4962 DLD-FUNCTIONS/colloc.cc, DLD-FUNCTIONS/conv2.cc, 4963 DLD-FUNCTIONS/convhulln.cc, DLD-FUNCTIONS/daspk.cc, 4964 DLD-FUNCTIONS/dasrt.cc, DLD-FUNCTIONS/dassl.cc, 4965 DLD-FUNCTIONS/det.cc, DLD-FUNCTIONS/dispatch.cc, 4966 DLD-FUNCTIONS/dlmread.cc, DLD-FUNCTIONS/dmperm.cc, 4967 DLD-FUNCTIONS/eig.cc, DLD-FUNCTIONS/eigs.cc, 4968 DLD-FUNCTIONS/fft.cc, DLD-FUNCTIONS/fft2.cc, 4969 DLD-FUNCTIONS/fftn.cc, DLD-FUNCTIONS/fftw.cc, 4970 DLD-FUNCTIONS/filter.cc, DLD-FUNCTIONS/find.cc, 4971 DLD-FUNCTIONS/fltk_backend.cc, DLD-FUNCTIONS/gammainc.cc, 4972 DLD-FUNCTIONS/gcd.cc, DLD-FUNCTIONS/getgrent.cc, 4973 DLD-FUNCTIONS/getpwent.cc, DLD-FUNCTIONS/givens.cc, 4974 DLD-FUNCTIONS/hess.cc, DLD-FUNCTIONS/hex2num.cc, 4975 DLD-FUNCTIONS/inv.cc, DLD-FUNCTIONS/kron.cc, 4976 DLD-FUNCTIONS/lookup.cc, DLD-FUNCTIONS/lsode.cc, 4977 DLD-FUNCTIONS/lu.cc, DLD-FUNCTIONS/luinc.cc, 4978 DLD-FUNCTIONS/matrix_type.cc, DLD-FUNCTIONS/md5sum.cc, 4979 DLD-FUNCTIONS/pinv.cc, DLD-FUNCTIONS/qr.cc, 4980 DLD-FUNCTIONS/quad.cc, DLD-FUNCTIONS/qz.cc, 4981 DLD-FUNCTIONS/rand.cc, DLD-FUNCTIONS/rcond.cc, 4982 DLD-FUNCTIONS/regexp.cc, DLD-FUNCTIONS/schur.cc, 4983 DLD-FUNCTIONS/sparse.cc, DLD-FUNCTIONS/spparms.cc, 4984 DLD-FUNCTIONS/sqrtm.cc, DLD-FUNCTIONS/svd.cc, 4985 DLD-FUNCTIONS/syl.cc, DLD-FUNCTIONS/symbfact.cc, 4986 DLD-FUNCTIONS/symrcm.cc, DLD-FUNCTIONS/time.cc, 4987 DLD-FUNCTIONS/tril.cc, DLD-FUNCTIONS/tsearch.cc, 4988 DLD-FUNCTIONS/urlwrite.cc: Untabify. 4989 49902010-01-20 John W. Eaton <jwe@octave.org> 4991 4992 * TEMPLATE-INST/Array-os.cc, TEMPLATE-INST/Array-tc.cc, 4993 TEMPLATE-INST/Array-sym.cc: Delete Emacs local-variable settings. 4994 49952010-01-20 Jaroslav Hajek <highegg@gmail.com> 4996 4997 * xpow.cc (xpow, elem_xpow): Don't do redundant real->complex 4998 conversions. 4999 50002010-01-20 Jaroslav Hajek <highegg@gmail.com> 5001 5002 * data.cc: Substitute OCTAVE_QUIT -> octave_quit (). 5003 * input.cc: Ditto. 5004 * ls-mat-ascii.cc: Ditto. 5005 * oct-stream.cc: Ditto. 5006 * ov-base-int.cc: Ditto. 5007 * ov-base-sparse.cc: Ditto. 5008 * ov-bool-sparse.cc: Ditto. 5009 * ov-cell.cc: Ditto. 5010 * ov-cx-sparse.cc: Ditto. 5011 * ov-flt-re-mat.cc: Ditto. 5012 * ov-re-mat.cc: Ditto. 5013 * ov-re-sparse.cc: Ditto. 5014 * pr-output.cc: Ditto. 5015 * pt-eval.cc: Ditto. 5016 * pt-mat.cc: Ditto. 5017 * sighandlers.cc: Ditto. 5018 * sparse-xdiv.cc: Ditto. 5019 * sparse-xpow.cc: Ditto. 5020 * toplev.cc: Ditto. 5021 * utils.cc: Ditto. 5022 * xdiv.cc: Ditto. 5023 * xpow.cc: Ditto. 5024 50252010-01-20 Jaroslav Hajek <highegg@gmail.com> 5026 5027 * DLD-FUNCTIONS/bsxfun.cc: New tests. 5028 50292010-01-20 David Bateman <dbateman@free.fr> 5030 5031 * graphics.h.in (string_array_property): New property. 5032 (axes::properties): Use it here for the linestyleorder property. 5033 Remove the markerorder property. 5034 * genprops.awk: Emit string_array_property 5035 50362010-01-19 Jaroslav Hajek <highegg@gmail.com> 5037 5038 * DLD-FUNCTIONS/strfind.cc: Optimize searching for 1 or 2 characters. 5039 50402010-01-18 John W. Eaton <jwe@octave.org> 5041 5042 * oct-parse.yy (fcn_end): Allow EOF as end of function if 5043 reading from eval string. 5044 (eval_string): Protect and set reading_fcn_file, 5045 reading_script_file, and reading_classdef_file. 5046 50472010-01-18 Jaroslav Hajek <highegg@gmail.com> 5048 5049 * xpow.cc (xpow (const NDArray&, double), xpow (const FloatNDArray&, 5050 float)): Optimize also the x.^3 case. 5051 50522010-01-18 David Grundberg <davidg@cs.umu.se> 5053 5054 * mex.cc (mexPrintf): Change signature. 5055 * mexproto.h (mexPrintf): Ditto. 5056 50572010-01-18 David Grundberg <davidg@cs.umu.se> 5058 5059 * mexproto.h (mxSetDimensions): Change signature. 5060 * mex.cc (mxSetDimensions): Ditto. 5061 50622010-01-17 Jaroslav Hajek <highegg@gmail.com> 5063 5064 * DLD-FUNCTIONS/cellfun.cc (Fcellslices): Support dim argument, make 5065 consistent with rest of functions. 5066 50672010-01-17 Thorsten Meyer <thorsten.meyier@gmx.de> 5068 5069 * ov-cell.cc (Fstruct2cell): Add example, add test. 5070 * DLD-FUNCTIONS/cellfun.cc (Fcellfun, Fnum2cell), ov-struct.cc 5071 (Fisstruct): Fix docstring. 5072 * DLD-FUNCTIONS/cellfun.cc (Fcellslices, Fisfield, Ffieldnames, 5073 Frmfield): Add test. 5074 * ov-struct.cc (Fcell2struct): Fix docstring, add test. 5075 50762010-01-16 David Bateman <dbateman@free.fr> 5077 5078 * graphics.h.in (line::properties, surface::properties, 5079 patch::properties): Allow the use of a "@" marker. 5080 (axes::properties): Add markerorder properties to set the 5081 order of the marker styles for the "@" marker. 5082 50832010-01-15 Jaroslav Hajek <highegg@gmail.com> 5084 5085 * pt-mat.cc (SINGLE_TYPE_CONCAT, DO_SINGLE_TYPE_CONCAT, 5086 DO_SINGLE_TYPE_CONCAT_NO_MUTATE): Remove macros. 5087 (single_type_concat, do_single_type_concat, 5088 do_single_type_concat_no_mutate): New template funcs. 5089 (tree_matrix::rvalue1): Call them here. 5090 50912010-01-14 Jaroslav Hajek <highegg@gmail.com> 5092 5093 * strfns.cc (do_strcmp_fun, 5094 strcmp_array_op, strcmp_str_op, 5095 strcmpi_array_op, strcmpi_str_op, 5096 strncmp_array_op, strncmp_str_op, 5097 strncmpi_array_op, strncmpi_str_op): New functions. 5098 (Fstrcmp, Fstrncmp): Reimplement using do_strcmp_fun. 5099 (Fstrcmpi, Fstrncmpi): New defuns. 5100 51012010-01-14 Jaroslav Hajek <highegg@gmail.com> 5102 5103 * DLD-FUNCTIONS/bsxfun.cc (maybe_fill_table): register relational 5104 handlers for char arrays. 5105 51062010-01-14 Jaroslav Hajek <highegg@gmail.com> 5107 5108 * ov-class.cc (octave_class::numel (const octave_value_list&)): Don't 5109 attempt to query overloaded size. 5110 51112010-01-13 John W. Eaton <jwe@octave.org> 5112 5113 * ov-fcn.h (octave_function (const std::string&, const std::string&)): 5114 Explicitly initialize all data members. 5115 5116 * ov-builtin.h (octave_builtin::octave_builtin): 5117 Explicitly initialize base class object and data member. 5118 51192010-01-13 John W. Eaton <jwe@octave.org> 5120 5121 * DLD-FUNCTIONS/__magick_read__.cc (read_indexed_images): 5122 No need to explicitly call chop_trailing_singletons now. 5123 51242010-01-13 John W. Eaton <jwe@octave.org> 5125 5126 * oct-obj.cc (octave_value_list::any_cell): Avoid assignment in 5127 condition of if statement. 5128 51292010-01-13 John W. Eaton <jwe@octave.org> 5130 5131 * DLD-FUNCTIONS/lu.cc: Avoid test failures if HAVE_QRUPDATE_LUU is 5132 not defined. 5133 51342010-01-12 David Bateman <dbateman@free.fr> 5135 5136 * graphics.h.in (patch::properties): Add "flat" value to 5137 markeredgecolor and markerfacecolor properties. 5138 51392010-01-12 Jaroslav Hajek <highegg@gmail.com> 5140 5141 * ov-base.h (builtin_type_t): New enum constants: btyp_cell, 5142 btyp_struct and btyp_func_handle. 5143 (btyp_isinteger, btyp_isfloat, btyp_isarray): New funcs. 5144 (btyp_class_name): New array. 5145 (get_builtin_classes): New func. 5146 * ov-cell.h (octave_cell::builtin_type): New virtual override. 5147 * ov-struct.h (octave_struct::builtin_type): New virtual override. 5148 * ov-fcn-handle.h (octave_fcn_handle::builtin_type): New virtual override. 5149 * symtab.cc (get_dispatch_type): Rewrite. Add overload. 5150 * symtab.h: Update decls. 5151 * ov-fcn-handle.cc (octave_fcn_handle::do_multi_index_op): Rewrite. 5152 (get_builtin_classes): Remove. 5153 51542010-01-12 Jaroslav Hajek <highegg@gmail.com> 5155 5156 * oct-obj.cc (octave_value_list::any_cell): New method. 5157 * oct-obj.h: Declare it. 5158 * utils.cc (do_simple_cellfun): New overloaded function. 5159 * utils.h: Declare it. 5160 * DLD-FUNCTIONS/strfind.cc (Fstrfind): Call it here. 5161 (Fstrrep): Also here. 5162 51632010-01-11 Rik <octave@nomad.inbox5.com> 5164 5165 * Makefile.am: Update DOCSTRINGS rules to avoid 5166 simple_move_if_change_rule and allow Make to update timestamps. 5167 51682010-01-11 John W. Eaton <jwe@octave.org> 5169 5170 * DLD-FUNCTIONS/urlwrite.cc (curl_handle::lasterror): 5171 Avoid using errno as a local variable name. 5172 51732010-01-11 Jaroslav Hajek <highegg@gmail.com> 5174 5175 * DLD-FUNCTIONS/lu.cc (Fluupdate): Add tests for LU updating. 5176 51772010-01-11 Tatsuro MATSUOKA <tmacchant@yahoo.co.jp> 5178 5179 * Makefile.am (OCTINTERP_LINK_DEPS): Include FT2_LDFLAGS and 5180 FT2_LIBS in the list. 5181 51822010-01-09 John W. Eaton <jwe@octave.org> 5183 5184 * DLD-FUNCTIONS/lookup.cc (stri_comp_lt, stri_comp_gt): 5185 Comment out unused functions. 5186 5187 * oct-stream.cc (BEGIN_S_CONVERSION): Don't declare local tmp 5188 variable twice. 5189 5190 * gl-render.cc (opengl_renderer::draw_image): Avoid shadow 5191 declaration warning from GCC. 5192 5193 * DLD-FUNCTIONS/fltk_backend.cc (base_graphics_backend): 5194 Avoid unused parameter warning from GCC. 5195 * dynamic-ld.cc (octave_dynamic_loader::do_load_mex): Likewise. 5196 5197 * data.cc (get_sort_mode_option): Avoid uninitialized variable 5198 warning from GCC. 5199 52002010-01-08 Jaroslav Hajek <highegg@gmail.com> 5201 5202 * oct-obj.h (octave_value_list::operator () const, 5203 octave_value_list::elem const): Return const octave_value&. 5204 * ov.cc (octave_value::function_value, 5205 octave_value::user_function_value, octave_value::user_script_value, 5206 octave_value::user_code_value, octave_value::fcn_handle_value, 5207 octave_value::fcn_inline_value): Declare as const. 5208 * ov.h: Likewise. 5209 * ov-base.h (octave_value::function_value const): Remove overload. 5210 * ov-usr-fcn.h (octave_user_function::function_value const): Likewise. 5211 * ov-builtin.h (octave_builtin::function_value const): Likewise. 5212 * ov-builtin.h (octave_builtin::function_value const): Likewise. 5213 5214 * DLD-FUNCTIONS/cellfun.cc (Fcellfun): Take a non-const copy prior to 5215 calling non-const functions. 5216 5217 52182010-01-08 Jaroslav Hajek <highegg@gmail.com> 5219 5220 * DLD-FUNCTIONS/strfind.cc (qs_replace): New function. 5221 (Fstrrep): Use it here. Allow S to be a cellstr. 5222 52232010-01-07 John W. Eaton <jwe@octave.org> 5224 5225 * data.cc (cputime): Eliminate Windows-specific code. 5226 52272010-01-07 John W. Eaton <jwe@octave.org> 5228 5229 * variables.cc (get_global_value): Fix function name in error message. 5230 (get_top_level_value, set_top_level_value): New functions. 5231 * variables.h (get_top_level_value, set_top_level_value): 5232 Provide decls. 5233 5234 * symtab.h (symbol_table::top_level_varref, 5235 symbol_table::top_level_varval): New static functions. 5236 52372010-01-07 Jaroslav Hajek <highegg@gmail.com> 5238 5239 * utils.cc (octave_sleep (double)): Add OCTAVE_QUIT. 5240 52412010-01-06 Jaroslav Hajek <highegg@gmail.com> 5242 5243 * unwind_protect.h, unwind_protect.cc (unwind_protect): Rewrite. 5244 Remove obsolete macros. Use a simple linked list. 5245 5246 * debug.cc (Fdbwhere): Update to new unwind_protect style. 5247 * dynamic-ld.cc (octave_dynamic_loader::do_load_oct, 5248 octave_dynamic_loader::do_load_mex): Ditto. 5249 * error.cc (Flasterror, Flasterr, error_2, warning_1): Ditto. 5250 * graphics.cc (base_graphics_object::remove_all_listeners, 5251 axes::update_axis_limits, gh_manager::do_execute_callback, 5252 Fdrawnow): Ditto. 5253 * help.cc (raw_help_from_file): Ditto. 5254 * input.cc (do_keyboard, Fkeyboard, get_debug_input): Ditto. 5255 * load-path.cc (load_path::do_set, execute_pkg_add_or_del, 5256 * ls-mat4.cc (save_mat_binary_data): Ditto. 5257 * ls-mat5.cc (read_mat5_binary_element): Ditto. 5258 * mex.cc (call_mex, mexGetVariable): Ditto. 5259 * oct-hist.cc (do_edit_history, do_run_history): Ditto. 5260 * octave.cc (execute_startup_files, execute_eval_option_code, 5261 execute_command_line_file): Ditto. 5262 * ov-builtin.cc (octave_builtin::do_multi_index_op): Ditto. 5263 * ov-class.cc (octave_class::subsasgn, octave_class::print_raw): 5264 Ditto. 5265 * ov-fcn-handle.cc (octave_fcn_handle::load_ascii, 5266 octave_fcn_handle::load_binary, octave_fcn_handle::load_hdf5): Ditto. 5267 * ov-list.cc (octave_list::print_raw): Ditto. 5268 * ov-mex-fcn.cc (octave_mex_function::do_multi_index_op): Ditto. 5269 * ov-struct.cc (octave_struct::print_raw): Ditto. 5270 * ov-usr-fcn.cc (octave_user_script::do_multi_index_op, 5271 octave_user_function::do_multi_index_op): Ditto. 5272 * pager.cc (flush_octave_stdout): Ditto. 5273 * pr-output.cc (Frats): Ditto. 5274 * pt-arg-list.cc (tree_argument_list::convert_to_const_vector): Ditto. 5275 5276 * pt-eval.cc (tree_evaluator::visit_simple_for_command, 5277 tree_evaluator::visit_complex_for_command, 5278 tree_evaluator::visit_while_command, 5279 tree_evaluator::visit_do_until_command): Update to new unwind_protect 5280 style. 5281 (do_catch_code): Remove. 5282 (tree_evaluator::visit_try_catch_command): Simplify. Don't register 5283 catch code for unwind_protect. 5284 (tree_evaluator::do_unwind_protect_cleanup_code): Make a 5285 tree_evaluator method. Update to new unwind_protect style. 5286 (tree_evaluator::visit_unwind_protect_command): Use explicit try/catch 5287 handling rather than inserting unsafe code into unwind_protect. 5288 5289 * pt-eval.h (tree_evaluator::do_unwind_protect_cleanup_code): New decl. 5290 * toplev.cc (main_loop): Update to new unwind_protect style. 5291 (run_command_and_return_output): Ditto. 5292 * utils.cc (Fisindex): Ditto. 5293 * variables.cc (generate_struct_completions, safe_symbol_lookup, 5294 do_who): Ditto. 5295 5296 * DLD-FUNCTIONS/cellfun.cc (Fcellfun): Ditto. 5297 * DLD-FUNCTIONS/daspk.cc (Fdaspk): Ditto. 5298 * DLD-FUNCTIONS/dasrt.cc (Fdasrt): Ditto. 5299 * DLD-FUNCTIONS/dassl.cc (Fdassl): Ditto. 5300 * DLD-FUNCTIONS/eigs.cc (Feigs): Ditto. 5301 * DLD-FUNCTIONS/lsode.cc (Flsode): Ditto. 5302 * DLD-FUNCTIONS/quad.cc (Fquad): Ditto. 5303 * DLD-FUNCTIONS/rand.cc (Frandn, Frande, Frandg, Frandp): Ditto. 5304 * DLD-FUNCTIONS/typecast.cc (get_data_and_bytesize, Ftypecast): Ditto. 5305 * DLD-FUNCTIONS/urlwrite.cc (Furlwrite, mput_directory, 5306 getallfiles, F__ftp_mget__): Ditto. 5307 53082010-01-05 Jaroslav Hajek <highegg@gmail.com> 5309 5310 * Cell.cc (Cell::cellstr_value): New method. 5311 * Cell.h (Cell::cellstr_value): Declare it. 5312 5313 * ov-cell.h (octave_cell::cellstr_cache): Declare as autopointer. 5314 (octave_cell::clear_cellstr_cache): Move here. 5315 * ov-cell.cc (octave_cell::is_cellstr): Only allocate the pointer, but 5316 don't actually create strings. 5317 (octave_cell::cellstr_value): Use cached test, call 5318 Cell::cellstr_value. 5319 (octave_cell::make_cellstr_cache): Remove. 5320 53212010-01-05 John W. Eaton <jwe@octave.org> 5322 5323 * Makefile.am (AM_CPPFLAGS): Include -I../libgnu in the list. 5324 53252010-01-04 Thorsten Meyer <thorsten.meyier@gmx.de> 5326 5327 * graphics.cc (graphics_object::set (const Octave_map&)): New function. 5328 (graphics_object::set (const Array<std::string>&, const Cell&, 5329 octave_idx_type)): New function. 5330 (graphics_object::set_value_or_default (const caseless_str&, 5331 const octave_value&)): New function. 5332 (graphics_object::set (const octave_value_list&)): 5333 Call set_value_or_default to set property values. 5334 (Fset): Handle struct and cell array arguments. 5335 New tests. 5336 * graphics.h.in (graphics_objects::set): Provide decls. 5337 53382010-01-04 Jaroslav Hajek <highegg@gmail.com> 5339 5340 * DLD-FUNCTIONS/strfind.cc (qs_search): Optionally discard overlaps. 5341 Return result as Array<octave_idx_type>. 5342 (Fstrfind): Use octave_value (Array<octave_idx_type>) constructor. 5343 (Fstrrep): New function. 5344 53452010-01-04 John W. Eaton <jwe@octave.org> 5346 5347 * lex.ll (can_be_command): New function. 5348 (handle_identifier): Use it. 5349 53502010-01-04 Marco Atzeri <marco_atzeri@yahoo.it> 5351 5352 * Makefile.am (install-oct): Write $(DESTDIR)$(...), not 5353 $(DESTDIR).$(...). 5354 53552010-01-02 Ben Abbott <bpabbott@mac.com> 5356 5357 * mappers.cc: Change test tolerance from 1e-16 to eps. 5358 53592009-12-30 Jaroslav Hajek <highegg@gmail.com> 5360 5361 * DLD-FUNCTIONS/cellfun.cc (scalar_query_helper): Remove. 5362 (can_extract): New overloaded helper function. 5363 (scalar_col_helper_nda): Rewrite using can_extract and 5364 octave_value_extract. Instantiate for integer types. 5365 (make_col_helper): Support integer types. 5366 5367 53682009-12-30 Jaroslav Hajek <highegg@gmail.com> 5369 5370 * DLD-FUNCTIONS/cellfun.cc (Fcellfun): Fix tests. 5371 53722009-12-28 Thomas Treichl <Thomas.Treichl@gmx.net> 5373 5374 * DLD-FUNCTIONS/md5sum.cc, DLD-FUNCTIONS/lookup.cc: Include 5375 config.h before another header file. 5376 53772009-12-27 John W. Eaton <jwe@octave.org> 5378 5379 * Makefile.am (xgl2ps.c): New file. 5380 (EXTRA_DIST): Include gl2ps.c in the list. 5381 (DIST_SRC): Include xgl2ps.c in the list instead of gl2ps.c. 5382 53832009-12-27 Jaroslav Hajek <highegg@gmail.com> 5384 5385 * ov.cc (decode_subscripts): Move to utils.cc. 5386 * utils.cc (decode_subscripts): New func. 5387 * utils.h: Declare it. 5388 * DLD-FUNCTIONS/cellfun.cc (Fcellfun): Optimize the 5389 `cellfun (@subsref, args, {subs}, "uniformoutput", true)' case. 5390 53912009-12-26 Jaroslav Hajek <highegg@gmail.com> 5392 5393 * gripes.cc (gripe_nonbraced_cs_list_assignment): New function. 5394 * gripes.h: Declare it. 5395 * ov-cell.cc (octave_cell::subsasgn): Use it here. 5396 * ov-struct.cc (octave_struct::subsasgn): Also here. 5397 * pt-idx.cc (tree_simple_assignment::rvalue1): And here. Check for 5398 single lhs value. 5399 54002009-12-25 Jaroslav Hajek <highegg@gmail.com> 5401 5402 * ov-str-mat.h (octave_char_matrix_str::is_matrix_type): Remove 5403 override. 5404 * data.cc (Fismatrix): Update test. 5405 54062009-12-25 Jaroslav Hajek <highegg@gmail.com> 5407 5408 * DLD-FUNCTIONS/strfind.cc: New source. 5409 * DLD-FUNCTIONS/module-files: Add it here. 5410 54112009-12-23 John W. Eaton <jwe@octave.org> 5412 5413 * lex.ll: Use %top block to include config.h. 5414 54152009-12-16 Jaroslav Hajek <highegg@gmail.com> 5416 5417 * DLD-FUNCTIONS/max.cc (do_cumminmax_body): Support also btyp_bool. 5418 54192009-12-22 Rob Mahurin <octave@tertiarysource.net> 5420 5421 * find-defun-files.sh: Use SED and EGREP as returned by configure. 5422 54232009-12-20 Shai Ayal <shaiay@users.sourceforge.net> 5424 5425 * DLD-FUNCTIONS/fltk_backend.cc (plot_sindow::set_name): New method. 5426 (figure_manager::set_name, figure_manage::do_set_name): New methods. 5427 (fltk_backend::property_changed): Handle change of figure title string. 5428 54292009-12-19 Rik <octave@nomad.inbox5.com> 5430 5431 * Makefile.am: Eliminate TOPDIR variable in favor of built-in automake 5432 variables of top_builddir and top_srcdir. 5433 54342009-12-18 David Grundberg <davidg@cs.umu.se> 5435 5436 * ov-usr-fcn.cc (octave_user_script::do_multi_index_op): 5437 Print script filename in script indexing errors. 5438 (octave_user_script::subsref): Ditto. 5439 54402009-12-18 John W. Eaton <jwe@octave.org> 5441 5442 * input.cc (get_debug_input): Don't attempt to get user input 5443 unless stdin is a tty. Force interactive input mode when 5444 reading debugging input. 5445 (octave_gets): Bypass readline if get_input_from_eval_string is true. 5446 5447 * input.cc, input.h (stdin_is_tty): New variable. 5448 * octave.cc (octave_main): Set it to true if stdin is not a tty. 5449 54502009-12-16 Jaroslav Hajek <highegg@gmail.com> 5451 5452 * DLD-FUNCTIONS/max.cc (do_minmax_red_op<boolNDArray>): New 5453 specialization. 5454 (do_minmax_body): Handle btyp_bool. 5455 54562009-12-16 Jaroslav Hajek <highegg@gmail.com> 5457 5458 * symtab.cc (symbol_table::cleanup): Call clear_variables rather than 5459 clear_all on the top and global scopes. 5460 54612009-12-16 John W. Eaton <jwe@octave.org> 5462 5463 * DLD-FUNCTIONS/fltk_backend.cc (F__init_fltk__): 5464 Add __remove_fltk__ to the list of atexit functions. 5465 (F__remove_fltk__): Wait fltk_maxtime instead of 10 seconds. 5466 54672009-12-15 John W. Eaton <jwe@octave.org> 5468 5469 * toplev.cc (do_goto_frame_relative): Stop searching at top 5470 stack frame even though it is not a function. 5471 54722009-12-15 Jaroslav Hajek <highegg@gmail.com> 5473 5474 * DLD-FUNCTIONS/cellfun.cc (Fcellfun): Preserve original nargout. Call 5475 functions with this value. Use nargout1 to possibly accumulate extra 5476 outputs, as long as they are defined. 5477 54782009-12-14 Jaroslav Hajek <highegg@gmail.com> 5479 5480 * ov-range.cc (octave_range::do_index_op): Defer single subscript to 5481 new Range methods. 5482 54832009-12-14 Jaroslav Hajek <highegg@gmail.com> 5484 5485 * symtab.cc (symbol_table::cleanup): New static method. 5486 * symtab.h: Declare it. 5487 * toplev.cc (clean_up_and_exit): Call it here. 5488 54892009-12-12 Shai Ayal <shaiay@users.sourceforge.net> 5490 5491 * DLD-FUNCTIONS/fltk_backend.cc (plot_window::toggle_grid, 5492 plot_window::axis_auto): Modify the axes of the correct figure. 5493 54942009-12-12 Shai Ayal <shaiay@users.sourceforge.net> 5495 5496 * DLD-FUNCTIONS/fltk_backend.cc (plot_window::plot_window): 5497 Handle case where window is created but not visible. Cache 5498 window label. 5499 (figure_manager::toggle_window_visibility, 5500 (figure_manager::do_toggle_window_visibility): New methods. 5501 (fltk_backend::property_change): Handle figure visibility change. 5502 55032009-12-11 John W. Eaton <jwe@octave.org> 5504 5505 * graphics.h.in (base_properties::all_dynamic_properties): 5506 No longer static. 5507 (base_properties::set (const caseless_str&, const octave_value&)): 5508 Only provide decl, not definition. 5509 (base_properties::set (const caseless_str&, const std::string&, 5510 const octave_value&)): Delete. 5511 (base_properties::dynamic_properties): Rename from 5512 all_dynamic_properties. No longer static. Now protected. 5513 (base_properties::has_dynamic_property, 5514 base_properties::dynamic_property_names, 5515 base_properties::set_dynamic): Omit class name argument. 5516 * graphics.cc (base_properties::all_dynamic_properties): 5517 Delete obsolete definition. 5518 (base_properties::dynamic_property_names): Now const. 5519 Omit class name argument. Simply return dynamic_properties set. 5520 (base_properties::has_dynamic_property): Omit class name argument. 5521 Simply return dynamic_properties set. Don't pass class name to 5522 dynamic_property_names function. 5523 (base_properties::set_dynamic): Omit class name argument. 5524 Dynamic_properties is no longer a map. 5525 5526 * genprops.awk: Omit class name from arguments of generated 5527 base_properties::all_property_names and base_properties::set 5528 functions. Don't pass class name to base_properties::set in 5529 generated derived class set functions. 5530 55312009-12-11 John W. Eaton <jwe@octave.org> 5532 5533 * Makefile.am (DOCSTRINGS): Use $(cp_update_rule) instead of 5534 cp -a --update. 5535 55362009-12-10 Rik <octave@nomad.inbox5.com> 5537 5538 * Makefile.am: distclean symbolic links for OCT_FILES 5539 55402009-12-10 Rik <octave@nomad.inbox5.com> 5541 5542 * Makefile.am: Copy DOCSTRINGS from srcdir to builddir if it does not 5543 exist. Enables VPATH builds. 5544 55452009-12-10 Jaroslav Hajek <highegg@gmail.com> 5546 5547 * ov-dld-fcn.h (octave_dld_function::get_shlib): New method. 5548 * ov-mex-fcn.h (octave_mex_function::get_shlib): New method. 5549 * defun.cc (get_current_shlib): New function. 5550 * defun-int.h: Declare it. 5551 (octave_auto_shlib): New class. 5552 55532009-12-10 Jaroslav Hajek <highegg@gmail.com> 5554 5555 * symtab.cc (out_of_date_check): Try also autoloads. 5556 55572009-12-09 Jaroslav Hajek <highegg@gmail.com> 5558 5559 * symtab.h (symbol_table::fcn_info::clear_autoload_function): 5560 New method. 5561 (symbol_table::clear_dld_function): New method. 5562 * dynamic-ld.cc (octave_shlib_list::do_remove): Switch order of stmts. 5563 (octave_mex_file_list::do_remove): Likewise. 5564 (do_clear_function): Call symbol_table::clear_dld_function. 5565 (octave_dynamic_loader::do_load_oct): Don't use 5566 octave_shlib::mark_relative. 5567 (octave_dynamic_loader::do_load_mex): Ditto. 5568 55692009-12-10 John W. Eaton <jwe@octave.org> 5570 5571 * file-io.cc (fopen_mode_to_ios_mode): Allow "+" at the end of 5572 modestrings like "rb+". 5573 55742009-12-10 John W. Eaton <jwe@octave.org> 5575 5576 * oct-stream.cc (BEGIN_C_CONVERSION, BEGIN_S_CONVERSION): 5577 Store characters directly in appropriately sized std::string object. 5578 (FINISH_CHARACTER_CONVERSION): Do store ASCII NUL values. 5579 55802009-12-09 John W. Eaton <jwe@octave.org> 5581 5582 * DLD-FUNCTIONS/fltk_backend.cc: Style fixes. 5583 55842009-12-09 Shai Ayal <shaiay@users.sourceforge.net> 5585 5586 * DLD-FUNCTIONS/fltk_backend.cc (plot_window::print): Print immediatly. 5587 55882009-12-09 John W. Eaton <jwe@octave.org> 5589 5590 * gl2ps-renderer.cc (draw_pixels): New template function. 5591 (opengl_renderer::draw_pixels): Use it. 5592 55932009-12-09 Shai Ayal <shaiay@users.sourceforge.net> 5594 5595 * gl2ps.c, gl2ps.h: Use upstream version gl2ps-1.3.5-svn-20091202. 5596 5597 * gl-render.cc (opengl_renderer::draw_pixels): New function. 5598 (opengl_renderer::draw_image): Correctly handle images with width 5599 or height of 1. Use draw_pixels. 5600 * gl-render.h (opengl_renderer::draw_pixels): Provide decl. 5601 5602 * gl2ps-renderer.cc (glps_renderer::draw_pixels): New function. 5603 * gl2ps-renderer.h (glps_renderer::draw_pixels): Provide decl. 5604 56052009-12-09 John W. Eaton <jwe@octave.org> 5606 5607 * load-save.cc: Call nstrftime instead of my_strftime. 5608 56092009-12-09 John W. Eaton <jwe@octave.org> 5610 5611 * load-save.cc: Include strftime.h. 5612 (write_header): Call my_strftime instead of strftime. 5613 5614 * Makefile.am (AM_CPPFLAGS): Add -I$(top_srcdir)/libgnu to the list. 5615 (OCTAVE_LIBS, OCTINTERP_LINK_DEPS, OCT_LINK_DEPS): 5616 Add ../libgnu/libgnu.la to the list. 5617 56182009-12-09 Rik <octave@nomad.inbox5.com> 5619 5620 * Makefile.am: Distribute DOCSTRINGS in tar.gz file 5621 56222009-12-07 Jaroslav Hajek <highegg@gmail.com> 5623 5624 * dirfns.cc (Ffnmatch): Simplify. 5625 56262009-12-08 Michael Goffioul <michael.goffioul@gmail.com> 5627 5628 * ov-ch-mat.cc: Add missing #include. 5629 * oct-stream.cc (do_read): Simplify. 5630 * gl-render.h: Undef min and max after #including windows.h. 5631 56322009-12-08 John W. Eaton <jwe@octave.org> 5633 5634 * Makefile.am (gendoc.cc): Don't pass $(srcdidr) to mkgendoc. 5635 56362009-12-07 John W. Eaton <jwe@octave.org> 5637 5638 * OPERATORS/op-b-b.cc, OPERATORS/op-b-bm.cc, 5639 OPERATORS/op-b-sbm.cc, OPERATORS/op-bm-b.cc, 5640 OPERATORS/op-bm-bm.cc, OPERATORS/op-bm-sbm.cc, 5641 OPERATORS/op-cdm-cdm.cc, OPERATORS/op-cdm-cm.cc, 5642 OPERATORS/op-cdm-cs.cc, OPERATORS/op-cdm-dm.cc, 5643 OPERATORS/op-cdm-m.cc, OPERATORS/op-cdm-s.cc, 5644 OPERATORS/op-cell.cc, OPERATORS/op-chm.cc, 5645 OPERATORS/op-class.cc, OPERATORS/op-cm-cdm.cc, 5646 OPERATORS/op-cm-cm.cc, OPERATORS/op-cm-cs.cc, 5647 OPERATORS/op-cm-dm.cc, OPERATORS/op-cm-m.cc, 5648 OPERATORS/op-cm-pm.cc, OPERATORS/op-cm-s.cc, 5649 OPERATORS/op-cm-scm.cc, OPERATORS/op-cm-sm.cc, 5650 OPERATORS/op-cs-cm.cc, OPERATORS/op-cs-cs.cc, 5651 OPERATORS/op-cs-m.cc, OPERATORS/op-cs-s.cc, 5652 OPERATORS/op-cs-scm.cc, OPERATORS/op-cs-sm.cc, 5653 OPERATORS/op-dm-cdm.cc, OPERATORS/op-dm-cm.cc, 5654 OPERATORS/op-dm-cs.cc, OPERATORS/op-dm-dm.cc, 5655 OPERATORS/op-dm-m.cc, OPERATORS/op-dm-s.cc, 5656 OPERATORS/op-dm-scm.cc, OPERATORS/op-dm-sm.cc, 5657 OPERATORS/op-dm-template.cc, OPERATORS/op-dms-template.cc, 5658 OPERATORS/op-double-conv.cc, OPERATORS/op-fcdm-fcdm.cc, 5659 OPERATORS/op-fcdm-fcm.cc, OPERATORS/op-fcdm-fcs.cc, 5660 OPERATORS/op-fcdm-fdm.cc, OPERATORS/op-fcdm-fm.cc, 5661 OPERATORS/op-fcdm-fs.cc, OPERATORS/op-fcm-fcdm.cc, 5662 OPERATORS/op-fcm-fcm.cc, OPERATORS/op-fcm-fcs.cc, 5663 OPERATORS/op-fcm-fdm.cc, OPERATORS/op-fcm-fm.cc, 5664 OPERATORS/op-fcm-fs.cc, OPERATORS/op-fcm-pm.cc, 5665 OPERATORS/op-fcs-fcm.cc, OPERATORS/op-fcs-fcs.cc, 5666 OPERATORS/op-fcs-fm.cc, OPERATORS/op-fcs-fs.cc, 5667 OPERATORS/op-fdm-fcdm.cc, OPERATORS/op-fdm-fcm.cc, 5668 OPERATORS/op-fdm-fcs.cc, OPERATORS/op-fdm-fdm.cc, 5669 OPERATORS/op-fdm-fm.cc, OPERATORS/op-fdm-fs.cc, 5670 OPERATORS/op-float-conv.cc, OPERATORS/op-fm-fcdm.cc, 5671 OPERATORS/op-fm-fcm.cc, OPERATORS/op-fm-fcs.cc, 5672 OPERATORS/op-fm-fdm.cc, OPERATORS/op-fm-fm.cc, 5673 OPERATORS/op-fm-fs.cc, OPERATORS/op-fm-pm.cc, 5674 OPERATORS/op-fs-fcm.cc, OPERATORS/op-fs-fcs.cc, 5675 OPERATORS/op-fs-fm.cc, OPERATORS/op-fs-fs.cc, 5676 OPERATORS/op-i16-i16.cc, OPERATORS/op-i32-i32.cc, 5677 OPERATORS/op-i64-i64.cc, OPERATORS/op-i8-i8.cc, 5678 OPERATORS/op-int-concat.cc, OPERATORS/op-int-conv.cc, 5679 OPERATORS/op-list.cc, OPERATORS/op-m-cdm.cc, 5680 OPERATORS/op-m-cm.cc, OPERATORS/op-m-cs.cc, 5681 OPERATORS/op-m-dm.cc, OPERATORS/op-m-m.cc, OPERATORS/op-m-pm.cc, 5682 OPERATORS/op-m-s.cc, OPERATORS/op-m-scm.cc, 5683 OPERATORS/op-m-sm.cc, OPERATORS/op-pm-cm.cc, 5684 OPERATORS/op-pm-fcm.cc, OPERATORS/op-pm-fm.cc, 5685 OPERATORS/op-pm-m.cc, OPERATORS/op-pm-pm.cc, 5686 OPERATORS/op-pm-scm.cc, OPERATORS/op-pm-sm.cc, 5687 OPERATORS/op-pm-template.cc, OPERATORS/op-range.cc, 5688 OPERATORS/op-s-cm.cc, OPERATORS/op-s-cs.cc, OPERATORS/op-s-m.cc, 5689 OPERATORS/op-s-s.cc, OPERATORS/op-s-scm.cc, 5690 OPERATORS/op-s-sm.cc, OPERATORS/op-sbm-b.cc, 5691 OPERATORS/op-sbm-bm.cc, OPERATORS/op-sbm-sbm.cc, 5692 OPERATORS/op-scm-cm.cc, OPERATORS/op-scm-cs.cc, 5693 OPERATORS/op-scm-m.cc, OPERATORS/op-scm-s.cc, 5694 OPERATORS/op-scm-scm.cc, OPERATORS/op-scm-sm.cc, 5695 OPERATORS/op-sm-cm.cc, OPERATORS/op-sm-cs.cc, 5696 OPERATORS/op-sm-m.cc, OPERATORS/op-sm-s.cc, 5697 OPERATORS/op-sm-scm.cc, OPERATORS/op-sm-sm.cc, 5698 OPERATORS/op-str-m.cc, OPERATORS/op-str-s.cc, 5699 OPERATORS/op-str-str.cc, OPERATORS/op-struct.cc, 5700 OPERATORS/op-ui16-ui16.cc, OPERATORS/op-ui32-ui32.cc, 5701 OPERATORS/op-ui64-ui64.cc, OPERATORS/op-ui8-ui8.cc: 5702 Delete Emacs local-variable settings. 5703 57042009-12-07 John W. Eaton <jwe@octave.org> 5705 5706 * OPERATORS/op-pm-sm.cc, OPERATORS/op-pm-scm.cc, 5707 OPERATORS/op-dm-sm.cc, OPERATORS/op-dm-scm.cc, 5708 OPERATORS/op-fs-fm.cc, OPERATORS/op-fs-fcm.cc, 5709 OPERATORS/op-fs-fcs.cc, OPERATORS/op-fm-fm.cc, 5710 OPERATORS/op-fm-fcs.cc, OPERATORS/op-fm-fcm.cc, 5711 OPERATORS/op-fcs-fs.cc, OPERATORS/op-fcs-fm.cc, 5712 OPERATORS/op-fcs-fcm.cc, OPERATORS/op-fcm-fs.cc, 5713 OPERATORS/op-fcm-fm.cc, OPERATORS/op-fm-fs.cc, 5714 OPERATORS/op-fcm-fcm.cc, OPERATORS/op-class.cc, 5715 OPERATORS/op-fcm-fcs.cc, OPERATORS/op-str-str.cc, 5716 OPERATORS/op-str-s.cc, OPERATORS/op-str-m.cc, 5717 OPERATORS/op-struct.cc, OPERATORS/op-sm-scm.cc, 5718 OPERATORS/op-sm-s.cc, OPERATORS/op-sm-sm.cc, 5719 OPERATORS/op-sm-cs.cc, OPERATORS/op-sm-cm.cc, 5720 OPERATORS/op-scm-sm.cc, OPERATORS/op-scm-scm.cc, 5721 OPERATORS/op-scm-s.cc, OPERATORS/op-scm-m.cc, 5722 OPERATORS/op-scm-cs.cc, OPERATORS/op-sm-m.cc, 5723 OPERATORS/op-sbm-sbm.cc, OPERATORS/op-scm-cm.cc, 5724 OPERATORS/op-sbm-bm.cc, OPERATORS/op-s-sm.cc, 5725 OPERATORS/op-s-scm.cc, OPERATORS/op-sbm-b.cc, 5726 OPERATORS/op-m-scm.cc, OPERATORS/op-m-sm.cc, 5727 OPERATORS/op-m-cm.cc, OPERATORS/op-int.h, 5728 OPERATORS/op-int-conv.cc, OPERATORS/op-int-concat.cc, 5729 OPERATORS/op-cs-sm.cc, OPERATORS/op-cs-scm.cc, 5730 OPERATORS/op-cm-sm.cc, OPERATORS/op-cs-cs.cc, 5731 OPERATORS/op-cm-m.cc, OPERATORS/op-cm-scm.cc, 5732 OPERATORS/op-cm-cm.cc, OPERATORS/op-chm.cc, 5733 OPERATORS/op-cell.cc, OPERATORS/op-bm-sbm.cc, 5734 OPERATORS/op-bm-bm.cc, OPERATORS/op-bm-b.cc, 5735 OPERATORS/op-b-sbm.cc, OPERATORS/op-fcs-fcs.cc: 5736 Untabify. 5737 57382009-12-07 Jaroslav Hajek <highegg@gmail.com> 5739 5740 * Makefile.am: Build OPT_HANDLERS before DEF_FILES. 5741 57422009-12-06 Rik <rik@nomad.inbox5.com> 5743 5744 * Makefile.am: Distribute DOCSTRINGS so that documentation will 5745 not require rebuild after merely untarring a distribution. 5746 57472009-12-05 Jaroslav Hajek <highegg@gmail.com> 5748 5749 * DLD-FUNCTIONS/lookup.cc (Flookup): Document complexity. 5750 57512009-12-05 Jaroslav Hajek <highegg@gmail.com> 5752 5753 * DLD-FUNCTIONS/lookup.cc (do_numeric_lookup): Rewrite. 5754 (Flookup): Simplify string part. Use Array<std::string>::lookup. 5755 57562009-12-04 John W. Eaton <jwe@octave.org> 5757 5758 * DLD-FUNCTIONS/urlwrite.cc (curl_handle::init): Always use 5759 CURLOPT_USERPWD instead of CURLOPT_USER and CURLOPT_PASSWD. 5760 57612009-12-04 John W. Eaton <jwe@octave.org> 5762 5763 * version.h.in (OCTAVE_API_VERSION_NUMBER): New macro. 5764 * Makefile.am (version.h): Substitute OCTAVE_API_VERSION_NUMBER. 5765 57662009-12-04 John W. Eaton <jwe@octave.org> 5767 5768 * Makefile.am (mkdefs): New arguments, srcdir and file. 5769 Generate output here. (.cc.df): Not here. 5770 57712009-12-04 John W. Eaton <jwe@octave.org> 5772 5773 * Makefile.am (BUILT_SOURCES): Include graphics-props.cc in the 5774 list. 5775 57762009-12-04 John W. Eaton <jwe@octave.org> 5777 5778 * Makefile.am (liboctinterp_la_SOURCES): Remove $(OPT_HANDLERS) 5779 from the list. 5780 57812009-12-03 John W. Eaton <jwe@octave.org> 5782 5783 * Makefile.am (CLEANFILES): Include DLD-FUNCTIONS/PKG_ADD, 5784 doc-files, gendoc.cc, gendoc$(BUILD_EXEEXT), graphics-props.cc, 5785 oct-parse.output, $(BUILT_NODISTFILES) in the list. Remove 5786 $(BUILT_SOURCES) from the list. (MAINTAINERCLEANFILES): New 5787 variable. (BUILT_DISTFILES): Remove oct-parse.cc and lex.cc 5788 from the list. (BUILT_NODISTFILES): Include defaults.h, 5789 graphics.h, oct-conf.h, oct-errno.cc, ops.cc, mxarray.h, and 5790 version.h in the list. Remove $(OPT_INC) from the list. 5791 (BUILT_SOURCES): Include mxarray.h and version.h in the list. 5792 (EXTRA_DIST): Include version.h.in in the list. (.cc.df): Don't 5793 silence rules. Omit $(srcdir) from XDEFUN_FILE_NAME. 5794 ($(DEF_FILES)): Depend on mkdefs and Makefile. (mxarray.h, 5795 version.h): New rules. (DLD-FUNCTIONS/PKG_ADD): Don't silence 5796 rules. (builtins.cc, DOCSTRINGS, gendoc.cc, ops.cc, 5797 $(OPT_HANDLERS)) oct-errno.cc, oct-gperf.h): Don't silence 5798 rules. (doc-files, defaults.h, oct-conf.h): Don't silence 5799 rules. 5800 5801 * mxarray.h.in, version.h.in: Use % to delimit substitutions, 5802 not @. 5803 5804 * mkbuiltins: Operate on a list of files passed as arguments. 5805 5806 * genprops.awk: Write either graphics.h or graphics-props.cc to 5807 stdout instead of graphics.h simultaneously with 5808 graphics-props.cc ot a file. * Makefile.am (graphics.h, 5809 graphics-props.cc): Split into two separate rules. 5810 5811 * find-defun-files.sh: Omit directory part from .df file names. 5812 Operate on .ll and .yy files instead of generated .cc files. 5813 58142009-12-02 Rik <rik@nomad.inbox5.com> 5815 5816 * DLD-FUNCTIONS/urlwrite.cc: Correctly compile code even when 5817 libcurl is not present according to configure. 5818 58192009-12-01 Jaroslav Hajek <highegg@gmail.com> 5820 5821 * ov-bool-mat.h (octave_bool_matrix::octave_bool_matrix (const 5822 boolNDArray&, const idx_vector&)): New constructor. 5823 * ov-re-mat.h (octave_bool_matrix::octave_bool_matrix (const 5824 NDArray&, const idx_vector&)): Simplify. 5825 * ov.cc (octave_value::octave_value (const idx_vector&)): Allow 5826 the mask case. 5827 * DLD-FUNCTIONS/find.cc (Ffind): Explicitly call unmask. 5828 58292009-11-30 Kacper Kowalik <xarthisius.kk@gmail.com> 5830 5831 * oct-hdf5.h: Drop force the use of the v1.6 API * ls-hdf5.cc, 5832 ov-base-int.cc, ov-bool-mat.cc, ov-bool-sparse.cc, ov-bool.cc, 5833 ov-cell.cc, ov-class.cc, ov-complex.cc, ov-cx-mat.cc, 5834 ov-cx-sparse.cc, ov-fcn-handle.cc, ov-fcn-inline.cc, 5835 ov-float.cc, ov-flt-complex.cc, ov-flt-cx-mat.cc, 5836 ov-flt-re-mat.cc, ov-list.cc, ov-range.cc, ov-re-mat.cc, 5837 ov-re-sparse.cc, ov-scalar.cc, ov-str-mat.cc, ov-struct.cc: 5838 Allow v1.8 API versions of hdf5 functions. 5839 58402009-11-30 John W. Eaton <jwe@octave.org> 5841 5842 * DLD-FUNCTIONS/fft2.cc (Fifft2): Docstring fix. 5843 58442009-11-29 Jaroslav Hajek <highegg@gmail.com> 5845 5846 * pt-unop.cc (tree_prefix_expression::rvalue1): Try to use 5847 octave_value::do_non_const_unary_op. 5848 58492009-11-29 Jaroslav Hajek <highegg@gmail.com> 5850 5851 * DLD-FUNCTIONS/urlwrite.cc (curl_handle::init): Use 5852 CURLOPT_USERPWD if libcurl ver < 7.19.0. 5853 58542009-11-28 Shai Ayal <shaiay@users.sourceforge.net> 5855 5856 * gl-render.cc (opengl_renderer::draw_image): Handle indexed 5857 images. 5858 58592009-11-28 Shai Ayal <shaiay@users.sourceforge.net> 5860 5861 * gl-render.h (opengl_renderer::draw): Draw children from end of 5862 list to preserve correct stacking order (first child should be 5863 on top). 5864 5865 * graphics.cc (maybe_set_children): Store sorted child lists. 5866 58672009-11-27 Kacper Kowalik <xarthisius.kk@gmail.com> 5868 5869 * ls-hdf5.cc (have_h5giterate_bug): Drop this group iteration 5870 flag for buggy pre 1.2.2 versions of hdf5. * ov-base-int.cc 5871 (octave_base_int_matrix<T>::load_hdf5) 5872 octave_base_int_scalar<T>::load_hdf5), ov-base-int.h 5873 (octave_base_int_matrix<T>::load_hdf5, 5874 octave_base_int_scalar<T>::load_hdf5), ov-base.cc 5875 (octave_base_value::load_hdf5), ov-base.h 5876 (octave_base_value::load_hdf5), ov-bool-mat.cc 5877 (octave_bool_matrix::load_hdf5), ov-bool-mat.h 5878 (octave_bool_matrix::load_hdf5), ov-bool-sparse.cc 5879 (octave_sparse_bool_matrix::load_hdf5), ov-bool-sparse.h 5880 (octave_sparse_bool_matrix::load_hdf5), ov-bool.cc 5881 (octave_bool::load_hdf5), ov-bool.h (octave_bool::load_hdf5), 5882 ov-cell.cc (octave_cell::load_hdf5), ov-cell.h 5883 (octave_cell::load_hdf5), ov-class.cc (octave_class::load_hdf5), 5884 ov-class.h (octave_class::load_hdf5), ov-complex.cc 5885 (octave_complex::load_hdf5), ov-complex.h 5886 (octave_complex::load_hdf5), ov-cx-mat.cc 5887 (octave_complex_matrix::load_hdf5), ov-cx-mat.h 5888 (octave_complex_matrix::load_hdf5), ov-cx-sparse.cc 5889 (octave_sparse_complex_matrix::load_hdf5), ov-cx-sparse.h 5890 (octave_sparse_complex_matrix::load_hdf5), ov-fcn-handle.cc 5891 (octave_fcn_handle::load_hdf5), ov-fcn-handle.h 5892 (octave_fcn_handle::load_hdf5), ov-fcn-inline.cc 5893 (octave_fcn_inline::load_hdf5), ov-fcn-inline.h 5894 (octave_fcn_inline::load_hdf5), ov-float.cc 5895 (octave_float_scalar::load_hdf5), ov-float.h 5896 (octave_float_scalar::load_hdf5), ov-flt-complex.cc 5897 (octave_float_complex::load_hdf5), ov-flt-complex.h 5898 (octave_float_complex::load_hdf5), ov-flt-cx-mat.cc 5899 (octave_float_complex_matrix::load_hdf5), ov-flt-cx-mat.h 5900 (octave_float_complex_matrix::load_hdf5), ov-flt-re-mat.cc 5901 (octave_float_matrix::load_hdf5), ov-flt-re-mat.h 5902 (octave_float_matrix::load_hdf5), ov-list.cc 5903 (octave_list::load_hdf5), ov-list.h (octave_list::load_hdf5), 5904 ov-range.cc (octave_range::load_hdf5), ov-range.h 5905 (octave_range::load_hdf5), ov-re-mat.cc 5906 (octave_matrix::load_hdf5), ov-re-mat.h 5907 (octave_matrix::load_hdf5), ov-re-sparse.cc 5908 (octave_sparse_matrix::load_hdf5), ov-re-sparse.h 5909 (octave_sparse_matrix::load_hdf5), ov-scalar.cc 5910 (octave_scalar::load_hdf5), ov-scalar.h 5911 (octave_scalar::load_hdf5), ov-str-mat.cc 5912 (octave_char_matrix_str::load_hdf5), ov-str-mat.h 5913 (octave_char_matrix_str::load_hdf5), ov-struct.cc 5914 (octave_struct::load_hdf5), ov-struct.h 5915 (octave_struct::load_hdf5), ov.h (octave_value::load_hdf5): 5916 Remove have_hg5iterate_bug from the call to load_hdf5. 5917 * ov-cell.cc (octave_bool::load_hdf5), ov-class.cc 5918 (octave_class::load_hdf5), ov-fcn-handle.cc 5919 (octave_fcn_handle::load_hdf5), ov-list.cc 5920 (octave_list::load_hdf5), ov-struct.cc 5921 (octave_struct::load_hdf5): Remove HAVE_H5GGET_NUM_OBJS cruft 5922 for old hdf5 versions. 5923 59242009-11-27 David Bateman <dbateman@free.fr> 5925 5926 * DLD-FUNCTIONS/urlwrite.cc (curl_handle, curl_handles): Add 5927 classes to manage the open curl connections. (F__ftp__, 5928 F__ftp_pwd__, F__ftp_cwd__, F__ftp_dir__, F__ftp_ascii__, 5929 F__ftp_binary__, F__ftp_close__, F__ftp_mode__, F__ftp_delete__, 5930 F__ftp_rmdir__, F__ftp_mkdir__, F__ftp_rename__, F__ftp_mput__, 5931 F__ftp_mget__): New functions. 5932 59332009-11-27 Jaroslav Hajek <highegg@gmail.com> 5934 5935 * ov.cc (octave_value::octave_value (const index_vector&)): Take 5936 a copy if idx to allow mutation. 5937 59382009-11-26 Jaroslav Hajek <highegg@gmail.com> 5939 5940 * DLD-FUNCTIONS/dot.cc (Fdot): Update docs. 5941 59422009-11-26 Jaroslav Hajek <highegg@gmail.com> 5943 5944 * DLD-FUNCTIONS/dot.cc: New source. 5945 * DLD-FUNCTIONS/module-files: Include it. 5946 59472009-11-26 Jaroslav Hajek <highegg@gmail.com> 5948 5949 * data.cc (Fismatrix): Return true for empty matrices as well. 5950 59512009-11-25 Jaroslav Hajek <highegg@gmail.com> 5952 5953 * DLD-FUNCTIONS/chol.cc (get_chol_l): New helper function. 5954 (Fchol): Use it to set MatrixType for lower triangular factors 5955 as well. Use default octave_idx_type->octave_value conversion. 5956 59572009-11-24 Jaroslav Hajek <highegg@gmail.com> 5958 5959 * data.cc (do_accumarray_sum): Simplify. 5960 59612009-11-24 Jaroslav Hajek <highegg@gmail.com> 5962 5963 * ov-struct.cc (octave_struct::save_binary): Save dimensions for 5964 structs. (octave_struct::load_binary): Load dimensions if 5965 present, use 1x1 otherwise. 5966 59672009-11-23 Jaroslav Hajek <highegg@gmail.com> 5968 5969 * data.cc (Fmerge): Add missing parentheses. 5970 59712009-11-23 Jaroslav Hajek <highegg@gmail.com> 5972 5973 * ov-complex.h (octave_complex::bool_value, 5974 octave_complex::bool_array_value): New methods. 5975 * ov-flt-complex.h (octave_float_complex::bool_value, 5976 octave_float_complex::bool_array_value): New methods. 5977 * ov-cx-mat.cc (octave_complex_matrix::bool_array_value): New 5978 method. * ov-cx-mat.h: Declare it. 5979 * ov-flt-cx-mat.cc (octave_float_complex_matrix::bool_array_value): 5980 New method. 5981 * ov-flt-cx-mat.h: Declare it. 5982 59832009-11-23 Jaroslav Hajek <highegg@gmail.com> 5984 5985 * ov-struct.cc (octave_struct::save_ascii): Save dimensions for 5986 structs. (octave_struct::load_ascii): Load dimensions if 5987 present, use 1x1 otherwise. 5988 59892009-11-20 Jaroslav Hajek <highegg@gmail.com> 5990 5991 * data.cc (Fmerge): Correct query for logical masks. 5992 59932009-11-20 Jaroslav Hajek <highegg@gmail.com> 5994 5995 * utils.cc (dims_to_numel): Fallback to index_vector query for 5996 non-numeric types. 5997 59982009-11-20 Jaroslav Hajek <highegg@gmail.com> 5999 6000 * ov-bool.h (octave_bool::is_numeric_type): New overload. 6001 * ov-bool-mat.h (octave_bool-matrix::is_numeric_type): New overload. 6002 60032009-11-19 Jaroslav Hajek <highegg@gmail.com> 6004 6005 * ov-base.h (unary_mapper_t): New member: umap_erfinv. 6006 * ov-base.c (octave_base_value::get_umap_name): Add "erfinv" here. 6007 * ov.h (octave_value::erfinv): New method. 6008 * ov-scalar.cc (octave_scalar::map): Handle umap_erfinv. 6009 * ov-float.cc (octave_float::map): Ditto. 6010 * ov-re-mat.cc (octave_matrix::map): Ditto. 6011 * ov-flt-re-mat.cc (octave_float_matrix::map): Ditto. 6012 * ov-re-sparse.cc (octave_sparse_matrix::map): Ditto. 6013 * mappers.cc (Ferfinv): New DEFUN. 6014 60152009-11-14 Shai Ayal <shaiay@users.sourceforge.net> 6016 6017 * gl-render.cc (opengl_renderer::text_to_pixels): New function 6018 from code in render_text to produce the pixels and compute 6019 bounding box. (opengl_renderer::render_text): Call 6020 text_to_pixels to compute rotation mode and bounding box. 6021 * gl-renger.h (opengl_renderer::text_to_pixels): Provide decl. 6022 * gl2ps-renderer.cc (glps_renderer::render_text): Call 6023 text_to_pixels to compute bounding box. 6024 (glps_renderer::set_font): Call opengl_renderer::set_font. 6025 60262009-11-18 Michael Godfrey <godfrey@isl.stanford.edu> 6027 6028 * txt-eng-ft.cc: Relax font match test. 6029 60302009-11-18 Jaroslav Hajek <highegg@gmail.com> 6031 6032 * DLD-FUNCTIONS/bsxfun.cc (bsxfun_builtin_op): New member: 6033 bsxfun_builtin_power. (bsxfun_builtin_names): Include "power". 6034 (do_bsxfun_real_pow): New static function. (maybe_fill_table): 6035 Register power handlers. 6036 60372009-11-13 Jaroslav Hajek <highegg@gmail.com> 6038 6039 * ov-complex.cc (octave_complex::try_narrowing_conversion): 6040 Don't check signbit. 6041 * ov-flt-complex.cc 6042 (octave_float_complex::try_narrowing_conversion): Ditto. 6043 * ov-cx-mat.cc (octave_complex_matrix::try_narrowing_conversion): 6044 Simplify. Don't check signbit. 6045 * ov-flt-cx-mat.cc 6046 (octave_float_complex_matrix::try_narrowing_conversion): Ditto. 6047 60482009-11-17 Jaroslav Hajek <highegg@gmail.com> 6049 6050 * ov-re-mat.cc (do_rc_map): New static function. 6051 (octave_matrix::map): Use it here. 6052 * ov-flt-re-mat.cc (do_rc_map): New static function. 6053 (octave_float_matrix::map): Use it here. 6054 60552009-11-17 Jaroslav Hajek <highegg@gmail.com> 6056 6057 * DLD-FUNCTIONS/balance.cc: Fix docs. 6058 60592009-11-13 John W. Eaton <jwe@octave.org> 6060 6061 * Makefile.am (liboctinterp_la_CPPFLAGS): Define. 6062 60632009-11-13 Joel Keay <keay@ou.edu> 6064 6065 * graphics.h.in (image::properties::init): Also allow single, 6066 int16, and uint16 data types. 6067 60682009-11-13 Jaroslav Hajek <highegg@gmail.com> 6069 6070 * ov-base.h (unary_mapper_t): Move to octave_base_value. 6071 * ov.h: Partially revert to c657c056240d. 6072 (FORWARD_MAPPER): Update to use octave_base_value::map. 6073 (octave_value::map): Ditto. 6074 * mappers.cc: Revert to c657c056240d. 6075 * data.cc: Ditto. 6076 * Cell.h, Cell.cc: Ditto. 6077 * ov-cell.cc (octave_cell::map): Rewrite. 6078 * ov-base-sparse.cc (octave_base_sparse::map): New method. 6079 * ov-base-sparse.h: Declare it. 6080 * ov-re-sparse.cc (octave_sparse_matrix::map): Use it as a fallback. 6081 * ov-cx-sparse.cc (octave_sparse_complexmatrix::map): Ditto. 6082 60832009-11-12 Jaroslav Hajek <highegg@gmail.com> 6084 6085 * ov-base.h (unary_mapper_t): New enum. 6086 (octave_base_value::map (unary_mapper_t)): New method. 6087 (octave_base_value::abs, octave_base_value::acos, 6088 octave_base_value::acosh, octave_base_value::angle, 6089 octave_base_value::arg, octave_base_value::asin, 6090 octave_base_value::asinh, octave_base_value::atan, 6091 octave_base_value::atanh, octave_base_value::ceil, 6092 octave_base_value::conj, octave_base_value::cos, 6093 octave_base_value::cosh, octave_base_value::erf, 6094 octave_base_value::erfc, octave_base_value::exp, 6095 octave_base_value::expm1, octave_base_value::finite, 6096 octave_base_value::fix, octave_base_value::floor, 6097 octave_base_value::gamma, octave_base_value::imag, 6098 octave_base_value::isinf, octave_base_value::isna, 6099 octave_base_value::isnan, octave_base_value::lgamma, 6100 octave_base_value::log, octave_base_value::log2, 6101 octave_base_value::log10, octave_base_value::log1p, 6102 octave_base_value::real, octave_base_value::round, 6103 octave_base_value::roundb, octave_base_value::signum, 6104 octave_base_value::sin, octave_base_value::sinh, 6105 octave_base_value::sqrt, octave_base_value::tan, 6106 octave_base_value::tanh): Remove. 6107 6108 * ov.h (octave_value::map (unary_mapper_t)): New method. 6109 (octave_value::abs, octave_value::acos, octave_value::acosh, 6110 octave_value::angle, octave_value::arg, octave_value::asin, 6111 octave_value::asinh, octave_value::atan, octave_value::atanh, 6112 octave_value::ceil, octave_value::conj, octave_value::cos, 6113 octave_value::cosh, octave_value::erf, octave_value::erfc, 6114 octave_value::exp, octave_value::expm1, octave_value::finite, 6115 octave_value::fix, octave_value::floor, octave_value::gamma, 6116 octave_value::imag, octave_value::isinf, octave_value::isna, 6117 octave_value::isnan, octave_value::lgamma, octave_value::log, 6118 octave_value::log2, octave_value::log10, octave_value::log1p, 6119 octave_value::real, octave_value::round, octave_value::roundb, 6120 octave_value::signum, octave_value::sin, octave_value::sinh, 6121 octave_value::sqrt, octave_value::tan, octave_value::tanh): Remove. 6122 6123 * ov-scalar.h, ov-scalar.cc (octave_scalar): Update. 6124 * ov-float.h, ov-float.cc (octave_float): Update. 6125 6126 * ov-complex.h, ov-complex.cc (octave_complex): Update. 6127 * ov-flt-complex.h, ov-flt-complex.cc (octave_float_complex): 6128 Update. 6129 6130 * ov-re-matrix.h, ov-re-matrix.cc (octave_matrix): Update. 6131 * ov-flt-re-matrix.h, ov-flt-re-matrix.cc (octave_float_matrix): Update. 6132 * ov-cx-matrix.h, ov-cx-matrix.cc (octave_complex_matrix): Update. 6133 * ov-flt-cx-matrix.h, ov-flt-cx-matrix.cc 6134 (octave_float_complex_matrix): Update. 6135 6136 * ov-re-sparse.h, ov-re-sparse.cc (octave_sparse_matrix): Update. 6137 * ov-cx-sparse.h, ov-cx-sparse.cc (octave_sparse_complex_matrix): 6138 Update. 6139 6140 * ov-re-diag.h, ov-re-diag.cc (octave_diag_matrix): Update. 6141 * ov-flt-re-diag.h, ov-flt-re-diag.cc (octave_float_diag_matrix): 6142 Update. 6143 * ov-cx-diag.h ov-cx-diag.cc (octave_complex_diag_matrix): Update. 6144 * ov-flt-cx-diag.h, ov-flt-cx-diag.cc 6145 (octave_float_complex_diag_matrix): Update. 6146 6147 * ov-range.h (octave_range): Update. 6148 * ov-intx.h (OCTAVE_VALUE_INT_MATRIX_T): Update. 6149 (OCTAVE_VALUE_INT_SCALAR_T): Update. 6150 6151 * ov-perm.h (octave_perm_matrix): Update. 6152 * ov-bool.h (octave_bool): Update. 6153 * ov-bool-mat.h (octave_bool_matrix): Update. 6154 * ov-ch-mat.h (octave_char_matrix): Update. 6155 6156 * mappers.cc (Fabs, Facos, Facosh, Fangle, Farg, Fasin, Fasinh, 6157 Fatan, Fatanh, Fceil, Fconj, Fcos, Fcosh, Ferf, Ferfc, Fexp, 6158 Fexpm1, Ffinite, Ffix, Ffloor, Fgamma, Fimag, Fisinf, Fisna, 6159 Fisnan, Flgamma, Flog, Flog2, Flog10, Flog1p, Freal, Fround, 6160 Froundb, Fsignum, Fsin, Fsinh, Fsqrt, Ftan, Ftanh, Fisalnum, 6161 Fisalpha, Fisascii, Fiscntrl, Fisdigit, Fisgraph, Fislower, 6162 Fisprint, Fispunct, Fisspace, Fisupper, Fisxdigit, Ftoascii, 6163 Ftolower, Ftoupper): Update. 6164 61652009-11-11 John W. Eaton <jwe@octave.org> 6166 6167 * load-path.cc (load_path::do_find_all_first_of): Take advantage 6168 of string_vector (std::list<std:string>) constructor. 6169 61702009-11-11 John W. Eaton <jwe@octave.org> 6171 6172 * help.cc (do_get_help_text_from_file, 6173 Fget_help_text_from_file): New functions. 6174 (do_get_help_text): Pass NAME by const reference. 6175 * utils.cc (find_dir_in_path): New optional argument "all". 6176 * load-path.cc (load_path::do_find_matching_dirs): New function. 6177 (load_path::do_find_dir): Perform match on absolute directory 6178 names, but return name as it appears in dir_info_list. Adjust 6179 dname_len after stripping directory separator. 6180 * load-path.h (load_path::do_find_matching_dirs): Provide decl. 6181 (load_path::find_matching_dirs): New function. 6182 61832009-11-11 Shai Ayal <shaiay@users.sourceforge.net> 6184 6185 * DLD-FUNCTIONS/fltk_backend.cc (Fl_Gl_Window::draw): 6186 If zooming, call overlay. 6187 (Fl_Gl_Window::overlay): Rename from draw_overlay. Don't return 6188 early if zooming. Don't call valid and conditionally call 6189 setup_veiwport. Set overlay color and draw line around zoom box. 6190 (Fl_Gl_Window::zoom_box_vertex): New function. 6191 (Fl_Gl_Window::pixel2status): Call canvas->redraw, not 6192 canvas->redraw_overlay. 6193 61942009-11-10 Shai Ayal <shaiay@users.sourceforge.net> 6195 6196 * gl2ps-renderer.cc, gl2ps-renderer.h, gl2ps.c, gl2ps.h: New 6197 files. PostScript backend based on opengl_renderer and gl2ps. 6198 * Makefile.am (octinclude_HEADERS): Add gl2ps.h to the list. 6199 (DIST_SRC): Add gl2ps.c to the list. 6200 * gl-render.cc (opengl_renderer::render_text): Rename from 6201 opengl_renderer::draw_text. 6202 (opengl_renderer::draw_figure, opengl_renderer::draw_axes, 6203 opengl_renderer::draw_line, opengl_renderer::draw_surface, 6204 opengl_renderer::draw_patch, opengl_renderer::draw_hggroup, 6205 opengl_renderer::draw_text, opengl_renderer::draw_image): 6206 Rename from overloaded opengl_renderer::draw. 6207 * gl-render.h: Fix decls. 6208 6209 * DLD-FUNCTIONS/fltk_backend.cc (OpenGL_fltk::print): New function. 6210 (OpenGL_fltk::print_filename): New data member. 6211 (OpenGL_fltk::draw): Add support for printing. 6212 (fltk_backend::print_figure): Call figure_manager::print. 6213 62142009-11-10 John W. Eaton <jwe@octave.org> 6215 6216 * file-io.cc (Fferror): Update doc string. 6217 62182009-11-10 David Grundberg <davidg@cs.umu.se> 6219 6220 * oct-strstrm.h (octave_base_strstream::tell): Declare virtual. 6221 (octave_istrstream::tell): New method. 6222 62232009-11-10 John W. Eaton <jwe@octave.org> 6224 6225 * Makefile.am, OPERATORS/module.mk, TEMPLATE-INST/module.mk, 6226 find-defun-files.sh, version.h.in, 6227 DLD-FUNCTIONS/config-module.awk, DLD-FUNCTIONS/config-module.sh, 6228 DLD-FUNCTIONS/module-files: New files. 6229 * Makefile.in, version.h: Delete. 6230 * lex.ll: Rename from lex.l. Include oct-parse.h instead of y.tab.h. 6231 * parse.yy: Rename from parse.y 6232 * mkbuiltins, mkgendoc: Don't require filenames to start with a 6233 "." at beginning of line. 6234 6235 * oct-conf.h.in (OCTAVE_CONF_LAPACK_LIBS): Delete macro. 6236 * toplev.cc (octave_config_info): Don't include LAPACK_LIBS in the 6237 struct. 6238 62392009-11-10 Jaroslav Hajek <highegg@gmail.com> 6240 6241 * ov-class.cc (octave_class::numel): Use base version if called 6242 from built-in assignment. 6243 (octave_class::size): Ditto. 6244 62452009-11-10 Jaroslav Hajek <highegg@gmail.com> 6246 6247 * DLD-FUNCTIONS/max.cc (Fcummin, Fcummax): Simplify examples in 6248 docs. 6249 62502009-11-09 Jaroslav Hajek <highegg@gmail.com> 6251 6252 * ov-base.cc (btyp_mixed_numeric): New function. 6253 * ov-base.h: Declare it. 6254 (btyp_isnumeric): New inline function. 6255 * DLD_FUNCTIONS/max.cc (do_minmax_red_op, do_minmax_bin_op, 6256 do_minmax_body, do_cumminmax_red_op): New functions. 6257 (MINMAX_DOUBLE_SBODY, MINMAX_DOUBLE_BODY, MINMAX_SINGLE_SBODY, 6258 MINMAX_SINGLE_BODY, MINMAX_SPARSE_BODY, MINMAX_INT_SBODY, 6259 MINMAX_INT_BODY, MINMAX_BODY, CUMMINMAX_BODY): Remove. 6260 (Fmin, Fmax, Fcummin, Fcummax): Update. 6261 62622009-11-09 Jaroslav Hajek <highegg@gmail.com> 6263 6264 * ov.h: Add sparse matrix extractors. 6265 62662009-11-09 John W. Eaton <jwe@octave.org> 6267 6268 * DLD-FUNCTIONS/__delaunayn__.cc, DLD-FUNCTIONS/__dsearchn__.cc, 6269 DLD-FUNCTIONS/__voronoi__.cc, DLD-FUNCTIONS/convhulln.cc, 6270 DLD-FUNCTIONS/qz.cc, DLD-FUNCTIONS/tsearch.cc: Correctly include 6271 config.h, don't include oct.h, etc. 6272 62732009-11-08 Jaroslav Hajek <highegg@gmail.com> 6274 6275 * DLD-FUNCTIONS/bsxfun.cc: Add missing copyright. (fill_table): 6276 Mark table as initialized. 6277 62782009-11-06 Jaroslav Hajek <highegg@gmail.com> 6279 6280 * pt-assign.cc (tree_multi_assignment::rvalue): Don't skip 6281 zero-length lvalue cs-lists. 6282 62832009-11-06 Jaroslav Hajek <highegg@gmail.com> 6284 6285 * ov-cell.cc (octave_cell::print_raw): Indent properly. Use 6286 newline rather than '\n'. 6287 62882009-11-03 John W. Eaton <jwe@octave.org> 6289 6290 * graphics.h.in (root_figure): Add commandwindowsize, diary, 6291 diaryfile, echo, format, language, monitorpositions, 6292 pointerlocation, pointerwindow, and recursionlimit properties. 6293 62942009-11-03 David Grundberg <davidg@cs.umu.se> 6295 6296 * graphics.h.in (root_figure): Add FormatSpacing property. 6297 62982009-11-03 David Grundberg <davidg@cs.umu.se> 6299 6300 * ov-class.cc (octave_class::size): Allow and ignore extra 6301 outargs from user-defined size methods. 6302 63032009-11-03 David Grundberg <davidg@cs.umu.se> 6304 6305 * ov-class.cc (make_idx_args): Call user-defined 6306 subsref/subsasgn with 1xN structs instead of Nx1. 6307 63082009-11-02 Jaroslav Hajek <highegg@gmail.com> 6309 6310 * ov-class.cc (octave_class::unique_parent_class): New method. 6311 (octave_class::subsasgn): Use it here. 6312 * ov-class.h: Declare it. 6313 63142009-11-01 John W. Eaton <jwe@octave.org> 6315 6316 * data.cc (get_sort_mode_option): New function. 6317 (Fissorted): Handle ascending or descending option. 6318 63192009-11-01 John W. Eaton <jwe@octave.org> 6320 6321 * load-path.cc (load_path::dir_info::update): Always initialize 6322 relative directories that are not yet included in abs_dir_cache. 6323 63242009-10-29 John W. Eaton <jwe@octave.org> 6325 6326 * parse.y (finish_function): Return function object unless 6327 parsing function file. 6328 63292009-10-23 Jaroslav Hajek <highegg@gmail.com> 6330 6331 * DLD-FUNCTIONS/tril.cc: New source. * Makefile.in: Include it. 6332 63332009-10-22 Jaroslav Hajek <highegg@gmail.com> 6334 6335 * error.cc (verror (bool, std::ostream&, ..., bool)): Add 6336 optional with_cfn flag. If specified, prepend current function 6337 name (unless already there). 6338 (error_1): Accept with_cfn flag and pass it on. 6339 (error_2): Ditto. 6340 (verror_with_cfn, error_with_cfn, error_with_id_cfn, 6341 verror_with_id_cfn): New functions. 6342 * error.h: Declare them. 6343 * octave.cc (lo_error_handler): Call verror_with_cfn. 6344 * ov-base.cc (INT_CONV_METHOD): Call error_with_cfn. 6345 * ov.cc (octave_value::int_vector_value, octave_idx_type_vector_value): 6346 Call error_with_cfn. 6347 63482009-10-21 Rik <octave@nomad.inbox5.com> 6349 6350 * variables.cc: Correct use of deftypefnx for who and whos. 6351 63522009-10-21 John W. Eaton <jwe@octave.org> 6353 6354 * load-path.h (load_path::dir_path::dir_time_last_checked): New 6355 field. (load_path::dir_path::dir_path, 6356 load_path::dir_path::operator=): Initialize and copy 6357 dir_time_last_checked. 6358 * load-path.cc (load_path::dir_info::initialize): Store time of 6359 last update. 6360 (load_path::dir_info::update): Check directory modification time 6361 against time of last update, within resolution of filesystem 6362 time stamps. Suggested by Judd Storrs <storrsjm@email.uc.edu>. 6363 63642009-10-20 Jaroslav Hajek <highegg@gmail.com> 6365 6366 * ov-base.h (builtin_type_t): Declare also btyp_num_types. 6367 * DLD-FUNCTIONS/bsxfun.cc (bsxfun_builtin_op): New enum. 6368 (bsxfun_handler): New typedef. 6369 (bsxfun_builtin_names, bsxfun_handler_table): New variables. 6370 (bsxfun_builtin_lookup, maybe_fill_table, maybe_optimized_builtin): 6371 New static funcs. 6372 (bsxfun_forward_op, bsxfun_forward_rel): New static template funcs. 6373 (Fbsxfun): Try to optimize some built-in operations. 6374 63752009-10-19 Jaroslav Hajek <highegg@gmail.com> 6376 6377 * DLD-FUNCTIONS/cellfun.cc (Fcellslices): Allow non-positive 6378 indices as bounds. 6379 63802009-10-17 Jaroslav Hajek <highegg@gmail.com> 6381 6382 * data.cc (Fnth_element): Clarify docstring. 6383 63842009-10-16 Jaroslav Hajek <highegg@gmail.com> 6385 6386 * Cell.cc, Cell.h, DLD-FUNCTIONS/besselj.cc, 6387 DLD-FUNCTIONS/find.cc, DLD-FUNCTIONS/lookup.cc, 6388 DLD-FUNCTIONS/max.cc, TEMPLATE-INST/Array-tc.cc, data.cc, 6389 oct-map.cc, ov-cx-mat.h, ov-flt-cx-mat.cc, ov-flt-cx-mat.h, 6390 ov-flt-re-mat.cc, ov-flt-re-mat.h, ov-intx.h, ov-re-mat.h, 6391 ov.cc, ov.h, pr-output.cc, pr-output.h, variables.cc: 6392 Remove traces of ArrayN. 6393 6394 * OPERATORS/op-dm-scm.cc: Avoid using dm + s, dm - s operators. 6395 * OPERATORS/op-dm-sm.cc: Ditto. 6396 * OPERATORS/op-dms-template.cc: Ditto. 6397 63982009-10-16 Jaroslav Hajek <highegg@gmail.com> 6399 6400 * DLD-FUNCTIONS/cellfun.cc (Fnum2cell): Use Array<T>::column here. 6401 64022009-10-15 Jaroslav Hajek <highegg@gmail.com> 6403 6404 * DLD-FUNCTIONS/lookup.cc (Flookup): Update docstring. 6405 64062009-10-15 Jaroslav Hajek <highegg@gmail.com> 6407 6408 * ov.h (octave_value::octave_value (octave_base_value *, bool)): 6409 New constructor. 6410 (octave_value::octave_value (octave_base_value *, int)): Deprecate. 6411 * DLD-FUNCTIONS/cellfun.cc (Fcellfun): Allow the obsolete func 6412 body syntax. 6413 64142009-10-15 Jaroslav Hajek <highegg@gmail.com> 6415 6416 * variables.cc (extract_function): Pass 0 to eval_string to avoid 6417 error. 6418 64192009-10-14 Jaroslav Hajek <highegg@gmail.com> 6420 6421 * ov.cc (octave_value::octave_value (const Array<std::string>&)): New 6422 constructor. 6423 * ov.h: Declare it. 6424 * data.cc (Fnth_element): New DEFUN. 6425 64262009-10-13 Jaroslav Hajek <highegg@gmail.com> 6427 6428 * data.cc (Fcumsum, Fcumprod, Fprod, Fsum, Fsumsq): Correct help 6429 string. 6430 64312009-10-13 Jaroslav Hajek <highegg@gmail.com> 6432 6433 * data.cc (Fsum): Rewrite. 6434 (Fcumsum): Rewrite. 6435 (NATIVE_REDUCTION, NATIVE_REDUCTION_1): Remove. 6436 64372009-10-12 Jaroslav Hajek <highegg@gmail.com> 6438 6439 * pt-binop.cc, pt-unop.cc: Revert the effect of 1be3c73ed7b5. 6440 64412009-10-12 Jaroslav Hajek <highegg@gmail.com> 6442 6443 * DLD-FUNCTIONS/lu.cc (maybe_set_triangular): Remove. 6444 (get_lu_l, get_lu_u): New helper funcs. 6445 (Flu, Fluupdate): Use them to auto-set MatrixType of results. 6446 * DLD-FUNCTIONS/qr.cc (maybe_set_triangular): Remove. 6447 (get_qr_r): New helper func. 6448 (Fqr, Fqrupdate, Fqrinsert, Fqrdelete, 6449 Fqrshift): Use it to auto-set MatrixType of results. 6450 * DLD-FUNCTIONS/chol.cc (get_chol_r): New helper func. 6451 (Fchol, Fcholupdate, Fcholinsert, Fcholdelete, Fcholshift): Use it 6452 to auto-set MatrixType of result. 6453 64542009-10-12 Jaroslav Hajek <highegg@gmail.com> 6455 6456 * DLD-FUNCTIONS/matrix_type.cc (Fmatrix_type): Support 'nocompute' 6457 option. 6458 64592009-10-08 Jaroslav Hajek <highegg@gmail.com> 6460 6461 * DLD-FUNCTIONS/lu.cc (Fluupdate): New DEFUN_DLD. 6462 (check_lu_dims): New helper func. 6463 64642009-10-08 Jaroslav Hajek <highegg@gmail.com> 6465 6466 * data.cc (Flength): Simplify. 6467 (Fndims): Simplify. 6468 (Fsize): Rewrite, use dim_vector::redim to simplify. 6469 (Fsize_equal): Don't chop trailing singletons (should be already 6470 chopped). 6471 64722009-10-08 Jaroslav Hajek <highegg@gmail.com> 6473 6474 * utils.cc (dims_to_numel): New function. 6475 * utils.h: Declare it. 6476 * ov-base.cc (octave_base_value::numel (const octave_value_list&)): 6477 Use it here. 6478 * data.cc (Fnumel): Also here. 6479 64802009-10-07 John W. Eaton <jwe@octave.org> 6481 6482 * variables.cc (get_dims_str): New function. 6483 (symbol_info_list::display_line, 6484 symbol_info_list::parse_whos_line_format): Use it to get dims string. 6485 64862009-10-07 John W. Eaton <jwe@octave.org> 6487 6488 * ov.h (octave_value::get_count): Return octave_idx_type, not int. 6489 64902009-10-07 John W. Eaton <jwe@octave.org> 6491 6492 * pt-arg-list.cc (tree_argument_list::convert_to_const_vector): 6493 Avoid uninitialized variable warning. 6494 * pt-cbinop.cc (simplify_ldiv_op): Avoid unused parameter warning. 6495 * ov-flt-re-mat.cc (convert_to_str_internal): 6496 Update for octave_value constructor changes. 6497 64982009-10-07 Jaroslav Hajek <highegg@gmail.com> 6499 6500 * oct-stream.cc (octave_base_stream::skipl, 6501 octave_stream::skipl (long, ...), octave_stream::skipl (const 6502 octave_value&, ...)): New methods. 6503 * oct-stream.h: Declare them. 6504 * file-io.cc (Ffskipl): New DEFUN. 6505 65062009-10-07 John W. Eaton <jwe@octave.org> 6507 6508 * OPERATORS/op-str-str.cc (DEFUNOP (transpose, char_matrix_str)): 6509 Update for octave_value constructor changes. 6510 65112009-10-05 Jaroslav Hajek <highegg@gmail.com> 6512 6513 * ov.cc (octave_value::assign): Do not gripe "assignment failed" if 6514 already griped about the binary operation. 6515 65162009-10-05 Jaroslav Hajek <highegg@gmail.com> 6517 6518 * pt-idx.cc (tree_index_expression::rvalue): When evaluating index 6519 chain, split on chaining ()() and (){}. 6520 65212009-10-05 Jaroslav Hajek <highegg@gmail.com> 6522 6523 * pt-misc.cc (tree_argument_list::convert_to_const_vector): 6524 Return more than nargout arguments only unless undefined elements 6525 occur. 6526 * ov-class.cc (octave_class::subsref): Pack return list from 6527 overloaded method into first value. 6528 65292009-10-05 Jaroslav Hajek <highegg@gmail.com> 6530 6531 * ov-ch-mat.h (octave_char_matrix): Don't declare allocator and 6532 typeid. 6533 * ov-ch-mat.cc: Don't define them. 6534 * ov.cc (install_types): Don't register octave_char_matrix. 6535 65362009-10-05 John W. Eaton <jwe@octave.org> 6537 6538 * ov.h (octave_value (const charMatrix&, char, bool), 6539 octave_value (const charNDArray&, char, bool), 6540 octave_value (const ArrayN<char>&, char, bool)): 6541 New constructor decls. 6542 (octave_value (const charMatrix&, bool, char), 6543 octave_value (const charNDArray&, bool, char), 6544 octave_value (const ArrayN<char>&, bool, char)): Mark with 6545 GCC_ATTR_DEPRECATED. Single-quoted strings are now default string 6546 type. 6547 (octave_value::convert_to_str): Default is single-quoted strings. 6548 * ov.cc (octave_value (const charMatrix&, char, bool), 6549 octave_value (const charNDArray&, char, bool), 6550 octave_value (const ArrayN<char>&, char, bool)): New constructors. 6551 (octave_value (const charMatrix&, bool, char), 6552 octave_value (const charNDArray&, bool, char), 6553 octave_value (const ArrayN<char>&, bool, char)): 6554 Assume is_string argument is always true. 6555 6556 * ov-re-mat.cc (octave_sparse_matrix::convert_to_str_internal): 6557 Update for octave_value constructor changes. 6558 * ov-ch-mat.h (octave_char_matrix::convert_to_str_internal): Likewise. 6559 * ov-re-sparse.cc (octave_sparse_matrix::convert_to_str_internal): 6560 Likewise. 6561 * ov-str-mat.h (octave_char_matrix_str::squeeze, 6562 octave_char_matrix_str::reshape, octave_char_matrix_str::permute, 6563 octave_char_matrix_str::diag, octave_char_matrix_str::sort, 6564 octave_char_matrix_sq_str::squeeze, 6565 octave_char_matrix_sq_str::reshape, 6566 octave_char_matrix_sq_str::permute, 6567 octave_char_matrix_sq_str::diag, octave_char_matrix_sq_str::sort): 6568 Likewise. 6569 * ov-str-mat.cc (octave_char_matrix_str::do_index_op_internal): 6570 Likewise. 6571 (octave_char_matrix_str::resize): Likewise. 6572 * data.cc (do_cat, Fmerge): Likewise. 6573 * ops.h (DEFNDCHARCATOP_FN): Likewise. 6574 * ov-base-int.cc (octave_base_int_matrix<T>::convert_to_str_internal): 6575 Likewise. 6576 * pt-mat.cc (tree_matrix::rvalue1): Likewise. 6577 6578 * ov-ch-mat.h (octave_char_matrix::octave_char_matrix): Delete 6579 unused bool arg. Declare constructors protected. 6580 6581 (xisalnum, xisalpha, xisascii, xiscntrl, xisdigit, xisgraph, 6582 xislower, xisprint, xispunct, xisspace, xisupper, xisxdigit, 6583 xtoascii, xtolower, xtoupper): Move decls here from ov-str-mat.h. 6584 (MAT_MAPPER, BOOL_MAT_MAPPER): Move macro definitions and uses 6585 here from ov-str-mat.h. 6586 6587 * ov-ch-mat.cc (MACRO_WRAPPER, STRING_MAPPER, TOSTRING_MAPPER): 6588 Move macro definitions and uses here. 6589 * ov-str-mat.cc: From here. 6590 6591 * DLD-FUNCTIONS/typecast (Ftypecast): Update for octave_value 6592 constructor changes. Create sq_string unless casting from string, 6593 then preserve exact type. 6594 (Fbitpack): Update for octave_value constructor changes. Create 6595 sq_string. 6596 * DLD-FUNCTIONS/hex2num.cc (Fnum2hex): Update for octave_value 6597 constructor changes. Create sq_string. 6598 * ls-oct-ascii.cc (read_ascii_data): Likewise. 6599 * mex.cc (mxArray_number::as_octave_value): Likewise. 6600 * oct-stream.cc (octave_stream::read): Likewise. 6601 * ov-base.cc (STRING_MAPPER): Likewise. 6602 66032009-10-04 John W. Eaton <jwe@octave.org> 6604 6605 * ov-str-mat.h (octave_char_matrix_str::squeeze, 6606 octave_char_matrix_sq_str::squeeze, octave_char_matrix_str::diag, 6607 octave_char_matrix_sq_str::diag): New functions. 6608 66092009-10-03 Shai Ayal <shaiay@users.sourceforge.net> 6610 6611 * graphics.h.in (image::update_xdata): Add a half-pixel to each limit. 6612 (image::update_ydata): Ditto. 6613 * gl-render.cc (opengl_renderer::draw): Clip image to axis and fix 6614 unpack alignment. 6615 66162009-10-02 Jaroslav Hajek <highegg@gmail.com> 6617 6618 * ov-base-scalar.h (octave_base_scalar::matrix_type): Always 6619 return MatrixType::Diagonal. 6620 (octave_base_scalar::typ): Remove. 6621 66222009-10-02 Jaroslav Hajek <highegg@gmail.com> 6623 6624 * ov.h: Define also diag matrix extractors. 6625 (octave_type_traits, octave_array_type_traits): Remove. 6626 (octave_value::builtin_type): New method. 6627 * oct-stream.cc (do_read): Update. 6628 * data.cc (identity_matrix): Update. 6629 * ov-base.h (builtin_type_t): New enum. 6630 (octave_base_value::builtin_type): New method. 6631 * ov-re-mat.h (octave_matrix::builtin_type): New method. 6632 * ov-flt-re-mat.h (octave_float_matrix::builtin_type): New method. 6633 * ov-cx-mat.h (octave_complex_matrix::builtin_type): New method. 6634 * ov-flt-cx-mat.h (octave_float_complex_matrix::builtin_type): 6635 New method. 6636 * ov-bool-mat.h (octave_bool_matrix::builtin_type): New method. 6637 * ov-ch-mat.h (octave_char_matrix::builtin_type): New method. 6638 * ov-scalar.h (octave_scalar::builtin_type): New method. 6639 * ov-float.h (octave_float::builtin_type): New method. 6640 * ov-complex.h (octave_complex::builtin_type): New method. 6641 * ov-bool.h (octave_bool::builtin_type): New method. 6642 * ov-flt-complex.h (octave_float_complex::builtin_type): New method. 6643 * ov-re-diag.h (octave_diag_matrix::builtin_type): New method. 6644 * ov-flt-re-diag.h (octave_float_diag_matrix::builtin_type): New method. 6645 * ov-cx-diag.h (octave_complex_diag_matrix::builtin_type): New method. 6646 * ov-flt-cx-diag.h 6647 (octave_float_complex_diag_matrix::builtin_type): 6648 New method. 6649 * ov-re-sparse.h (octave_sparse_matrix::builtin_type): New method. 6650 * ov-cx-sparse.h (octave_sparse_complex_matrix::builtin_type): 6651 New method. 6652 * ov-bool-sparse.h (octave_sparse_bool_matrix::builtin_type): 6653 New method. 6654 * ov-intx.h (octave_int_matrix::builtin_type, 6655 octave_int_scalar::builtin_type): New methods. 6656 * ov-int8.h: Define OCTAVE_INT_BTYP. 6657 * ov-int16.h: Define OCTAVE_INT_BTYP. 6658 * ov-int32.h: Define OCTAVE_INT_BTYP. 6659 * ov-int64.h: Define OCTAVE_INT_BTYP. 6660 * ov-uint8.h: Define OCTAVE_INT_BTYP. 6661 * ov-uint16.h: Define OCTAVE_INT_BTYP. 6662 * ov-uint32.h: Define OCTAVE_INT_BTYP. 6663 * ov-uint64.h: Define OCTAVE_INT_BTYP. 6664 66652009-10-01 Jaroslav Hajek <highegg@gmail.com> 6666 6667 * DLD-FUNCTIONS/cellfun.cc (Fcellfun): Fix initialization, add missing 6668 break. 6669 66702009-10-01 John W. Eaton <jwe@octave.org> 6671 6672 * gl-render.cc (opengl_renderer::draw (const image::properties&)): 6673 Adjust origin for glRasterPos3d. 6674 66752009-10-01 John W. Eaton <jwe@octave.org> 6676 6677 * gl-render.cc: Style fixes. 6678 66792009-10-01 Shai Ayal <shaiay@users.sourceforge.net> 6680 6681 * graphics.cc (image::properties::get_color_data): New function. 6682 * gl-render.cc (opengl_renderer::draw): Handle RGB images. 6683 66842009-10-01 Jaroslav Hajek <highegg@gmail.com> 6685 6686 * DLD-FUNCTIONS/cellfun.cc 6687 (do_num2cell_helper, do_num2cell): New funcs. 6688 (Fnum2cell): Rewrite. 6689 (do_cellslices_nda): Do not leave trailing dims. 6690 66912009-09-30 John W. Eaton <jwe@octave.org> 6692 6693 * error.cc (error_1, pr_where_2, handle_message): 6694 Don't do anything if fmt is empty. 6695 (Ferror): Call print_usage if nargin == 0. 6696 66972009-09-29 Jaroslav Hajek <highegg@gmail.com> 6698 6699 * DLD-FUNCTIONS/typecast.cc (Ftypecast): Rewrite. 6700 (Fbitpack, Fbitunpack): New DEFUNs. 6701 67022009-09-28 Shai Ayal <shaiay@users.sourceforge.net> 6703 6704 * DLD-FUNCTIONS/fltk_backend.cc (plot_window::handle): Redraw the 6705 overlay when zoom box changes size. 6706 * DLD-FUNCTIONS/fltk_backend.cc (fltk_mouse_wheel_zoom): New 6707 function to set mouse wheel zoom factor. 6708 67092009-09-27 Jaroslav Hajek <highegg@gmail.com> 6710 6711 * DLD-FUNCTIONS/sub2ind.cc (get_dimensions): Allow singleton array. 6712 (Fsub2ind): Allow single index. 6713 67142009-09-26 Jaroslav Hajek <highegg@gmail.com> 6715 6716 * OPERATORS/op-m-m.cc (trans_mul, mul_trans): Update. 6717 * OPERATORS/op-fm-fm.cc (trans_mul, mul_trans): Update. 6718 * OPERATORS/op-cm-cm.cc (trans_mul, mul_trans, herm_mul, mul_herm): 6719 Update. 6720 * OPERATORS/op-fcm-fcm.cc (trans_mul, mul_trans, herm_mul, mul_herm): 6721 Update. 6722 * OPERATORS/op-m-cm.cc (trans_mul): Update. 6723 * OPERATORS/op-cm-m.cc (mul_trans): Update. 6724 * OPERATORS/op-fm-fcm.cc (trans_mul): Update. 6725 * OPERATORS/op-fcm-fm.cc (mul_trans): Update. 6726 67272009-09-23 Jaroslav Hajek <highegg@gmail.com> 6728 6729 * OPERATORS/op-m-cm.cc: Declare and install trans_mul operator. 6730 * OPERATORS/op-fm-fcm.cc: Ditto. 6731 * OPERATORS/op-cm-m.cc: Declare and install mul_trans operator. 6732 * OPERATORS/op-fcm-fm.cc: Ditto. 6733 67342009-09-23 Jaroslav Hajek <highegg@gmail.com> 6735 6736 * OPERATORS/op-m-cm.cc: Declare and install trans_ldiv operator. 6737 * OPERATORS/op-fm-fcm.cc: Ditto. 6738 67392009-09-23 Jaroslav Hajek <highegg@gmail.com> 6740 6741 * ov.h (octave_value::op_trans_ldiv, op_herm_ldiv): New enum constants. 6742 * ov.cc (decompose_binary_op, binary_op_fcn_name): Support them. 6743 * xdiv.h: Include mx-defs.h, delete forward decls. 6744 * xdiv.cc (xleftdiv): Support transt parameter. 6745 (xdiv): Optimize. 6746 * pt-cbinop.cc (simplify_ldiv_op): New static func. 6747 (maybe_compound_binary_expression): Try it. 6748 * OPERATORS/op-m-m.cc: Define and install trans_ldiv handler. 6749 * OPERATORS/op-fm-fm.cc: Ditto. 6750 * OPERATORS/op-cm-cm.cc: Define and install trans_ldiv and herm_ldiv 6751 handlers. 6752 * OPERATORS/op-fcm-fcm.cc: Ditto. 6753 67542009-09-19 Jaroslav Hajek <highegg@gmail.com> 6755 6756 * ov.h (octave_value_extract): New template function. 6757 * data.cc (do_linspace): New static template function. 6758 (Flinspace): Rewrite. 6759 67602009-09-18 John W. Eaton <jwe@octave.org> 6761 6762 * DLD-FUNCTIONS/fltk_backend.cc (fltk_backend::redraw_figure): 6763 Call __fltk_redraw__ after marking figure as modified. 6764 67652009-09-18 John W. Eaton <jwe@octave.org> 6766 6767 * mexproto.h: Define OCTINTERP_API if it is not already defined. 6768 Use C-style comments. 6769 67702009-09-16 Jaroslav Hajek <highegg@gmail.com> 6771 6772 * DLD-FUNCTIONS/rand.cc (Frandperm): New function. 6773 67742009-09-15 Jaroslav Hajek <highegg@gmail.com> 6775 6776 * pt-misc.cc (tree_parameter_list::convert_to_const_vector): Pass 6777 in nargout. Don't return excess elements. Optimize varargout-only case 6778 to possibly use a shallow copy. 6779 * pt-misc.h: Update decl. 6780 * ov-usr-fcn.cc (octave_user_function::do_multi_index_op): Update call 6781 to tree_parameter_list::convert_to_const_vector. 6782 67832009-09-15 Jaroslav Hajek <highegg@gmail.com> 6784 6785 * pr-output.cc (Fdisp, Ffdisp): Declare retval as octave_value_list. 6786 67872009-09-14 Shai Ayal <shaiay@users.sourceforge.net> 6788 6789 * DLD-FUNCTIONS/fltk_backend.cc (plot_window::pixel2status, 6790 plot_window::pixel2pos): New argument AXES, which the 6791 coordinates are relative to. 6792 (plot_window::handle): Pass axes to pixel2status and pixel2pos. 6793 67942009-09-14 Jaroslav Hajek <highegg@gmail.com> 6795 6796 * symtab.h (symbol_table::curr_fcn): New member field. 6797 (symbol_table::get_curr_fcn, symbol_table::set_curr_fcn): New member 6798 funcs. 6799 * symtab.cc (symbol_table::fcn_info::fcn_info_rep::xfind): Use 6800 symbol_table::get_curr_fcn. 6801 (symbol_table::fcn_info::fcn_info_rep::x_builtin_find): Ditto. 6802 * ov-usr-fcn.cc (octave_user_function::octave_user_function): Call 6803 symbol_table::set_curr_fcn. 6804 68052009-09-12 John W. Eaton <jwe@octave.org> 6806 6807 * version.h (OCTAVE_VERSION): Now 3.3.50+. 6808 (OCTAVE_API_VERSION): Now api-v38+. 6809 68102009-09-12 John W. Eaton <jwe@octave.org> 6811 6812 * version.h (OCTAVE_VERSION): Now 3.3.50. 6813 (OCTAVE_API_VERSION): Now api-v38. 6814 (OCTAVE_RELEASE_DATE): Now 2009-09-12. 6815 68162009-09-08 Rafael Laboissiere <rafael@debian.org> 6817 6818 * pr-output.cc: New test. 6819 68202009-09-07 Jaroslav Hajek <highegg@gmail.com> 6821 6822 * Makefile.in: Add LDFLAGS to OCT_LINK_DEPS. 6823 68242009-09-06 Jaroslav Hajek <highegg@gmail.com> 6825 6826 * DLD-FUNCTIONS/cellfun.cc: Fix test. 6827 68282009-09-06 Jaroslav Hajek <highegg@gmail.com> 6829 6830 * OPERATORS/op-s-cs.cc: Use DEFCMPLXCMPOP_OP. 6831 * OPERATORS/op-cs-s.cc: Ditto. 6832 * OPERATORS/op-fs-fcs.cc: Ditto. 6833 * OPERATORS/op-fcs-fs.cc: Ditto. 6834 68352009-09-05 John W. Eaton <jwe@octave.org> 6836 6837 * genprops.awk: Fix formatting of generated output. 6838 * graphics.h.in (graphics_object::get (const std::string&) const, 6839 graphics_object::get (const char *) const): New functions. 6840 68412009-09-05 John W. Eaton <jwe@octave.org> 6842 6843 * txt-eng-ft.cc (ft_manager::do_get_font): Remove spurious 6844 assignment usd for debugging. 6845 68462009-09-04 John W. Eaton <jwe@octave.org> 6847 6848 * txt-eng-ft.cc (ft_manager::do_get_font, ft_render::set_font, 6849 ft_render::set_mode, ft_render::visit, ft_render::set_color): 6850 Issue warnings instead of errors for non-fatal problems. 6851 (ft_render::visit): If face is null, then return without warning. 6852 * genprops.awk: Also generate const std::string& and const char* 6853 versions of the get member functions. 6854 * gl-render.cc (opengl_renderer::draw): Omit caseless_str 6855 constructor in call to get method. 6856 * ft_render::set_font (): Likewise. 6857 68582009-09-03 John W. Eaton <jwe@octave.org> 6859 6860 * pr-output.cc (set_format (const Complex&, int&, int&)): 6861 Avoid passing NaN or Inf to log10. 6862 68632009-09-03 Jaroslav Hajek <highegg@gmail.com> 6864 6865 * ov.cc (octave_value::assign (assign_op, const octave_value&)): 6866 Call maybe_mutate after in-place operation. 6867 68682009-09-03 Jaroslav Hajek <highegg@gmail.com> 6869 6870 * ov.cc (octave_value::do_non_const_unary_op): Split to 6871 genuine/non-genuine case. 6872 (octave_value::binary_op_to_assign_op): New method. 6873 * ov.h: Declare it. 6874 * ov-re-mat.h (octave_matrix::changesign): New method. 6875 * ov-flt-re-mat.h (octave_float_matrix::changesign): New method. 6876 * ov-cx-mat.h (octave_complex_matrix::changesign): New method. 6877 * ov-flt-cx-mat.h (octave_float_complex_matrix::changesign): New 6878 method. 6879 * ov-intx.h (OCTAVE_VALUE_INT_MATRIX_T::changesign): New method. 6880 * ov-bool-mat.h (octave_bool_matrix::invert): New method. 6881 * pt-unop.cc (tree_prefix_expression::rvalue1): Use 6882 do_non_const_unary_op. 6883 * pt-binop.cc (tree_binary_expression::rvalue1): If possible, 6884 convert to computed assignment. 6885 6886 * OPERATORS/op-m-m.cc: Define & install in-place minus operation. 6887 * OPERATORS/op-fm-fm.cc: Ditto. 6888 * OPERATORS/op-cm-cm.cc: Ditto. 6889 * OPERATORS/op-fcm-fcm.cc: Ditto. 6890 * OPERATORS/op-int.h: Ditto. 6891 * OPERATORS/op-bm-bm.cc: Define & install in-place not operation. 6892 68932009-09-03 Jaroslav Hajek <highegg@gmail.com> 6894 6895 * ov-re-mat.h (octave_matrix::increment, octave_matrix::decrement): 6896 Use matrix_ref. 6897 * ov-flt-re-mat.h (octave_float_matrix::increment, 6898 octave_float_matrix::decrement): Use matrix_ref. 6899 * ov-intx.h (OCTAVE_VALUE_INT_MATRIX_T::increment, 6900 OCTAVE_VALUE_INT_MATRIX_T::decrement): 6901 Use matrix_ref. 6902 69032009-09-02 John W. Eaton <jwe@octave.org> 6904 6905 * graphics.cc (axes::properties::calc_ticklabels): 6906 Avoid unused parameter warning from gcc. 6907 6908 * ov-perm.cc (octave_perm_matrix::save_binary, 6909 octave_perm_matrix::load_binary): Avoid shadow warning from gcc. 6910 69112009-09-01 David Bateman <dbateman@free.fr> 6912 6913 * DLD-FUNCTIONS/eig.cc (Feigs): Correct nesting error in option 6914 parsing that prevented the use of a function for generalized 6915 eigenvalue problems. 6916 69172009-08-30 Jaroslav Hajek <highegg@gmail.com> 6918 6919 * ops.h (DEFCMPLXCMPOP_OP, DEFNDCMPLXCMPOP_FN): New macros. 6920 * gripes.cc (gripe_warn_complex_cmp): New function. 6921 * gripes.h: declare it. 6922 6923 * OPERATORS/op-cm-cm.cc: Call the new macros. 6924 * OPERATORS/op-cm-cs.cc: Ditto. 6925 * OPERATORS/op-cm-m.cc: Ditto. 6926 * OPERATORS/op-cm-s.cc: Ditto. 6927 * OPERATORS/op-cs-cm.cc: Ditto. 6928 * OPERATORS/op-cs-cs.cc: Ditto. 6929 * OPERATORS/op-cs-m.cc: Ditto. 6930 * OPERATORS/op-fcm-fcm.cc: Ditto. 6931 * OPERATORS/op-fcm-fcs.cc: Ditto. 6932 * OPERATORS/op-fcm-fm.cc: Ditto. 6933 * OPERATORS/op-fcm-fs.cc: Ditto. 6934 * OPERATORS/op-fcs-fcm.cc: Ditto. 6935 * OPERATORS/op-fcs-fcs.cc: Ditto. 6936 * OPERATORS/op-fcs-fm.cc: Ditto. 6937 * OPERATORS/op-fm-fcm.cc: Ditto. 6938 * OPERATORS/op-fm-fcs.cc: Ditto. 6939 * OPERATORS/op-fs-fcm.cc: Ditto. 6940 * OPERATORS/op-m-cm.cc: Ditto. 6941 * OPERATORS/op-m-cs.cc: Ditto. 6942 * OPERATORS/op-s-cm.cc: Ditto. 6943 6944 69452009-08-30 Jaroslav Hajek <highegg@gmail.com> 6946 6947 * ops.h (BOOL_OP1, BOOL_OP2, BOOL_OP3, SC_MX_BOOL_OP, MX_SC_BOOL_OP, 6948 MX_MX_BOOL_OP): Remove. 6949 69502009-08-28 John W. Eaton <jwe@octave.org> 6951 6952 * genprops.awk: Generate static member functions has_core_property 6953 and core_property_names. Make has_property and all_property_names 6954 non-static const member functions. Pass object type to 6955 validate_property_name. 6956 * graphics.cc (validate_property_name): New arg, WHAT. 6957 Improve warning and error messages. 6958 (property_list::set): Use has_core_property instead of has_property. 6959 (base_properties::has_property): Delete definition. 6960 (base_graphics_object::remove_all_listeners): Move unwind protect 6961 block here, from old base_properties::has_property function. 6962 * graphics.h.in (base_properties::has_property): Now virtual. 6963 Unconditionally call panic_impossible. 6964 69652009-08-28 John W. Eaton <jwe@octave.org> 6966 6967 * graphics.cc (validate_property_name): Return full name of 6968 matched property value. Issue warning if given property name is 6969 abbreviated. 6970 * genprops.awk: Use name returned by validate_property_name for 6971 subsequent matching. 6972 * octave.cc (maximum_braindamage): 6973 Disable Octave:abbreviated-property-match warning. 6974 69752009-08-27 John W. Eaton <jwe@octave.org> 6976 6977 * graphics.cc (validate_property_name): New static function. 6978 (base_properties::dynamic_property_names): New function. 6979 * graphicffs.h.in (base_properties::dynamic_property_names): 6980 Provide decl. 6981 * genprops.awk: Generate all_property_names functions. Use 6982 all_property_names as needed to avoid duplication elsewhere. 6983 Call validate_property_name in set/get functions. 6984 69852009-08-27 Jaroslav Hajek <highegg@gmail.com> 6986 6987 * ov-class.cc (get_current_method_class): Simplify. 6988 (octave_class::in_class_method): Don't rely on multiple copies of 6989 methods. Don't declare as const. 6990 (octave_class::octave_class (const Octave_map&, const std::string&, 6991 const octave_value_list&)): 6992 Call symbol_table::add_to_parent_map instead. 6993 * ov-class.h (octave_class::in_class_method): Don't declare as const. 6994 * symtab.h (symbol_table::parent_map): New field. 6995 (symbol_table::add_to_parent_map): New method. 6996 (symbol_table::load_class_method): Search also parent classes. 6997 * load-path.h (load_path::parent_map, load_path::add_to_parent_map, 6998 load_path::do_add_to_parent_map): Remove. 6999 * load-path.cc (load_path::do_find_method): Don't search parent 7000 classes. 7001 70022009-08-27 Jaroslav Hajek <highegg@gmail.com> 7003 7004 * OPERATORS/op-cs-cs.cc: Simplify comparison operators. 7005 * OPERATORS/op-fcs-fcs.cc: Ditto. 7006 70072009-08-25 David Grundberg <individ@acc.umu.se> 7008 7009 * DLD-FUNCTIONS/__magick_read__.cc [HAVE_MAGICK]: Include 7010 Magick++.h instead of GraphicsMagick/Magic++.h. 7011 * Makefile.in: Replace MAGICK_LIBS with MAGICK_LDFLAGS and 7012 MAGICK_LIBS. Replace MAGICK_INCFLAGS with MAGICK_CPPFLAGS. 7013 * oct-conf.h.in: Ditto. 7014 * toplev.cc (octave_config_info): Ditto. 7015 70162009-08-26 John W. Eaton <jwe@octave.org> 7017 7018 * oct-conf.h.in: New defines for UMFPACK_CPPFLAGS and UMFPACK_LDFLAGS. 7019 * toplev.cc (octave_config_info): Include them in the list. 7020 70212009-08-26 John W. Eaton <jwe@octave.org> 7022 7023 * oct-conf.h.in: New defines for QRUPDATE_CPPFLAGS and QRUPDATE_LDFLAGS. 7024 * toplev.cc (octave_config_info): Include them in the list. 7025 70262009-08-26 John W. Eaton <jwe@octave.org> 7027 7028 * oct-conf.h.in: New defines for ARPACK_CPPFLAGS and ARPACK_LDFLAGS. 7029 * toplev.cc (octave_config_info): Include them in the list. 7030 70312009-08-26 John W. Eaton <jwe@octave.org> 7032 7033 * Makefile.in (OCTAVE_LIBS, OCTINTERP_LINK_DEPS): 7034 Include BLAS_LIBS in the list. 7035 70362009-08-26 John W. Eaton <jwe@octave.org> 7037 7038 * Makefile.in (OCTAVE_LIBS): Include FLIBS in the list. 7039 (OCTINTERP_LINK_DEPS): Include TERM_LIBS, LIBGLOB, and FLIBS in 7040 the list. 7041 70422009-08-26 Jaroslav Hajek <highegg@gmail.com> 7043 7044 * data.cc (Ffmod): Reverse order of args. 7045 70462009-08-26 Rob Mahurin <rob@utk.edu> 7047 7048 * syscalls.cc: Recommend waitpid() in popen2() documentation. 7049 70502009-08-25 John W. Eaton <jwe@octave.org> 7051 7052 * graphics.cc (gnuplot_backend::send_quit): Wait for gnuplot process. 7053 70542009-08-24 Jaroslav Hajek <highegg@gmail.com> 7055 7056 * OPERATORS/op-m-m.cc: Install .*= and ./= operators. 7057 * OPERATORS/op-fm-fm.cc: Ditto. 7058 * OPERATORS/op-cm-cm.cc: Ditto. 7059 * OPERATORS/op-fcm-fcm.cc: Ditto. 7060 * OPERATORS/op-int.h: Ditto. 7061 70622009-08-22 Jaroslav Hajek <highegg@gmail.com> 7063 7064 * data.cc (UNARY_OP_DEFUN_BODY, 7065 BINARY_OP_DEFUN_BODY, BINARY_ASSOC_OP_DEFUN_BODY): Remove. 7066 (unary_op_defun_body, binary_op_defun_body, 7067 binary_assoc_op_defun_body): New functions. 7068 (Fnot, Fuplus, Fuminus, Ftranspose, Fctranspose): Use 7069 unary_op_defun_body. 7070 (Fminus, Fmrdivide, Fmpower, Fmldivide, Flt, Fle, Feq, Fge, Fgt, Fne, 7071 Frdivide, Fpower, Fldivide): Use binary_op_defun_body. 7072 (Fplus, Ftimes, Fmtimes, Fand, For): Use binary_assoc_op_defun_body. 7073 70742009-08-21 Jaroslav Hajek <highegg@gmail.com> 7075 7076 * OPERATORS/op-s-s.cc: Check for NaN in ! operator. 7077 * OPERATORS/op-fs-fs.cc: Ditto. 7078 * OPERATORS/op-cs-cs.cc: Ditto. 7079 * OPERATORS/op-fcs-fcs.cc: Ditto. 7080 70812009-08-17 Jaroslav Hajek <highegg@gmail.com> 7082 7083 * ops.h (DEFNDASSIGNOP_FNOP): New macro. 7084 * OPERATORS/op-bm-bm.cc: Define and install &= and |= operators. 7085 70862009-08-17 Jaroslav Hajek <highegg@gmail.com> 7087 7088 * OPERATORS/op-m-m.cc: Define and install += and -= operators. 7089 * OPERATORS/op-fm-fm.cc: Ditto. 7090 * OPERATORS/op-cm-cm.cc: Ditto. 7091 * OPERATORS/op-fcm-fcm.cc: Ditto. 7092 * OPERATORS/op-m-s.cc: Define and install +=,-=,*=,/= operators. 7093 * OPERATORS/op-fm-fs.cc: Ditto. 7094 * OPERATORS/op-cm-cs.cc: Ditto. 7095 * OPERATORS/op-fcm-fcs.cc: Ditto. 7096 * OPERATORS/op-cm-s.cc: Define and install *=,/= operators. 7097 * OPERATORS/op-fcm-fs.cc: Ditto. 7098 * ops.h (DEFNDASSIGNOP_OP): New macro. 7099 * ov.cc (octave_value::assign (assign_op, const octave_value&)): 7100 Try looking up specialized handlers if the value is not shared. 7101 * ov-base-mat.h (octave_base_matrix::matrix_ref): New method. 7102 71032009-08-17 Jaroslav Hajek <highegg@gmail.com> 7104 7105 * oct-obj.h (octave_value_list::octave_value_list (octave_idx_type)): 7106 Allow this constructor. 7107 71082009-08-19 Jaroslav Hajek <highegg@gmail.com> 7109 7110 * DLD-FUNCTIONS/find.cc (Ffind): Reuse cached index vector when 7111 converting boolean mask to indices. 7112 71132009-08-18 John W. Eaton <jwe@octave.org> 7114 7115 * oct-conf.h.in: New #defines for HDF5_LDFLAGS and HDF5LDFLAGS. 7116 * Makefile.in (OCTAVE_LIBS, OCTINTERP_LINK_DEPS): 7117 Include them in the lists. 7118 * toplev.cc (octave_config_info): Include them in the list. 7119 71202009-08-17 John W. Eaton <jwe@octave.org> 7121 7122 * oct-conf.h.in: New #defines for ZLIB_CPPFLAGS and ZLIB_LDFLAGS. 7123 * toplev.cc (octave_config_info): Include them in the list. 7124 71252009-08-17 John W. Eaton <jwe@octave.org> 7126 7127 * Makefile.in (OCTINTERP_LINK_DEPS): Include FFTW_LDFLAGS, 7128 FFTW_LIBS and READLINE_LIBS in the list. 7129 (OCTAVE_LIBS): Attempt to include all necessary dependencies for 7130 static linking. 7131 71322009-08-17 John W. Eaton <jwe@octave.org> 7133 7134 * Makefile.in (eigs.oct, chol.oct, qr.oct): Add library-specific 7135 CPPFLAGS and LDFLAGS variables to CPPFLAGS and LDFLAGS. 7136 From Benjamin Lindner <lindnerb@users.sourceforge.net>. 7137 71382009-08-17 John W. Eaton <jwe@octave.org> 7139 7140 * Makefile.in (OCTINTERP_LINK_DEPS): List $(LIBS) last. 7141 71422009-08-17 Michael Goffioul <michael.goffioul@gmail.com> 7143 7144 * Makefile.in (OCTINTERP_LINK_DEPS): Include $(LIBCRUFT) and 7145 $(LIBS) in the list. 7146 (OCT_LINK_DEPS): Include $(LIBOCTAVE) and $(LIBCRUFT) in the list. 7147 (eigs.oct, qz.oct): Add $(BLAS_LIBS) to LDFLAGS. 7148 (ccolamd.oct, symbfact.oct): Add library-specific CPPFLAGS and 7149 LDFLAGS variables to CPPFLAGS and LDFLAGS. 7150 71512009-08-17 Jaroslav Hajek <highegg@gmail.com> 7152 7153 * ov-struct.h, ov-struct.cc: Revert to e08d72bb988e. 7154 * ov-class.h, ov-class.cc: Partially revert to e08d72bb988e. 7155 (octave_class::subsasgn): Cut&paste code from octave_struct::subsasgn 7156 for the nested dot indexing. 7157 * ov-usr-fcn.cc (Voptimize_subasgn_calls): Default to true. 7158 71592009-08-13 John W. Eaton <jwe@octave.org> 7160 7161 * DLD-FUNCTIONS/fft.cc, DLD-FUNCTIONS/fft2.cc, 7162 DLD-FUNCTIONS/fftn.cc, DLD-FUNCTIONS/fftw.cc: Update for new FFTW 7163 defines. 7164 7165 * Makefile.in (amd.oct, colamd.oct, dmperm.oct, symcrm.oct, 7166 qr.oct, fft.oct, fft2.oct, fftn.oct, fftw.oct): Add 7167 library-specific CPPFLAGS and LDFLAGS variables to CPPFLAGS 7168 and LDFLAGS. 7169 * oct-conf.h.in: New #defines for GLPK_CPPFLAGS, GLPK_LDFLAGS, 7170 AMD_CPPFLAGS, AMD_LDFLAGS, CAMD_CPPFLAGS, CAMD_LDFLAGS, 7171 CCOLAMD_CPPFLAGS, CCOLAMD_LDFLAGS, CHOLMOD_CPPFLAGS, 7172 CHOLMOD_LDFLAGS, COLAMD_CPPFLAGS, COLAMD_LDFLAGS, 7173 CXSPARSE_CPPFLAGS, CXSPARSE_LDFLAGS, FFTW3_CPPFLAGS, 7174 FFTW3_LDFLAGS, FFTW3_LIBS, FFTW3F_CPPFLAGS, FFTW3F_LDFLAGS, and 7175 FFTW3F_LIBS. 7176 * toplev.cc (octave_config_info): Include them in the list. 7177 71782009-08-13 Jaroslav Hajek <highegg@gmail.com> 7179 7180 * ov-class.h (octave_class): Derive from octave_struct. 7181 (octave_class::octave_class): Update all constructors. 7182 (octave_class::numeric_conv, octave_class::byte_size, octave_class::numel, octave_class::nfields, 7183 octave_class::reshape, octave_class::resize, octave_class::is_defined, 7184 octave_class::map_value): Remove methods (inherit). 7185 * ov-class.h (octave_class::obsolete_copies): New field. 7186 Init to 0 in all constructors. 7187 (octave_class::unique_clone): New decl. 7188 * ov-class.cc (octave_class::unique_clone): Fake clone if all 7189 remaining copies are obsolete. 7190 (octave_class::subsref): Share code with octave_struct::subsref. 7191 (octave_class::subsref (..., bool auto_add)): New method. 7192 (octave_class::subsasgn): If plausible, attempt to 7193 optimize the method call by marking appropriate number of copies 7194 obsolete. Share code with octave_struct::subsasgn. 7195 (octave_class::dotasgn): New method override. 7196 * ov-struct.h (octave_struct::dotref): New virtual overload. 7197 (octave_struct::dotasgn): New virtual method decl. 7198 * ov-struct.cc (octave_struct::dotasgn): New virtual method. 7199 * ov-usr-fcn.h (octave_user_function::num_args_passed, 7200 octave_user_function::saved_args): Remove fields. Wipe from all 7201 constructor lists. 7202 (octave_user_function::save_args_passed, 7203 octave_user_function::restore_args_passed): Remove methods. 7204 (octave_user_function::all_va_args): Update decl. 7205 (octave_user_function::subsasgn_optimization_ok): New method decl. 7206 * ov-usr-fcn.cc (octave_user_function::all_va_args): Rename from 7207 octave_all_va_args, take args as a parameter. 7208 (octave_user_function::subsasgn_optimization_ok): New method. 7209 (octave_user_function::do_multi_index_op): Simplify. 7210 72112009-08-12 Jaroslav Hajek <highegg@gmail.com> 7212 7213 * ov-base.h (octave_base_value::count): Declare as octave_idx_type. 7214 (octave_base_value::octave_base_value (const octave_base_value&)): 7215 Initialize count to 1. 7216 (octave_base_value::unique_clone ()): New method. 7217 (octave_base_value::print_with_name): Declare as non-const. 7218 * ov-base.cc (octave_base_value::print_with_name): Update. 7219 * ov.h (octave_value::make_unique (void)): Don't set rep->count. 7220 Call unique_clone. 7221 (octave_value::make_unique (int)): Don't set rep->count. 7222 Call unique_clone. 7223 (octave_value::octave_value (const octave_base_value *)): Declare 7224 as private. 7225 * ov-class.cc (octave_class::print_with_name): Avoid using clone (). 7226 * ov-class.h (octave_class::print_with_name): Declare as non-const. 7227 72282009-08-13 John W. Eaton <jwe@octave.org> 7229 7230 * Makefile.in: Consistently add library-specific CPPFLAGS and 7231 LDFLAGS variables to CPPFLAGS and LDFLAGS for .oct files that need 7232 them. Also add X11_FLAGS to CPPFLAGS for display.d display.df and 7233 pic/display.o. 7234 7235 * oct-conf.h.in: New #defines for QHULL_CPPFLAGS, QHULL_LDFLAGS, 7236 CURL_CPPFLAGS, and CURL_LDFLAGS. 7237 * toplev.cc (octave_config_info): Include them in the list. 7238 72392009-08-12 Jaroslav Hajek <highegg@gmail.com> 7240 7241 * Makefile.in: Include LDFLAGS when linking shared executable. 7242 72432009-08-12 Jaroslav Hajek <highegg@gmail.com> 7244 7245 * data.cc (Fissorted, F__sort_rows_idx__, Fnorm): Mark as Built-in 7246 Functions in the inline help. 7247 72482009-08-11 John W. Eaton <jwe@octave.org> 7249 7250 * DLD-FUNCTIONS/fftw.cc (Ffftw): Update for octave_fftw_planner 7251 and octave_float_fftw_planner as singleton objects. 7252 72532009-08-11 John W. Eaton <jwe@octave.org> 7254 7255 * oct-conf.h.in: Use READLINE_LIBS instead of LIBREADLINE. 7256 New #defines for TERM_LIBS and DL_LIBS. 7257 * toplev.cc (octave_config_info): Add TERM_LIBS and DL_LIBS to the 7258 struct. Use READLINE_LIBS instead of LIBREADLINE. 7259 72602009-08-11 John W. Eaton <jwe@octave.org> 7261 7262 * oct-conf.h.in: New #defines for AMD_LIBS, ARPACK_LIBS, 7263 CAMD_LIBS, CCOLAMD_LIBS, CHOLMOD_LIBS, COLAMD_LIBS, CXSPARSE_LIBS, 7264 FT2_LIBS, GRAPHICS_LIBS, HDF5_LIBS, OPENGL_LIBS, PTHREAD_CFLAGS, 7265 PTHREAD_LIBS, QHULL_LIBS, QRUPDATE_LIBS, REGEX_LIBS, UMFPACK_LIBS, 7266 ZLIB_LIBS. 7267 7268 * toplev.cc (octave_config_info): Include them in the struct. 7269 72702009-08-11 Jaroslav Hajek <highegg@gmail.com> 7271 7272 * data.cc (Fdiff): New built-in function. 7273 (do_diff): New assistant function. 7274 72752009-08-10 John W. Eaton <jwe@octave.org> 7276 7277 * DLD-FUNCTIONS/dlmread.cc (Fdlmread): Perform tilde expansion on 7278 filename argument. 7279 72802009-08-10 Jaroslav Hajek <highegg@gmail.com> 7281 7282 * symtab.cc (out_of_date_check): Remove overloads. Add check_relative 7283 parameter. 7284 (out_of_date_check_internal): Remove. 7285 * symtab.h: Update. 7286 * ov-fcn-handle.cc (octave_fcn_handle::do_index_op): Call 7287 out_of_date_check with check_relative = false. 7288 72892009-08-09 John W. Eaton <jwe@octave.org> 7290 7291 * parse.y (Fevalin): Also return output from CATCH expression. 7292 72932009-08-08 Jaroslav Hajek <highegg@gmail.com> 7294 7295 * data.cc (Fifelse): Rename to Fmerge, alias to Fifelse. 7296 72972009-08-06 Jaroslav Hajek <highegg@gmail.com> 7298 7299 * OPERATORS/op-dm-template.cc, OPERATORS/op-pm-template.cc: 7300 Also define conversions for null string and null sq_string. 7301 73022009-08-06 John W. Eaton <jwe@octave.org> 7303 7304 * OPERATORS/op-cdm-m.cc, OPERATORS/op-dm-m.cc, OPERATORS/op-pm-m.cc: 7305 Define LDMATRIX and DEFINENULLASSIGNCONV. 7306 * OPERATORS/op-dm-template.cc, OPERATORS/op-pm-template.cc: 7307 Include ov-null-mat.h and define assignment conversion for null 7308 matrices if DEFINENULLASSIGNCONV is defined. Define OCTAVE_LDMATRIX. 7309 73102009-08-05 John W. Eaton <jwe@octave.org> 7311 7312 * pt-eval.cc (tree_evaluator::visit_complex_for_command): 7313 Use key_list order for iterating through map. 7314 7315 * Makefile.in (OCT_LINK_DEPS): Also include $(RLD_FLAG) in the list. 7316 73172009-08-05 John W. Eaton <jwe@octave.org> 7318 7319 * Makefile.in (octave$(EXEEXT)): Clean up link flags and library list. 7320 (OCTINTERP_LINK_DEPS): Omit -L../libcruft $(LIBCRUFT) $(LIBS) 7321 $(FLIBS) from the list. Include $(RLD_FLAG) in the list. 7322 (OCT_LINK_DEPS): Only include -L. $(LIBOCTINTERP) in the list. 7323 73242009-08-05 Jaroslav Hajek <highegg@gmail.com> 7325 7326 * utils.cc (Fisindex): New DEFUN. 7327 73282009-08-04 Kristian Rumberg <kristianrumberg@gmail.com> 7329 7330 * input.cc (is_completing_dirfns): New function. 7331 (generate_completion): Use it to selectively complete file names. 7332 73332009-08-04 John W. Eaton <jwe@octave.org> 7334 7335 * debug.cc (Fdbwhere): Call octave_call_stack::goto_frame_relative 7336 to move to user code frame. Get line and column information from 7337 call stack. 7338 * input.cc (Fkeyboard): Don't pass verbose flag to 7339 octave_call_stack::goto_frame_relative. 7340 (get_debug_input): Get line and column information from call stack. 7341 7342 * pt-eval.h, pt-eval.cc (tree_evaluator::debug_line, 7343 tree_evaluator::debug_column, tree_evaluator::db_line, 7344 tree_evaluator::db_column): Delete. 7345 * pt-eval.cc (tree_evaluator::do_breakpoint): Don't print function 7346 name and location info here. Delete line and column number args. 7347 Change all callers. 7348 7349 * toplev.h (octave_call_stack::do_current, 7350 octave_call_stack::do_current_statement): New functions. 7351 (octave_call_stack::current): Call do_current, not top. 7352 (octave_call_stack::current_statement): Call do_current_statement, 7353 not top_statement. 7354 (octave_call_stack::top, octave_call_stack::top_statement, 7355 octave_call_stack::do_top, octave_call_stack::do_top_statement): 7356 Delete. 7357 73582009-08-04 John W. Eaton <jwe@octave.org> 7359 7360 * toplev.cc (octave_call_stack::do_goto_frame_relative): Allow 7361 NSKIP to be 0. Set current scope and context. 7362 * input.cc (Fkeyboard): Use octave_call_stack::goto_frame_relative 7363 to set scope in user code that called the keyboard function. 7364 73652009-08-04 Jaroslav Hajek <highegg@gmail.com> 7366 7367 * input.cc (Fkeyboard): Only call do_keyboard, don't fiddle with 7368 stack. 7369 73702009-08-03 Jaroslav Hajek <highegg@gmail.com> 7371 7372 * DLD-FUNCTIONS/sub2ind.cc: New source. 7373 * Makefile.in: Include it. 7374 * ov-range.h (octave_range::octave_range (const Range&, const 7375 idx_vector&)): New constructor. 7376 * ov-re-mat.h (octave_matrix::octave_matrix (const NDArray&, const 7377 idx_vector&)): New constructor. 7378 * ov.cc (octave_value::octave_value (const idx_vector&)): New 7379 constructor. 7380 * ov.h: Declare it. 7381 73822009-07-30 Ryan Rusaw <rrusaw@gmail.com> 7383 7384 * input.cc (reading_classdef_file): New file-scope variable. 7385 (gnu_readline): Also set curr_stream if reading_classdef_file. 7386 (octave_gets, get_input_from_file): 7387 Handle classdef files like other input files. 7388 * input.h (reading_classdef_file): Provide decl. 7389 7390 * octave.gperf (classdef, endclassdef, endevents, endmethods, 7391 endproperties, events, get, methods, properties, set): New keywords. 7392 7393 * lex.l: Handle classdef filees like other input files. 7394 Recognize superclass method identifiers and metaclass query constructs. 7395 (is_keyword_token): Recognize endclassdef, endevents, endmethods, 7396 endproperties, get, set, properties, methods, and events keywords. 7397 (maybe_classdef_get_set_method, parsing_classdef): New variables. 7398 (handle_superclass_identifier, handle_meta_identifier): 7399 New static functions. 7400 (lexical_feedback::init): Initialize parsing_classdef and 7401 maybe_classdef_get_set_method. 7402 (display_token): Handle SUPERCLASSREF, METAQUERY, GET, SET, 7403 PROPERTIES, METHODS, EVENTS, and CLASSDEF tokens. 7404 * lex.h (maybe_classdef_get_set_method, parsing_classdef): 7405 Provide decls. 7406 * parse.y (%union): New placeholder type, dummy_type. 7407 (SUPERCLASSREF, METAQUERY, GET, SET, PROPERTIES, METHODS, EVENTS, 7408 CLASSDEF): New tokens. 7409 (superclass_identifier, meta_identifier, classdef_beg, 7410 classdef_end, classdef1, classdef, opt_attr_list, attr_list, attr, 7411 opt_superclasses, superclasses, class_body, properties_beg, 7412 properties_block, properties_list, class_property, methods_beg, 7413 methods_block, methods_list, events_beg, events_block, 7414 events_list, class_event): New non-terminals. 7415 (primary_expr): Include superclass_identifier and meta_identifier 7416 as possible primary_exprs. 7417 (function_beg): If parsing classdef file, set 7418 lexer_flags.maybe_classdef_get_set_method to true. 7419 be recognized. 7420 (fcn_name): Accept GET '.' identifier or SET '.' identifier. 7421 (end_error): Handle endclassdef. 7422 (looking_at_classdef_keyword): New function. 7423 (gobble_leading_whitespace): Handle classdef. 7424 * token.h, token.cc (sc, mc): 7425 New union fields for symbol classdef symbol_record info. 7426 (token::token (symbol_table::symbol_record *, 7427 symbol_table::symbol_record *, int, int), 7428 token::token (symbol_table::symbol_record *, 7429 symbol_table::symbol_record *, symbol_table::symbol_record *, int, 7430 int)): New constructors. 7431 (token::method_rec, token::class_rec, token::package_rec, 7432 token::meta_class_rec, token::meta_package_rec): New methods. 7433 (token_type): New enum values: scls_rec_token, meta_rec_token. 7434 (end_tok_type): New enum values: classdef_end, events_end, 7435 methods_end, properties_end. 7436 74372009-07-30 David Grundberg <individ@acc.umu.se> 7438 7439 * symtab.h (symbol_table::parent_scope): Remove. 7440 (symbol_table::set_parent_scope): Remove. 7441 (symbol_table::reset_parent_scope): Remove. 7442 (symbol_table::install_subfunction): Require scope parameter 7443 instead of xparent_scope default. 7444 * symtab.cc: Remove symbol_table::xparent_scope 7445 * lex.h (lexical_feedback::parsing_nested_function): Remove. 7446 * lex.l (is_keyword_token): Don't ignore endfunctions. 7447 (prep_lexer_for_script_file): Renamed from prep_lexer_for_script. 7448 (prep_lexer_for_function_file): New function. 7449 (display_token): Display SCRIPT_FILE and FUNCTION_FILE. 7450 (display_state): Display FUNCTION_FILE_BEGIN 7451 (FUNCTION_FILE_BEGIN): New state. 7452 (NESTED_FUNCTION_END, NESTED_FUNCTION_BEGIN): Remove states. 7453 (prep_for_function, prep_for_nested_function): Remove functions. 7454 * parse.h: Remove extern declaration parent_function_name, 7455 end_tokens_expected. 7456 * parse.y: Add variables current_function_depth, 7457 max_function_depth, parsing_subfunctions, seen_endfunction. Remove 7458 parent_function_name. Rename curr_fcn_ptr to primary_fcn_ptr. Add 7459 token FUNCTION_FILE. Rename token SCRIPT to SCRIPT_FILE. 7460 (function_file): New rule. 7461 (input): Accept function_file. 7462 (script_file): Rule renamed from script. 7463 (function_file): New rule. 7464 (function_list): New rule. 7465 (push_fcn_symtab): Parse nested functions. 7466 (fcn_name): Remove parent_function_name. 7467 (function_end): Use seen_endfunction. New error messages. 7468 (make_script): Use primary_fcn_ptr. 7469 (frob_function): Simplify control structures. Don't use 7470 symbol_table::parent_scope. 7471 (push_fcn_symtab, function_end, frob_function, finish_function): 7472 Use current_function_depth instead of 7473 lexical_feedback::parsing_nested_function. 7474 (make_return_command): Use current_function_depth instead of 7475 lexical_feedback::defining_func. 7476 (make_break_command, make_decl_command, maybe_warn_missing_semi): 7477 Ditto 7478 (parse_fcn_file): Warn when nested functions have been 7479 declared. Remove superfluous local variables. Parse function files 7480 using function_file rule. 7481 74822009-07-30 Jaroslav Hajek <highegg@gmail.com> 7483 7484 * data.cc (Fmerge): Rename to Fifelse. 7485 74862009-07-30 Jaroslav Hajek <highegg@gmail.com> 7487 7488 * data.cc (Fmerge): New DEFUN. 7489 (do_merge): New helper function. 7490 74912009-07-29 John W. Eaton <jwe@octave.org> 7492 7493 * parse.y (param_list_end): Also set 7494 lexer_flags.looking_for_object_index to false. 7495 7496 * ov-float.cc, ov-flt-re-mat.cc, ov-re-mat.cc, ov-re-sparse.cc, 7497 ov-scalar.cc: Use complex function for acos mapper if arg is out 7498 of range [-1, 1]. 7499 7500 * ov-bool.cc (octave_bool::load_ascii): Call template function to 7501 read value. 7502 * ov-scalar.cc (octave_scalar::load_ascii): Likewise. 7503 * ov-complex.cc (octave_complex::load_ascii): Likewise. 7504 * ov-float.cc (octave_float_scalar::load_ascii): Likewise. 7505 * ov-flt-complex.cc (octave_float_complex::load_ascii): Likewise. 7506 * ls-mat-ascii.cc (read_mat_ascii_data): Likewise. 7507 7508 * ov-re-sparse.cc (octave_sparse_matrix::load_binary, 7509 octave_sparse_matrix::load_hdf5): Perform sanity check on indices. 7510 * ov-cx-sparse.cc (octave_sparse_complex_matrix::load_binary, 7511 octave_sparse_complex_matrix::load_hdf5): Likewise. 7512 * ov-bool-sparse.cc (octave_sparse_bool_matrix::load_binary, 7513 octave_sparse_bool_matrix::load_hdf5): Likewise. 7514 75152009-07-29 Jaroslav Hajek <highegg@gmail.com> 7516 7517 * ov-fcn-handle.cc (octave_fcn_handle::do_multi_index_op): 7518 Cache lookups also for classes. 7519 75202009-07-28 Jaroslav Hajek <highegg@gmail.com> 7521 7522 * DLD-FUNCTIONS/cellfun.cc (Fcellfun): Support auto-expanding scalar 7523 cells. 7524 75252009-07-27 Jaroslav Hajek <highegg@gmail.com> 7526 7527 * symtab.cc (symbol_table::fcn_info::fcn_info_rep::xfind, 7528 symbol_table::fcn_info::fcn_info_rep::find, 7529 symbol_table::fcn_info::fcn_info_rep::find_function, 7530 symbol_table::fcn_info::find, 7531 symbol_table::fcn_info::find_function, 7532 symbol_table::find, symbol_table::do_find, 7533 symbol_table::find_function): 7534 Add local_funcs parameter. 7535 * symtab.h: Update decls. 7536 * ov-fcn-handle.cc (make_fcn_handle): Add local_funcs parameter. 7537 * ov-fcn-handle.h: Update decls. 7538 75392009-07-24 John W. Eaton <jwe@octave.org> 7540 7541 * pt-mat.cc (DO_SINGLE_TYPE_CONCAT_NO_MUTATE): New macro. 7542 (tree_matrix::rvalue1): Use it to avoid complex -> real conversion. 7543 75442009-07-24 Jaroslav Hajek <highegg@gmail.com> 7545 7546 * DLD-FUNCIONS/cellfun.cc (Fcellfun): Avoid double error messages. 7547 75482009-07-24 Jaroslav Hajek <highegg@gmail.com> 7549 7550 * load-path.cc (load_path::do_any_class_method): New method. 7551 * load-path.h (load_path::do_any_class_method): New method decl. 7552 (load_path::any_class_method): New method. 7553 * ov-fcn-handle.cc (octave_fcn_handle::do_multi_index_op): Support 7554 calls without non-overloaded base function. 7555 (make_fcn_handle): Support creation without non-overloaded base 7556 function. 7557 75582009-07-23 Shai Ayal <shaiay@users.sourceforge.net> 7559 7560 * DLD-FUNCTIONS/fltk_backend.cc (plot_window::pixel2axes_or_ca): 7561 Replace plot_window::pixel2axes and use algorithm from octavede. 7562 (plot_window::handle): Zooming now works on the axes below the 7563 mouse pointer instead of the current axes. Combine old and new 7564 zooming methods. 7565 (help_text): Update to reflect new mouse/key bindings. 7566 75672009-07-23 Søren Hauberg <hauberg@gmail.com> 7568 7569 * graphics.cc (axes::properties::zoom_about_point, 7570 axes::properties::translate_view): New functions. 7571 (axes::properties::zoom): make zoom_stack usage optional. 7572 * DLD-FUNCTIONS/fltk_backend.cc (plot_window::handle): Use new 7573 zoom API. 7574 75752009-07-23 John W. Eaton <jwe@octave.org> 7576 7577 * variables.cc (safe_symbol_lookup): New function. 7578 (symbol_exist): Use it. 7579 75802009-07-23 Jaroslav Hajek <highegg@gmail.com> 7581 7582 * DLD-FUNCTIONS/chol.cc (Fcholupdate, 7583 Fcholinsert, Fcholdelete, Fcholshift): Replace is_matrix_type -> 7584 is_numeric_type. 7585 75862009-07-23 John W. Eaton <jwe@octave.org> 7587 7588 * toplev.cc (IGNORE_EXCEPTION, SAFE_CALL): New macros. 7589 (clean_up_and_exit, do_octave_atexit): Use SAFE_CALL to handle 7590 exceptions while preparing to exit. 7591 75922009-07-23 Jaroslav Hajek <highegg@gmail.com> 7593 7594 * symtab.cc (get_dispatch_type): Omit first-arg dispatch, export. 7595 * symtab.h (get_dispatch_type): Provide decl. 7596 * ov-fcn-handle.h (octave_fcn_handle::warn_reload): Delete. 7597 (octave_fcn_handle::disp): New field. 7598 (octave_fcn_handle::str_ov_map): New typedef. 7599 (octave_fcn_handle::octave_fcn_handle (..., str_ov_map *)): New 7600 constructor. 7601 (octave_fcn_handle::do_multi_index_op): New method decl. 7602 (octave_fcn_handle::is_overloaded): New method. 7603 * ov-fcn-handle.cc 7604 (octave_fcn_handle::do_multi_index_op): New method. 7605 (octave_fcn_handle::subsref): Rewrite using do_multi_index_op. 7606 (octave_fcn_handle::make_fcn_handle): Construct overloaded handles if 7607 appropriate. 7608 (Ffunctions): Indicate (statically) overloaded handles. 7609 * DLD-FUNCTIONS/cellfun.cc (Fcellfun): Update & modernize. 7610 * DLD-FUNCTIONS/bsxfun.cc (Fbsxfun): Ditto. 7611 76122009-07-22 Jaroslav Hajek <highegg@gmail.com> 7613 7614 * symtab.cc (symbol_table::find, 7615 symbol_table::find_function, 7616 symbol_table::symbol_record::find, 7617 symbol_table::fcn_info::find, 7618 symbol_table::fcn_info::fcn_info_rep::find, 7619 symbol_table::fcn_info::fcn_info_rep::xfind): Simplify argument lists. 7620 * symtab.h: Update declarations. 7621 * pt-id.cc (tree_identifier::rvalue): Simplify. 7622 * pt-id.h (tree_identifier::do_lookup): Simplify. 7623 * pt-idx.cc (tree_index_expression::rvalue): Update. 7624 * variables.cc (symbol_exist): Update. 7625 76262009-07-21 John W. Eaton <jwe@octave.org> 7627 7628 * symtab.cc (symbol_table::builtin_find, 7629 symbol_table::do_builtin_find, 7630 symbol_table::fcn_info::builtin_find, 7631 symbol_table::fcn_info::fcn_info_rep::builtin_find, 7632 symbol_table::fcn_info::fcn_info_rep::x_builtin_find): New functions. 7633 * symtab.h: Provide decls. 7634 * DLD-FUNCTIONS/dispatch.cc (Fbuiltin): Call 7635 symbol_table::builtin_find instead of symbol_table::find_function. 7636 76372009-07-20 Aleksej Saushev <asau@inbox.ru> 7638 7639 * sysdep.cc: Also define BSD_init if __NetBSD__ is defined. 7640 (sysdep_init): Also call BSD_init if __NetBSD__ is defined. 7641 76422009-07-20 Jaroslav Hajek <highegg@gmail.com> 7643 7644 * bitfcns.cc (DO_UBITSHIFT): Avoid overflow. 7645 (DO_SBITSHIFT): Fix mask calculation. 7646 76472009-07-17 Benjamin Lindner <lindnerb@users.sourceforge.net> 7648 7649 * DLD-FUNCTIONS/__magick_read__.cc (F__magick_read__): 7650 Determine correct number of bits required when reading images. 7651 76522009-07-16 John W. Eaton <jwe@octave.org> 7653 7654 * graphics.cc (get_array_limits): Require min_pos value to be 7655 greater than zero. 7656 76572009-07-15 Robert T. Short <octave@phaselockedsystems.com> 7658 7659 * DLD-FUNCTIONS/filter.cc: New tests. 7660 76612009-07-09 John W. Eaton <jwe@octave.org> 7662 7663 * data.cc (Fones, Fzeros, Ftrue, Ffalse): Update docstrings. 7664 76652009-07-08 John W. Eaton <jwe@octave.org> 7666 7667 * graphics.cc (convert_cdata): Return NaN for NaN values in cdata. 7668 7669 * pt-assign.cc (maybe_warn_former_built_in_variable): Improve message. 7670 76712009-07-04 Jaroslav Hajek <highegg@gmail.com> 7672 7673 * pt-eval.cc (do_unwind_protect_cleanup_code): Add missing 7674 unwind_protect::run. 7675 76762009-07-02 Jaroslav Hajek <highegg@gmail.com> 7677 7678 * help.cc (do_which): Also look for files. 7679 76802009-07-02 Jaroslav Hajek <highegg@gmail.com> 7681 7682 * Cell.cc (Cell::index): Use proper resize_fill_value. 7683 76842009-07-01 Jaroslav Hajek <highegg@gmail.com> 7685 7686 * symtab.h (symbol_table::get_fcn_info): New private static method. 7687 (symbol_record_rep::finfo): New field. 7688 * symtab.cc (symbol_record::find): Use cached finfo if possible, 7689 cache on successful queries. 7690 76912008-07-01 David Bateman <dbateman@free.fr> 7692 7693 * pr-output.cc (static inline std::string rational_approx (double, 7694 int)): Test for underflow of fractional part of rational approximation 7695 earlier in the loop. 7696 76972009-07-01 Joe Rothweiler <octaveuser@sensicomm.com> 7698 7699 * input.cc (raw_mode): Use TCSADRAIN if no wait. 7700 77012009-06-30 Jaroslav Hajek <highegg@gmail.com> 7702 7703 * symtab.h (force_variable): Remove assertion. 7704 77052009-06-28 Michael Goffioul <michael.goffioul@gmail.com> 7706 7707 * Makefile.in (INCLUDES): Install txt-eng.h and txt-eng-ft.h. 7708 * gl-render.cc (opengl_renderer::draw_text): Fix bitmap offset 7709 computation for 90x rotated text. 7710 * txt-eng-ft.cc (ft_render::render): Compute bitmap pixels correctly 7711 for 90x rotated text. 7712 7713 * gl-render.cc (opengl_renderer::draw(text::properties)): Don't do 7714 anything if the bitmap data is empty. Issue a warning instead of 7715 an error if Freetype library is not available. 7716 * txt-eng-ft.cc (ft_manager::do_get_font): Small change in error 7717 string (add prefix). 7718 (ft_render::render): Don't do anything if the bitmap data is empty. 7719 77202009-06-28 Jaroslav Hajek <highegg@gmail.com> 7721 7722 * symtab.h (erase_scope (void *)): Remove overload. 7723 77242009-06-26 Michael Goffioul <michael.goffioul@gmail.com> 7725 7726 * txt-eng.h: New file for simple text engine. 7727 * txt-eng.h, txt-eng.cc: Freetype based text render engine. 7728 * Makefile.in: Add txt-eng-ft.cc to list of source files. 7729 * gl-render.h (opengl_renderer::draw_text, opengl_renderer::set_font, 7730 opengl_renderer::draw(text::properties)): New method to support text 7731 rendering using the Freetype renderer. 7732 (opengl_renderer::text_renderer): New field for text rendering. 7733 * gl-render.cc (opengl_renderer::draw(graphics_object)): Support text 7734 object. 7735 (opengl_renderer::draw(figure::properties)): Setup alpha test. 7736 (opengl_renderer::draw(axes::properties)): Render tick labels, hide 7737 labels for depth axes and fix a problem in calling 7738 graphics_object::get(char*). 7739 (opengl_renderer::draw(text::properties)): Basic text rendering using 7740 Freetype engine. 7741 (opengl_renderer::draw_text): Ditto. 7742 (opengl_renderer::set_color): Propagate the color to the text 7743 renderer. 7744 (opengl_renderer::set_font): New utility method. 7745 * graphics.cc (axes::properties::init, axes::properties::set_defauls): 7746 (Re)initialize tick labels, labels and title property. 7747 77482009-06-26 John W. Eaton <jwe@octave.org> 7749 7750 * load-path.cc (Faddpath): Preserve order of prepended elements. 7751 77522009-06-25 John W. Eaton <jwe@octave.org> 7753 7754 * graphics.h.in (gh_manager::restore_gcbo): 7755 Arg is now void, not void*. 7756 77572009-06-25 Jaroslav Hajek <highegg@gmail.com> 7758 7759 * unwind-prot.h (unwind_protect::fcn_elem): New class. 7760 (unwind_protect::fcn_arg_elem): New class. 7761 (unwind_protect::method_elem): New class. 7762 (unwind_protect::add_action_var): Rename to add_fcn. 7763 (unwind_protect::add_fcn): New static method. 7764 (unwind_protect::add_method): New static method. 7765 7766 * symtab.h: Split clear_variables into two overloads. 7767 * toplev.h (octave_call_stack::restore_frame): New static method. 7768 7769 * graphics.cc: Update unwind_protect usage. 7770 * input.cc: Ditto. 7771 * lex.h: Ditto. 7772 * ls-mat5.cc: Ditto. 7773 * mex.cc: Ditto. 7774 * ov-builtin.cc: Ditto. 7775 * ov-fcn-handle.cc: Ditto. 7776 * ov-mex-fcn.cc: Ditto. 7777 * ov-usr-fcn.cc: Ditto. 7778 * parse.y: Ditto. 7779 * pt-eval.cc: Ditto. 7780 * toplev.cc: Ditto. 7781 * variables.cc: Ditto. 7782 77832009-06-25 Jaroslav Hajek <highegg@gmail.com> 7784 7785 * input.cc: Use unwind_protect::add_action_var where appropriate. 7786 * ls-mat5.cc: Ditto. 7787 * ov-fcn-handle.cc: Ditto. 7788 * parse.y: Ditto. 7789 * toplev.cc: Ditto. 7790 * variables.cc: Ditto. 7791 77922009-06-25 Jaroslav Hajek <highegg@gmail.com> 7793 7794 * unwind-prot.h (unwind_protect::elem): New polymorphic class. 7795 (unwind_protect::restore_var): Remove. 7796 (unwind_protect::restore_mem): Remove. 7797 (unwind_protect::elt_list): Update. 7798 (unwind_protect::add (elem *)): New method. 7799 (unwind_protect::add (void (*)(void *), void *)): Reimplement. 7800 (unwind_protect::run (void)): Rewrite. 7801 (unwind_protect::discard (void)): Rewrite. 7802 (unwind_protect::protect_var): Rewrite. 7803 (unwind_protect::protect_mem): Rewrite. 7804 (unwind_protect::add_action_var): New method. 7805 * unwind-prot.cc (unwind_protect::restore_mem): Remove. 7806 78072009-06-24 Thorsten Meyer <thorsten.meyier@gmx.de> 7808 7809 * oct-map.cc (Octave_map::squeeze, Octave_map::permute, 7810 Octave_map::transpose, Octave_map::reshape, Octave_map::concat, 7811 Octave_map::index): Add tests for preservation of key order in 7812 struct arrays. 7813 78142009-06-24 Jaroslav Hajek <highegg@gmail.com> 7815 7816 * pt-mat.cc (get_concat_class): Use empty string as zero value. 7817 (tm_row_const_rep::tm_row_const_rep): Initialize class_nm to empty 7818 string. 7819 (tm_const::tm_const): Ditto. 7820 78212009-06-24 John W. Eaton <jwe@octave.org> 7822 7823 * pt-assign.cc (former_built_in_variables): Remove "ans" from the list. 7824 78252009-06-24 Jaroslav Hajek <highegg@gmail.com> 7826 7827 * unwind-prot.h (restore_var, restore_mem): Hide also copy 7828 constructors. 7829 78302009-06-23 Jaroslav Hajek <highegg@gmail.com> 7831 7832 * quit.h (octave_quit_exception): Delete. 7833 (exit_status, quitting_gracefully): New globals. 7834 * quit.cc: Initialize them. 7835 (Fquit): Set the globals, simulate interrupt. 7836 (main_loop): Handle exit properly. 7837 * octave.cc (execute_eval_option_code): Ditto. 7838 (execute_command_line_file): Ditto. 7839 * pt-eval.cc (do_unwind_protect_cleanup_code): 7840 Fix order of unwind_protect calls. 7841 78422009-06-23 John W. Eaton <jwe@octave.org> 7843 7844 * oct-map.cc (Octave_map::squeeze, Octave_map::permute, 7845 Octave_map::transpose, Octave_map::reshape, Octave_map::concat): 7846 Preserve key order. 7847 78482009-06-23 Jaroslav Hajek <highegg@gmail.com> 7849 7850 * pt-eval.cc (tree_evaluator::visit_try_catch_command): Simplify. 7851 78522009-06-23 Jaroslav Hajek <highegg@gmail.com> 7853 7854 * DLD-FUNCTIONS/cellfun.cc: Modernize unwind_protect usage. 7855 * DLD-FUNCTIONS/daspk.cc: Ditto. 7856 * DLD-FUNCTIONS/dasrt.cc: Ditto. 7857 * DLD-FUNCTIONS/dassl.cc: Ditto. 7858 * DLD-FUNCTIONS/eigs.cc: Ditto. 7859 * DLD-FUNCTIONS/lsode.cc: Ditto. 7860 * DLD-FUNCTIONS/quad.cc: Ditto. 7861 * DLD-FUNCTIONS/rand.cc: Ditto. 7862 * debug.cc: Ditto. 7863 * dynamic-ld.cc: Ditto. 7864 * error.cc: Ditto. 7865 * graphics.cc: Ditto. 7866 * help.cc: Ditto. 7867 * input.cc: Ditto. 7868 * load-path.cc: Ditto. 7869 * ls-mat4.cc: Ditto. 7870 * ls-mat5.cc: Ditto. 7871 * mex.cc: Ditto. 7872 * oct-hist.cc: Ditto. 7873 * octave.cc: Ditto. 7874 * ov-builtin.cc: Ditto. 7875 * ov-class.cc: Ditto. 7876 * ov-fcn-handle.cc: Ditto. 7877 * ov-list.cc: Ditto. 7878 * ov-mex-fcn.cc: Ditto. 7879 * ov-struct.cc: Ditto. 7880 * ov-usr-fcn.cc: Ditto. 7881 * pager.cc: Ditto. 7882 * pr-output.cc: Ditto. 7883 * pt-arg-list.cc: Ditto. 7884 * pt-eval.cc: Ditto. 7885 * toplev.cc: Ditto. 7886 * variables.cc: Ditto. 7887 78882009-06-22 Jaroslav Hajek <highegg@gmail.com> 7889 7890 * unwind-prot.h (unwind_protect): Rewrite. 7891 (unwind_protect::protect_var): New class. 7892 (unwind_protect::protect_mem): New class. 7893 * unwind-prot.cc (unwind_protect): Rewrite. 7894 * pt-eval.cc (tree_evaluator::visit_try_catch_command): Delete frame 7895 properly. 7896 78972009-06-22 Jaroslav Hajek <highegg@gmail.com> 7898 7899 * ov-cell.cc (octave_cell::all_strings): Avoid duplicate conversions. 7900 79012009-06-20 Jaroslav Hajek <highegg@gmail.com> 7902 7903 * ov.cc (Fsubsasgn): Uniquify shared value before assigning to it. 7904 79052009-06-19 Jaroslav Hajek <highegg@gmail.com> 7906 7907 * DLD-FUNCTIONS/lookup.cc: Update docs. 7908 79092009-06-17 John W. Eaton <jwe@octave.org> 7910 7911 * mex.cc (mxArray_octave_value::get_data): 7912 If octave_value::mex_get_data returns a valid pointer, mark it as 7913 foreign and return it instead of enumerating the types that can be 7914 handled directly. 7915 7916 * ov-re-mat.h (octave_matrix::mex_get_data): New function. 7917 * ov-bool-mat.h (octave_bool_matrix::mex_get_data): Ditto. 7918 * ov-flt-re-mat.h (octave_float_matrix::mex_get_data): Ditto. 7919 * ov-intx.h (OCTAVE_VALUE_INT_MATRIX_T::mex_get_data): Ditto. 7920 * ov-base-mat.h (octave_base_matrix::mex_get_data): Delete. 7921 79222009-06-16 Jaroslav Hajek <highegg@gmail.com> 7923 7924 * symtab.h (symbol_table::set_scope_and_context): Avoid checking 7925 error_state for setting context. 7926 79272009-06-15 Jaroslav Hajek <highegg@gmail.com> 7928 7929 * ov-re-mat.h (octave_matrix::octave_matrix (const Array<octave_idx_type>&, 7930 bool)): New constructor. 7931 * ov.cc (octave_value::octave_value (const Array<octave_idx_type>&, 7932 bool)): New constructor. 7933 * ov.h: Declare it. 7934 7935 * data.cc (Fsort, F__sort_rows_idx__): Use the new constructor. 7936 * DLD-FUNCTIONS/find.cc (Ffind): Ditto. 7937 * DLD-FUNCTIONS/lookup.cc (Flookup): Ditto. 7938 * DLD-FUNCTIONS/max.cc (Fmax, Fmin, Fcummax, Fcummin): Ditto. 7939 79402009-06-15 Jaroslav Hajek <highegg@gmail.com> 7941 7942 * ov-base-mat.h (octave_base_matrix::idx_cache): New member field. 7943 (octave_base_matrix::typ): Turn to MatrixType *. 7944 (octave_base_matrix::octave_base_matrix (...)): Update constructors. 7945 (octave_base_matrix::clear_cached_info, 7946 octave_base_matrix::set_idx_cache): New member functions. 7947 * ov-base-mat.cc (octave_base_matrix::assign, 7948 octave_base_matrix::delete_elements): Call clear_cached_info here. 7949 * ov-re-mat.h (octave_matrix::index_vector): Use idx_cache. 7950 * ov-flt-re-mat.h (octave_float_matrix::index_vector): Ditto. 7951 * ov-bool-mat.h (octave_bool_matrix::index_vector): Ditto. 7952 * ov-intx.h (OCTAVE_VALUE_INT_MATRIX_T::index_vector): Ditto. 7953 * ov-range.h (octave_range::idx_cache): New member field. 7954 (octave_range::octave_range (...)): Update constructors. 7955 (octave_range::clear_cached_info, 7956 octave_base_matrix::set_idx_cache): New member functions. 7957 (octave_range::idx_vector): Use idx_cache. 7958 79592009-06-14 Michael Goffioul <michael.goffioul@gmail.com> 7960 7961 * graphics.h.in (axes::properties::xtick, axes::properties::ytick, 7962 axes::properties::ztick, axes::properties::xticklabelmode, 7963 axes::properties::yticklabelmode, axes::properties::zticklabelmode): 7964 Add 'u' modifier to enable updaters. 7965 (axes::properties::calc_ticklabels): New function to update tick 7966 labels. 7967 (axes::properties::update_xtick, axes::properties::update_ytick, 7968 axes::properties::update_ztick, 7969 axes::properties::update_xticklabelmode, 7970 axes::properties::update_yticklabelmode, 7971 axes::properties::update_zticklabelmode): Add updaters to update tick 7972 labels correctly. 7973 (axes::properties::update_xlim, axes::properties::update_ylim, 7974 axes::properties::update_zlim): Update tick labels. 7975 * graphics.cc (axes::properties::calc_ticklabels): New function to 7976 update tick labels. 7977 79782009-06-14 Jaroslav Hajek <highegg@gmail.com> 7979 7980 * DLD-FUNCTIONS/lookup.cc (Flookup): Support character array lookup. 7981 79822009-06-12 John W. Eaton <jwe@octave.org> 7983 7984 * ov-fcn-handle.cc (make_fcn_handle): Accept operators which have 7985 corresponding functions and make function handles using the names. 7986 New test. 7987 79882009-06-12 Jaroslav Hajek <highegg@gmail.com> 7989 7990 * DLD-FUNCTIONS/lookup.cc (do_numeric_lookup): New template function. 7991 (Flookup): Extend to support b and m options, improve diagnostic. 7992 Refactor. 7993 79942009-06-12 Kai NODA <nodakai@gmail.com> 7995 7996 * ls-mat4.h: Fix include guard 7997 * ov-type-conv.h: Add missing include guard. 7998 79992009-06-12 Jaroslav Hajek <highegg@gmail.com> 8000 8001 * data.cc (BINARY_ASSOC_OP_DEFUN_BODY): New helper macro. 8002 (Fplus, Fmtimes, Ftimes, Fand, For): Allow >= 1 arguments. 8003 80042009-06-12 Jaroslav Hajek <highegg@gmail.com> 8005 8006 * ov-cell.cc (octave_cell::sort (Array<octave_idx_type>&)): Simplify. 8007 80082009-06-11 John W. Eaton <jwe@octave.org> 8009 8010 * octave.cc: Keep long options alphabetized. 8011 8012 * display.h (display_info::no_window_system): New static function. 8013 (display_info::display_info, display_info::init, 8014 display_info::instance_ok): New argument, QUERY. 8015 (display_info::init): Skip query if QUERY is false. 8016 8017 * octave.cc (long_opts, octave_main): Handle --no-window-system option. 8018 (NO_WINDOW_SYSTEM_OPTION): New defined value. 8019 (usage_string, verbose_usage): Mention --no-window-system option. 8020 80212009-06-11 Jaroslav Hajek <highegg@gmail.com> 8022 8023 * ov-class.cc (octave_class::subsref): Set up proper nargout for call to subsref 8024 method. 8025 * ov-class.cc (octave_class::subsref): Unpack cs-list and setup nargin 8026 for call to subsasgn. 8027 80282009-06-10 Jaroslav Hajek <highegg@gmail.com> 8029 8030 * ov-base.cc (octave_base_value::numel (const octave_value_list&), 8031 octave_base_value::size): New virtual methods. 8032 * ov-base.h: Declare them. 8033 * ov.h (octave_value::numel (const octave_value_list&)): New method. 8034 (octave_value::size): Forward to octave_base_value. 8035 * ov-class.cc (octave_class::numel (const octave_value_list&), 8036 octave_base_value::size): New method overrides. 8037 * ov-class.h: Declare them. 8038 * pt-idx.cc (tree_index_expression::lvalue): Rewrite. 8039 * data.cc (Fnumel): Allow indexed query. 8040 80412009-06-10 John W. Eaton <jwe@octave.org> 8042 8043 * pt-fcn-handle.cc (tree_anon_fcn_handle::dup): Don't convert to 8044 tree_constant object here. Do inherit from current symbol table 8045 scope and context. New test. 8046 8047 * lex.l (handle_identifier): Set lexer_flags.looking_for_object_index 8048 false if identifier is a keyword. 8049 ({IDENT}{S}*): Don't set lexer_flags.looking_for_object_index here. 8050 80512009-06-09 Jaroslav Hajek <highegg@gmail.com> 8052 8053 * octave.cc (octave_main): Call initialize_command_input 8054 conditionally. Move line_editing update in front of it. 8055 Call command_editor::force_default_editor if not line_editing. 8056 80572009-06-09 Jaroslav Hajek <highegg@gmail.com> 8058 8059 * data.cc (Flog2): Fix tests. 8060 80612009-06-08 John W. Eaton <jwe@octave.org> 8062 8063 * variables.cc (symbol_exist): Returnn 1 for function handles and 8064 inline function objects. 8065 80662009-06-08 Jaroslav Hajek <highegg@gmail.com> 8067 8068 * symtab.h (symbol_table::do_clear_global, 8069 symbol_table::do_clear_global_pattern): Properly erase from both local 8070 and global table. 8071 80722009-06-08 Jaroslav Hajek <highegg@gmail.com> 8073 8074 * variables.cc (Fclear): Clear also globals when called without 8075 arguments. 8076 80772009-06-07 Jaroslav Hajek <highegg@gmail.com> 8078 8079 * graphics.cc (color_property::do_set): Allow a wider range of types. 8080 80812009-06-07 Jaroslav Hajek <highegg@gmail.com> 8082 8083 * DLD-FUNCTIONS/find.cc (Ffind): Fix docs. Improve second argument 8084 handling. Add regression tests. 8085 80862009-06-06 Rik <rdrider0-list@yahoo.com> 8087 8088 * data.cc: Update documentation for 'complex' function 8089 80902009-06-06 Rik <rdrider0-list@yahoo.com> 8091 8092 * load-save.cc: Update documentation for NA and isna functions 8093 80942009-06-06 Rik <rdrider0-list@yahoo.com> 8095 8096 * load-save.cc: Update documentation for load and save 8097 80982009-06-06 Rik <rdrider0-list@yahoo.com> 8099 8100 * pr-output.cc: Update documentation for 'format' 8101 81022009-06-05 Rik <rdrider0-list@yahoo.com> 8103 8104 * variables.cc: Update documentation for 'who' family of functions 8105 81062009-06-03 Rik <rdrider0-list@yahoo.com> 8107 8108 * input.cc: Correct documentation for keyboard function 8109 81102009-06-02 Rob Mahurin <rob@utk.edu> 8111 8112 * Makefile.in: Add CARBON_LIBS to OCTINTERP_LINK_DEPS. 8113 From Bernard Desgraups <bdesgraupes@orange.fr>. 8114 81152009-06-02 Jaroslav Hajek <highegg@gmail.com> 8116 8117 * ov-base.cc (octave_base_value::numeric_assign): Gripe when no index 8118 given. 8119 * ov-cell.cc (octave_cell::subsasgn): Ditto. 8120 * ov-struct.cc (octave_struct::subsasgn): Ditto. 8121 * ov-list.cc (octave_list::subsasgn): Ditto. 8122 81232009-05-28 John W. Eaton <jwe@octave.org> 8124 8125 * load-path.cc (load_path::do_files): Avoid shadow warning from GCC. 8126 81272009-05-27 John W. Eaton <jwe@octave.org> 8128 8129 * DLD-FUNCTIONS/__magick_read__.cc (write_image): 8130 Bail out if given indexed image. 8131 81322009-05-27 Jaroslav Hajek <highegg@gmail.com> 8133 8134 * DLD-FUNCTIONS/__magick_read__.cc (encode_map): Fix RGB color 8135 construction. 8136 81372009-05-26 John W. Eaton <jwe@octave.org> 8138 8139 * load-path.h, load-path.cc (load_path::files, load_path::do_files): 8140 New arg, OMIT_EXTS. 8141 * help.cc (F__list_functions__): Call load_path::files with 8142 omit_exts set to true. 8143 8144 * symtab.h 8145 (symbol_table::symbol_record::symbol_record_rep::is_variable): 8146 Use "! is_local ()" instead of storage_class != local. 8147 (symbol_table::do_variable_names): Only add variables to the list. 8148 (symbol_table::unmark_forced_variables): New static function 8149 * variables.cc (do_who): Use is_variable instead of is_defined. 8150 Also limit output to variables when using regexp pattern. 8151 * octave.cc (unmark_forced_vars): Delete. 8152 (execute_eval_option_code): Don't add unmark_forced_vars to 8153 unwind_protect stack here. 8154 * toplev.cc (main_loop): Add symbol_table::unmark_forced_variables 8155 to the unwind_protect stack here. 8156 * input.cc (get_debug_input): Likewise. 8157 * parse.y (parse_fcn_file, eval_string): Likewise. 8158 81592009-05-25 Jaroslav Hajek <highegg@gmail.com> 8160 8161 * toplev.h (quit_allowed): New global variable. 8162 * toplev.cc (quit_allowed): Declare it. 8163 (Fquit): Raise error if quitting is not allowed. 8164 * octave.cc (octave_main): if running as embedded, disable quit by 8165 default. 8166 81672009-05-25 Jaroslav Hajek <highegg@gmail.com> 8168 8169 * variables.cc (do_who): Only output symbols with a defined value. 8170 81712009-05-22 Michael Goffioul <michael.goffioul@gmail.com> 8172 8173 * toplev.h (main_loop): Tag with OCTINTERP_API. 8174 * input.h (octave_read, get_input_from_file, get_input_from_stdin): 8175 Ditto. 8176 * lex.h (create_buffer, current_buffer, switch_to_buffer, 8177 delete_buffer, restore_input_buffer, delete_input_buffer): Ditto. 8178 81792009-05-22 Robert T. Short <octave@phaselockedsystems.com> 8180 8181 * ov-class.h, ov-class.cc (octave_class::clear_exemplar_map): 8182 New function. 8183 * symtab.h (symbol_record::clear_objects, 8184 symbol_record::do_clear_objects): New functions. 8185 * variables.cc (do_matlab_compatible_clear, clear): 8186 Handle -classes option. 8187 81882009-05-22 Jaroslav Hajek <highegg@gmail.com> 8189 8190 * ov-base-mat.cc (octave_base_matrix<MT>::assign (const 8191 octave_value_list, typename MT::element_type)): Avoid out of bounds 8192 assignments. 8193 81942009-05-21 Michael Goffioul <michael.goffioul@gmail.com> 8195 8196 * graphics.cc (figure::properties::get_boundingbox, 8197 figure::properties::set_boundingbox): Get screen size from root 8198 object. 8199 (convert_position): Get screen resolution from root object and remove 8200 unneeded "backend" argument. 8201 (axes::properties::get_boundingbox, 8202 figure::properties::get_boundingbox, 8203 figure::properties::set_boundingbox): Remove unneeded backend argument 8204 to convert_position call. 8205 8206 * debug.h (class bp_table): Tag with OCTINTERP_API. 8207 * input.h (Vdebugging): Ditto. 8208 * pt-eval.h (class tree_evaluator): Ditto. 8209 * toplev.h (class octave_call_stack): Ditto. 8210 8211 * file-io.cc (mkstemp): Add mktemp-based implementation of mkstemp on 8212 platforms that do not have it (mkstemp is required by the new help 8213 system). 8214 8215 * TEMPLATE-INST/Array-os.cc: Add "extern template" declaration for 8216 Array<octave_idx_type> to avoid implicit instantiation (and duplicate 8217 symbols at link-time) [Win32] 8218 82192009-05-20 John W. Eaton <jwe@octave.org> 8220 8221 * pt-assign.cc (maybe_warn_former_built_in_variable): 8222 Set initialized to true when done initializing vars set. 8223 From Michael Goffioul <michael.goffioul@gmail.com>. 8224 82252009-05-20 Jaroslav Hajek <highegg@gmail.com> 8226 8227 * ov-typeinfo.h 8228 (octave_value_typeinfo::unary_class_ops, 8229 octave_value_typeinfo::unary_ops, 8230 octave_value_typeinfo::non_const_unary_ops, 8231 octave_value_typeinfo::binary_class_ops, 8232 octave_value_typeinfo::binary_ops, 8233 octave_value_typeinfo::compound_binary_class_ops, 8234 octave_value_typeinfo::compound_binary_ops, 8235 octave_value_typeinfo::cat_ops, 8236 octave_value_typeinfo::assign_ops, 8237 octave_value_typeinfo::assignany_ops, 8238 octave_value_typeinfo::pref_assign_conv, 8239 octave_value_typeinfo::type_conv_ops, 8240 octave_value_typeinfo::widening_ops): Declare as Array<void *>. 8241 * ov-typeinfo.cc: Reflect changes. 8242 82432009-05-20 Jaroslav Hajek <highegg@gmail.com> 8244 8245 * toplev.h (octave_exit_func): New typedef. 8246 (octave_exit): Change to octave_exit_func. 8247 82482009-05-20 Jaroslav Hajek <highegg@gmail.com> 8249 8250 * ov-typeinfo.cc: Don't include oct-obj.h. 8251 82522009-05-20 Jaroslav Hajek <highegg@gmail.com> 8253 8254 * toplev.h (octave_quit_exception): New class. 8255 (octave_exit): New global variable. 8256 * toplev.cc (octave_exit): Initialize to ::exit. 8257 (clean_up_and_exit): Call octave_exit if set. 8258 (Fquit): Raise octave_quit_exception to quit. 8259 (main_loop): Catch octave_quit_exception. 8260 * octave.cc (execute_command_line_file): Ditto. 8261 (execute_eval_option_code): Ditto. 8262 82632009-05-19 John W. Eaton <jwe@octave.org> 8264 8265 * DLD-FUNCTIONS/fltk_backend.cc (F__fltk_redraw__): New function. 8266 (F__init_fltk__): Call add_input_event_hook with feval to add 8267 __fltk_redraw__ to the list of even hook functions to call. 8268 Call mlock when initializing. 8269 (F__remove_fltk__): Call remove_input_event_hook with feval to 8270 remove __fltk_redraw__ from the list of event hook functions. 8271 Unlock __init_fltk__ when shutting down. 8272 8273 * input.cc (Finput_event_hook): Delete. 8274 (input_event_hook): Handle set of functions instead of just one. 8275 (Fadd_input_event_hook, Fremove_input_event_hook): New functions. 8276 82772009-05-19 Jaroslav Hajek <highegg@gmail.com> 8278 8279 * Makefile.in: Add X11_LIBS to OCTINTERP_LINK_DEPS. 8280 82812009-05-17 Jaroslav Hajek <highegg@gmail.com> 8282 8283 * TEMPLATE-INST/Array-tc.cc: Change #include. 8284 82852009-05-15 Robert T. Short <octave@phaselockedsystems.com> 8286 8287 * ov-class.cc (octave_class::exemplar_info): Fix typo in error message. 8288 * ov-class.cc (Fmethods): Methods returns cell array. 8289 * ls-mat5.cc (read_mat5_binary_element): 8290 Construct exemplar array and ensure inheritance is correct. 8291 82922009-05-15 John W. Eaton <jwe@octave.org> 8293 8294 * error.cc (Ferror): Handle error struct argument. 8295 8296 * ls-mat5.cc (save_mat5_binary_element): Avoid multiple calls to 8297 contents method. From David Bateman <dbateman@free.fr>. 8298 (save_mat5_element_length): Use const Cell to avoid making copies 8299 when indexing. 8300 83012009-05-15 Jaroslav Hajek <highegg@gmail.com> 8302 8303 * oct-stream.cc: Don't instantiate Array2<read_fptr>. 8304 (octave_stream::read): Make read_fptr_table a static 2d array. 8305 (FILL_TABLE_ROW): Update. 8306 83072009-05-12 Jaroslav Hajek <highegg@gmail.com> 8308 8309 * data.cc (F__accumarray_sum__): Optimize the constant range case. 8310 83112009-05-11 John W. Eaton <jwe@octave.org> 8312 8313 * sparse-xdiv.cc (do_rightdiv_sm_dm, do_leftdiv_dm_sm): 8314 Avoid apparent MSVC bug with typedef. 8315 8316 * Makefile.in (install-lib): Remove 8317 $(DESTDIR)$(octlibdir)/$(SHLLIBPRE)octinterp.$(SHLLIB_VER), not 8318 $(DESTDIR)$(octlibdir)/$(SHLPRE)octinterp.$(SHLEXT_VER). 8319 83202009-05-08 Carsten Clark <tantumquantum+gnuoctave@gmail.com> 8321 8322 * data.cc (Fissorted): Fix typo in documentation entry. 8323 83242009-05-07 Robert T. Short <octave@phaselockedsystems.com> 8325 8326 * ov-class.h, ov-class.cc (octave_class::reconstruct_exemplar): 8327 New function. 8328 * ov-class.cc (octave_class::load_binary, octave_class::load_hdf5, 8329 octave_class::load_ascii): Construct exemplar table and ensure 8330 inheritance is correct. 8331 * ov-struct.cc (struct): Return struct from object. 8332 83332009-05-07 John W. Eaton <jwe@octave.org> 8334 8335 * graphics.h.in (base_graphics_object::set): Undo previous change. 8336 (base_properties::set (const caseless_str&, const octave_value&): 8337 New virtual function. 8338 (base_properties::set (const caseless_str&, const std::string&, 8339 const octave_value&)): No longer virtual. 8340 8341 * toplev.cc (octave_config_info): Remove F2C and F2CFLAGS from the 8342 config infor struct. 8343 * oct-conf.h.in (OCTAVE_CONF_F2CFLAGS, OCTAVE_CONF_F2C): 8344 Delete definitions. 8345 83462009-05-07 Marco Atzeri <marco_atzeri@yahoo.it> 8347 8348 * Makefile.in: (SHLPRE): Rename from SHLLIBPRE. 8349 83502009-05-07 John W. Eaton <jwe@octave.org> 8351 8352 * genprops.awk (emit_declarations): Emit decls for static 8353 has_property functions. 8354 (emit_source): Add class name argument to base_properties::set 8355 function. Pass class name to set_dynamic and 8356 base_properties::set. Emit definitions for has_property 8357 functions. 8358 * graphics.h.in, graphics.cc 8359 (base_properties::set, base_properties::set_dynamic): 8360 New argument CNAME. 8361 (base_properties::all_dynamic_properties): New static data member. 8362 (base_properties::has_dynamic_property): New static function. 8363 (base_graphics_object::set): Pass class name to 8364 base_properties::set function. 8365 (property_list::set): Check for invalid property names. 8366 83672009-05-06 Jaroslav Hajek <highegg@gmail.com> 8368 8369 * ov-re-mat.cc (Fdouble): Fix order of branches. 8370 83712009-05-05 John Swensen <jpswensen@comcast.net> 8372 8373 * debug.h, debug.cc (breakpoints): Rename from bp_map, use a 8374 std::set instead of a std::map object. Change all uses. 8375 (bp_table::do_get_breakpoint_list): Simplify. 8376 83772009-05-05 Robert T. Short <octave@phaselockedsystems.com> 8378 8379 * ov-class.h, ov-class.cc (octave_class::reconstruct_parents): 8380 New function. 8381 * ov-class.cc (octave_class::load_binary, octave_class::load_hdf5): 8382 Contstruct parent list. 8383 (get_current_method_class): Clean up method class extraction. 8384 83852009-05-05 John W. Eaton <jwe@octave.org> 8386 8387 * graphics.cc (array_property::validate): Require object to be any 8388 numeric type, not necessarily a double precision value. 8389 8390 * variables.cc (set_internal_variable): Pass NM in call to error. 8391 83922009-05-04 Peter O'Gorman <pogma@thewrittenword.com> 8393 8394 * utils.cc: Don't define HAVE_C99_VSNPRINTF here. 8395 83962009-05-01 John W. Eaton <jwe@octave.org> 8397 8398 * error.cc (Vlast_error_file, Vlast_error_name, Vlast_error_line, 8399 Vlast_error_column): Delete. 8400 (Vlast_error_stack): New static variable. 8401 (initialize_last_error_stack): New static function. 8402 (verror, Frethrow, Flasterror): Set or use Vlast_error_stack, not 8403 Vlast_error_file, etc. 8404 84052009-04-27 John W. Eaton <jwe@octave.org> 8406 8407 * ov-class.cc (octave_class::dotref): Handle empty parent class. 8408 (octave_class::get_current_method_class): Allow result to be empty. 8409 (called_from_builtin): New static function. 8410 (octave_class::subsref, octave_class::subsasgn): Use it. 8411 84122009-04-23 John W. Eaton <jwe@octave.org> 8413 8414 * ov-class.cc (Fclass): Check newly constructed classes against 8415 the first constructed object of the class. 8416 8417 * ov-class.h, ov-class.cc (octave_class::exmplar_info): New class. 8418 (exemplar_map): New static data member. 8419 (exemplar_iterator, exemplar_const_iterator): New typedefs. 8420 8421 * ov-class.h (octave_class::nparents, 8422 octave_class::parent_class_name_list): New functions. 8423 * ov.h (octave_base_value::nparents, 8424 octave_base_value::parent_class_name_list): New functions. 8425 * ov-base.h, ov-base.cc (octave_base_value::nparents, 8426 octave_base_value::parent_class_name_list): New functions. 8427 (parent_class_names): Error if called for wrong type argument. 8428 8429 * symtab.cc (load_out_of_date_fcn): New arg, dispatch_type. 8430 (out_of_date_check_internal): Pass dispatch type to 8431 load_out_of_date_fcn. 8432 84332009-04-22 John W. Eaton <jwe@octave.org> 8434 8435 * ov-base-int.cc (octave_base_int_helper<T, false, 8436 false>::char_value_out_of_range): Correct result for specialization. 8437 8438 * ov-class.cc (octave_class::dotref, octave_class::subsasgn): 8439 Protect against possibly invalid octave_value -> string conversions. 8440 84412009-04-22 Robert T. Short <octave@phaselockedsystems.com> 8442 8443 * variables.cc (symbol_exist): Also return 1 for objects. 8444 * ov-base.h (octave_base_value::assign): New virtual function. 8445 * ov-class.h (octave_class::assign): New function. 8446 * ov-class.cc (octave_class::find_parent_class): Simplify. 8447 (octave_class::octave_class): Don't allow duplicate parent classes. 8448 (octave_class::subsasgn): Allow cls = method (cls, value) to work 8449 properly when method is a parent-class method. 8450 (get_method_class): New static function. 8451 (octave_class:subsasgn, octave_class::dotref): Use it. 8452 (F__isa_parent__): New function. 8453 84542009-04-22 Jaroslav Hajek <highegg@gmail.com> 8455 8456 * ov-range.cc (octave_range::char_array_value): New virtual function 8457 override. 8458 * ov-range.h: Declare it. 8459 84602009-04-22 Jaroslav Hajek <highegg@gmail.com> 8461 8462 * pt-mat.cc (tm_row_const::tm_row_const_rep::do_init_element): 8463 Update class name even for all-zeros elements. 8464 (get_concat_class): Update the default value if possible. 8465 84662009-04-21 John W. Eaton <jwe@octave.org> 8467 8468 * parse.y (Fassignin): Add missing unwind_protect frame. 8469 8470 * toplev.h (push (symbol_table::scope_id, symbol_table::context_id)): 8471 New function. 8472 8473 * toplev.cc (main_loop): Don't call symbol_table::reset_scope. 8474 8475 * mex.cc (mexGetVariable, mexPutVariable): Use unwind_protect to 8476 restore call stack and scope. 8477 8478 * ov-usr-fcn.cc (octave_user_function::do_multi_index_op): 8479 Don't use symbol_table::push_scope. 8480 * variablees.cc (do_who): Likewise. Use octave_call_stack and 8481 unwind_protect to manage change in scope. 8482 * ov-fcn-handle.cc (octave_fcn_handle::load_ascii, 8483 octave_fcn_handle::load_binary, octave_fcn_handle::load_hdf5): 8484 Likewise. 8485 * ls-mat5.cc (read_mat5_binary_element): Likewise. 8486 8487 * symtab.h (erase_scope (void*)): New function, for unwind_protect. 8488 (symbol_table::push_scope, symbol_table::pop_scope, 8489 symbol_table::reset_scope): Delete. 8490 (symbol_table::scope_stack): Delete static member. 8491 * symtab.cc (symbol_table::scope_stack): Delete definition. 8492 84932009-04-17 Jaroslav Hajek <highegg@gmail.com> 8494 8495 * oct-map.h (Octave_map::contents (const_iterator) const, 8496 Octave_map::contents (iterator)): Simplify. 8497 84982009-04-17 Jaroslav Hajek <highegg@gmail.com> 8499 8500 * oct-map.cc (Octave_map::assign (const octave_value_list&, const 8501 std::string&, const Cell&)): Fix & simplify. 8502 (common_size): Remove. 8503 85042009-04-16 Jaroslav Hajek <highegg@gmail.com> 8505 8506 * pt-idx.cc (make_value_list): Gripe on magic end query for undefined 8507 variables. 8508 85092009-04-16 Jaroslav Hajek <highegg@gmail.com> 8510 8511 * xpow.cc (same_sign): New helper function. 8512 (elem_xpow (double, const Range&), elem_xpow (const Complex&, const Range&)): 8513 Only optimize monotonic-magnitude integer ranges, start always from 8514 the smaller end. 8515 85162008-04-11 David Bateman <dbateman@free.fr> 8517 8518 * ov-cell.cc (Fstruct2cell): Treat possible trailing singleton for 8519 creation of cell array from column structure vector. 8520 85212009-04-09 Jaroslav Hajek <highegg@gmail.com> 8522 8523 * ov-cell.cc (octave_cell::subsasgn): Fix reference counting 8524 optimization. 8525 85262009-04-08 John W. Eaton <jwe@octave.org> 8527 8528 * load-path.cc (rehash_internal): New function. 8529 (Frehash): Use it. 8530 (Fpath, Faddpath, Frmpath): Call rehash_internal if path is modified. 8531 85322009-04-08 Jaroslav Hajek <highegg@gmail.com> 8533 8534 * xpow.cc (elem_xpow (double, const Range&), 8535 elem_xpow (const Complex&, const Range&)): New functions. 8536 * xpow.h: Declare them. 8537 * OPERATORS/op-range.cc: Define scalar .^ range and complex .^ range & 8538 install them. 8539 85402009-04-04 Jaroslav Hajek <highegg@gmail.com> 8541 8542 * ov-struct.cc (octave_struct::subsasgn): Fix reference counting 8543 optimization. 8544 85452008-04-03 David Bateman <dbateman@free.fr> 8546 8547 * DLD-FUNCTIONS/max.cc (MINMAX_SPARSE_BODY): Allow sparse boolean 8548 values. 8549 85502009-04-01 Jaroslav Hajek <highegg@gmail.com> 8551 8552 * ov-str-mat.cc (default_numeric_conversion_function): 8553 Create an octave_scalar if possible. 8554 85552009-03-29 John W. Eaton <jwe@octave.org> 8556 8557 * DLD-FUNCTIONS/fltk_backend.cc (plot_window::button_press): 8558 Don't pass arbitrary input to fl_message as a format string. 8559 85602009-03-29 Jaroslav Hajek <highegg@gmail.com> 8561 8562 * pt-eval.cc (do_unwind_protect_cleanup_code): Protect also 8563 octave_interrupt_state. 8564 85652009-03-29 Jaroslav Hajek <highegg@gmail.com> 8566 8567 * DLD-FUNCTIONS/cellfun.cc (Fcellslices): Index n-d arrays along the 8568 last dimension. 8569 85702009-03-27 Jaroslav Hajek <highegg@gmail.com> 8571 8572 * DLD-FUNCTIONS/balance.cc (Fbalance): Fix order of output args. 8573 85742009-03-26 Jaroslav Hajek <highegg@gmail.com> 8575 8576 * DLD-FUNCTIONS/find.cc 8577 (find_nonzero_elem_idx (const Array<T>&, ...)): Move dimensions 8578 fixup to liboctave. 8579 85802009-03-26 Jaroslav Hajek <highegg@gmail.com> 8581 8582 * DLD-FUNCTIONS/find.cc 8583 (find_nonzero_elem_idx (const Array<T>&, ...)): Simplify. 8584 Instantiate for bool and octave_int types. 8585 (find_nonzero_elem_idx (const Sparse<T>&, ...)): 8586 Instantiate for bool. 8587 (Ffind): Handle bool and octave_int cases. 8588 85892009-03-25 John W. Eaton <jwe@octave.org> 8590 8591 * version.h (OCTAVE_VERSION): Now 3.1.55+. 8592 (OCTAVE_API_VERSION): Now api-v37+. 8593 8594 * version.h (OCTAVE_VERSION): Now 3.1.55. 8595 (OCTAVE_API_VERSION): Now api-v37. 8596 (OCTAVE_RELEASE_DATE): Now 2009-03-25. 8597 8598 * DLD-FUNCTIONS/find.cc (find_nonzero_elem_idx): Also return 8599 [](0x0) if the array has 0 rows and it is not a column vector. 8600 8601 * oct-stream.cc (octave_stream::write (const Array<T>&, 8602 octave_idx_type, oct_data_conv::data_type, octave_idx_type, 8603 oct_mach_info::float_format)): Seek to skip if still inside bounds 8604 of existing file. Otherwise, write NUL to skip. 8605 8606 * Makefile.in (%.df : %.cc): Write source file name to output, 8607 wrapped in XDEFUN_FILE_NAME macro. 8608 * mkbuiltins: Provide definition for XDEFUN_FILE_NAME. 8609 * mkgendoc: Likeiwse. 8610 (XDEFUN_DLD_INTERNAL, XDEFUNX_DLD_INTERNAL, XDEFUN_INTERNAL, 8611 XDEFCONSTFUN_INTERNAL, XDEFUNX_INTERNAL, XDEFVAR_INTERNAL, 8612 XDEFCONST_INTERNAL): Pass file_name to print_doc_string. 8613 (print_doc_string): New arg, FILE_NAME. Print file name as 8614 comment. 8615 86162009-03-24 John W. Eaton <jwe@octave.org> 8617 8618 * ov-class.cc (F__parent_classes__): New function. 8619 86202009-03-24 Robert T. Short <octave@phaselockedsystems.com> 8621 8622 * ov-class.h, ov-class.cc (octave_class::octave_class (const 8623 Octave_map&, const std::string&, const octave_value_list&)): 8624 New constructor. 8625 (octave_class::find_parent_class, octave_class::parent_classes): 8626 New functions. 8627 (octave_class::dotref): Also look in parent class. 8628 (Fclass): Handle parent class arguments. 8629 8630 * ov-base.h (octave_base_value::get_parent_list, 8631 octave_base_value::parent_classes): New virtual functions. 8632 8633 * load-path.h, load-path.cc (load_path::parent_map): New data member. 8634 (load_path::add_to_parent_map): New static function. 8635 (load_path::do_add_to_parent_map): New member function. 8636 (load_path::do_find_method): Also look in parent classes for methods. 8637 (load_path::parent_map_type, load_path::const_parent_map_iterator, 8638 load_path::parent_map_iterator): New typedefs. 8639 86402009-03-23 John W. Eaton <jwe@octave.org> 8641 8642 * symtab.h 8643 (symbol_table::symbol_record::symobl_recoord_rep::is_variable): 8644 Also return true if symbol is tagged as a variable. 8645 (symbol_table::symbol_record::symobl_recoord_rep::force_variable): 8646 Don't set variable value. 8647 (symbol_table::symbol_record::symobl_recoord_rep::clear_forced, 8648 symbol_table::symbol_record::clear_forced): Delete. 8649 (symbol_table::unmark_forced_variables): Rename from 8650 symbol_table::clear_forced_variables. 8651 (symbol_table::do_unmark_forced_variables): Rename from 8652 symbol_table::do_clear_forced_variables. 8653 * parse.y (make_script, finish_function): Call 8654 symbol_table::unmark_forced_variables instead of 8655 symbol_table::clear_forced_variables. 8656 * octave.cc (unmark_forced_vars): New function. 8657 (execute_eval_option_code): Add it to the unwind-protect stack. 8658 86592009-03-22 Jaroslav Hajek <highegg@gmail.com> 8660 8661 * pt-eval.cc (tree_evaluator::visit_simple_for_command): 8662 Remove struct branch, handle structs by the generic code. 8663 (tree_evaluator::visit_complex_for_command): 8664 Add missing const qualifiers. 8665 86662009-03-21 Jaroslav Hajek <highegg@gmail.com> 8667 8668 * ov-base-diag.cc: Add missing include. 8669 * sparse-xdiv.cc: Ditto. 8670 * DLD-FUNCTIONS/__glpk__.cc: Ditto. 8671 * DLD-FUNCTIONS/__lin_interpn__.cc: Ditto. 8672 * DLD-FUNCTIONS/__voronoi__.cc: Ditto. 8673 86742009-03-20 Jaroslav Hajek <highegg@gmail.com> 8675 8676 * ov-re-mat.cc (octave_matrix::load_ascii): Simplify. 8677 * ov-flt-re-mat.cc (octave_float_matrix::load_ascii): Simplify. 8678 * ov-cx-mat.cc (octave_complex_matrix::load_ascii): Simplify. 8679 * ov-flt-cx-mat.cc (octave_float_complex_matrix::load_ascii): Simplify. 8680 86812009-03-20 Jaroslav Hajek <highegg@gmail.com> 8682 8683 * ov-re-mat.cc (octave_matrix::isnan, octave_matrix::isinf, 8684 octave_matrix::finite): Simplify. 8685 * ov-flt-re-mat.cc (octave_float_matrix::isnan, 8686 octave_float_matrix::isinf, octave_float_matrix::finite): Simplify. 8687 * ov-cx-mat.cc (octave_complex_matrix::isnan, 8688 octave_complex_matrix::isinf, octave_complex_matrix::finite): 8689 Simplify. 8690 * ov-flt-cx-mat.cc (octave_float_complex_matrix::isnan, 8691 octave_float_complex_matrix::isinf, 8692 octave_float_complex_matrix::finite): Simplify. 8693 86942009-03-19 Benjamin Lindner <lindnerb@users.sourceforge.net> 8695 8696 * ls-oct-ascii.cc (extract_keyword): Replace loop with call to 8697 read_until_newline to avoid leaving stray '\r' in stream when 8698 reading files with CRLF line endings. 8699 87002009-03-18 Jaroslav Hajek <highegg@gmail.com> 8701 8702 * DLD-FUNCTIONS/cellfun.cc 8703 (scalar_col_helper, scalar_col_helper_def, scalar_col_helper_nda, 8704 scalar_query_helper): New classes. 8705 (make_col_helper): New function. 8706 (Fcellfun): Use col_helper classes for UniformOutput. Avoid copying by 8707 using const variables. 8708 87092009-03-17 Jaroslav Hajek <highegg@gmail.com> 8710 8711 * OPERATORS/op-b-bm.cc: Add missing INSTALL_BINOPs. 8712 * OPERATORS/op-bm-b.cc: Ditto. 8713 * OPERATORS/op-fm-fm.cc: Ditto. 8714 * OPERATORS/op-m-m.cc: Ditto. 8715 87162009-03-17 Jaroslav Hajek <highegg@gmail.com> 8717 8718 * ov.cc (octave_value::octave_value): Move to ov.h 8719 * ov.h (octave_value::octave_value): Implement fast inline constructor 8720 using a static rep. 8721 87222009-03-15 Jaroslav Hajek <highegg@gmail.com> 8723 8724 * DLD-FUNCTIONS/cellfun.cc (Fcellslices): New DLD function. 8725 87262009-03-13 Jaroslav Hajek <highegg@gmail.com> 8727 8728 * ov.h (octave_value::compound_binary_op): Support bool compound ops. 8729 * ov.cc (do_binary_op, decompose_binary_op, binary_op_fcn_name): 8730 Ditto. 8731 * pt-cbinop.cc (strip_not, simplify_and_or_op): New funcs. 8732 (maybe_compound_binary_expression): Support bool compound ops. 8733 * OPERATORS/op-int.h: Support bool compound ops. 8734 * OPERATORS/op-b-bm.cc: Ditto. 8735 * OPERATORS/op-bm-b.cc: Ditto. 8736 * OPERATORS/op-bm-bm.cc: Ditto. 8737 * OPERATORS/op-fm-fm.cc: Ditto. 8738 * OPERATORS/op-m-m.cc: Ditto. 8739 87402009-03-13 Jaroslav Hajek <highegg@gmail.com> 8741 8742 * xpow.cc (xpow (const NDArray&, double), xpow (const ComplexNDArray&, double), 8743 xpow (const FloatNDArray&, float), xpow (const FloatComplexNDArray&, 8744 float)): Use xisint for testing ints. Optimize w.r.t int exponents. 8745 87462009-03-13 John W. Eaton <jwe@octave.org> 8747 8748 * parse.y (maybe_warn_assign_as_truth_value, make_binary_op, 8749 maybe_warn_variable_switch_label, maybe_warn_associativity_change): 8750 Print file and line number info if available. 8751 * lex.l (gripe_matlab_incompatible): Likewise. 8752 8753 * error.cc (pr_where): Use octave_call_stack::backtrace to print 8754 complete stack trace at once. Don't attempt to print code. 8755 (error_2): Set error_state to 0 before calling pr_where. 8756 (warning_1): Switch sense of test on symbol_table::at_top_level. 8757 Call pr_where after printing primary warning message. 8758 87592009-03-13 Jaroslav Hajek <highegg@gmail.com> 8760 8761 * ov-range.h (octave_range::octave_range (const Range&)): Allow 8762 constructing from invalid range op result. 8763 * ov-range.cc (octave_range::try_narrowing_conversion): Validate 8764 invalid range op results. 8765 * data.cc (fill_matrix): Return packed form (zero-step range) if 8766 possible. 8767 87682009-03-10 Jason Riedy <jason@acm.org> 8769 8770 * DLD-FUNCTIONS/lu.cc (lu): Call fact.Pr_mat () and fact.Pc_mat () 8771 to return permutation matrices in the sparse case. 8772 87732009-03-12 John W. Eaton <jwe@octave.org> 8774 8775 * ls-mat-ascii.cc (get_mat_data_input_line): If we are looking at 8776 '\r' or '\n', skip current line ending instead of skipping until 8777 the next. 8778 87792009-03-12 Ben Abbott <bpabbott@mac.com> 8780 8781 * graphics.cc: Fix default "papersize" property value. 8782 87832009-03-12 Jaroslav Hajek <highegg@gmail.com> 8784 8785 * ov-flt-perm.h, ov-flt-perm.cc: Remove sources. 8786 * ov.h, ov.cc (octave_value::octave_value (const PermMatrix&)): Remove 8787 use "single" argument. 8788 * ov.cc (install_types): Update. 8789 * xpow.cc, xpow.h (xpow (PermMatrix, float)): Remove. 8790 * ov-base-diag.cc (octave_base_diag::do_index_op): Remove permutation 8791 creating block. 8792 * ov-re-diag.cc (octave_diag_matrix::do_index_op): Move it here. 8793 * ov-re-diag.h (octave_diag_matrix::do_index_op): New decl. 8794 8795 * DLD-FUNCTIONS/det.cc (Fdet): Update. 8796 * DLD-FUNCTIONS/inv.cc (Finv): Update. 8797 * DLD-FUNCTIONS/pinv.cc (Fpinv): Update. 8798 8799 * OPERATORS/op-fcm-pm.cc <-- OPERATORS/op-fcm-fpm.cc 8800 * OPERATORS/op-fcm-pm.cc: Update. 8801 * OPERATORS/op-fm-pm.cc <-- OPERATORS/op-fm-fpm.cc 8802 * OPERATORS/op-fm-pm.cc: Update. 8803 * OPERATORS/op-pm-fcm.cc <-- OPERATORS/op-fpm-fcm.cc 8804 * OPERATORS/op-pm-fcm.cc: Update. 8805 * OPERATORS/op-pm-fm.cc <-- OPERATORS/op-fpm-fm.cc 8806 * OPERATORS/op-pm-fm.cc: Update. 8807 * OPERATORS/op-pm-pm.cc: Update. 8808 * OPERATORS/op-pm-template.cc: Update. 8809 88102009-03-11 Jaroslav Hajek <highegg@gmail.com> 8811 8812 * xpow.cc (xpow (const PermMatrix&, double), xpow (const PermMatrix&, 8813 float)): New functions. 8814 * xpow.h: Declare them. 8815 * DLD-FUNCTIONS/op-pm-pm.cc: Support permutation matrix ^ scalar. 8816 * DLD-FUNCTIONS/op-fpm-fpm.cc: Ditto. 8817 88182009-03-11 Jaroslav Hajek <highegg@gmail.com> 8819 8820 * ov-ch-mat.cc (octave_char_matrix::double_value, 8821 octave_char_matrix::float_value, octave_char_matrix::complex_value, 8822 octave_char_matrix::float_complex_value): Cast to unsigned char. 8823 88242009-03-10 Jason Riedy <jason@acm.org> 8825 8826 * OPERATORS/op-pm-sm.cc (mul_pm_sm): New Octave binding for 8827 perm * sparse. 8828 (ldiv_pm_sm): New Octave binding for perm \ sparse. 8829 (mul_sm_pm): New Octave binding for sparse * perm. 8830 (div_sm_pm): New Octave binding for sparse / perm. 8831 (install_pm_sm_ops): Install the above bindings. 8832 8833 * OPERATORS/op-pm-scm.cc (mul_pm_scm): New Octave binding for 8834 perm * sparse complex. 8835 (ldiv_pm_scm): New Octave binding for perm \ sparse complex. 8836 (mul_scm_pm): New Octave binding for sparse complex * perm. 8837 (div_scm_pm): New Octave binding for sparse complex / perm. 8838 (install_pm_scm_ops): Install the above bindings. 8839 8840 * Makefile.in (PERM_OP_XSRC): Add op-pm-sm.cc and op-pm-scm.cc for 8841 operations between permutations and sparse matrices. 8842 88432009-03-10 Jason Riedy <jason@acm.org> 8844 8845 * DLD-FUNCTIONS/find.cc (find_nonzero_elem_idx): New override 8846 for find on PermMatrix. 8847 (find): Add a branch testing arg.is_perm_matrix () and calling the 8848 above override. 8849 88502009-03-10 John W. Eaton <jwe@octave.org> 8851 8852 * c-file-ptr-stream.cc, dynamic-ld.cc, error.cc, lex.l, pager.cc, 8853 zfstream.cc: Include <iostream>. 8854 * zfstream.h: Include <iosfwd> instead of <istream> and <ostream>. 8855 * c-file-ptr-stream.h, help.h, load-path.h, load-save.h, 8856 ls-ascii-helper.h, oct-iostrm.h, oct-stream.h, ov-base-diag.h, 8857 ov-base-int.h, ov-base-mat.h, ov-base-scalar.h, ov-base-sparse.h, 8858 ov-base.h, ov-bool-mat.h, ov-bool-sparse.h, ov-bool.h, ov-cell.h, 8859 ov-ch-mat.h, ov-class.h, ov-colon.h, ov-complex.h, ov-cs-list.h, 8860 ov-cx-mat.h, ov-cx-sparse.h, ov-fcn-handle.h, ov-fcn-inline.h, 8861 ov-float.h, ov-flt-complex.h, ov-flt-cx-mat.h, ov-flt-re-mat.h, 8862 ov-intx.h, ov-list.h, ov-range.h, ov-re-mat.h, ov-re-sparse.h, 8863 ov-scalar.h, ov-str-mat.h, ov-struct.h, ov.h, pager.h, 8864 pr-output.h, procstream.h, pt-assign.h, pt-cell.h, pt-const.h, 8865 pt-fcn-handle.h, pt-id.h, pt-mat.h, pt.h, utils.h: 8866 Include <iosfwd> instead of <iosstream>. 8867 88682009-03-10 Jaroslav Hajek <highegg@gmail.com> 8869 8870 * data.cc (Fsize_equal): Allow single argument call. 8871 * DLD-FUNCTIONS/max.cc (Fcummin, Fcummax): Update docs. 8872 88732009-03-09 Benjamin Lindner <lindnerb@users.sourceforge.net> 8874 8875 * ls-ascii-helper.h, ls-ascii-helper.cc: New files. 8876 * Makefile.in: Add them to the appropriate lists. 8877 * load-save.cc (Fload): Open all files in binary mode. 8878 * ov-range.cc (load_ascii): Explicitly handle CR and CRLF line endings. 8879 * ov-fcn-handle.cc (load_ascii): Likewise. 8880 * ov-fcn-inline.cc (load_ascii): Likewise. 8881 * ov-str-mat.cc (load_ascii): Likewise. 8882 * ls-mat-ascii.cc (get_mat_data_input_line): Likewise. 8883 * ls-oct-ascii.cc (extract_keyword, read_ascii_data): Likewise. 8884 * ls-oct-ascii.h (extract_keyword): Likewise. 8885 88862009-03-09 John W. Eaton <jwe@octave.org> 8887 8888 * graphics.h.in (OCTAVE_DEFAULT_FONTNAME): New macro, defaults to "*". 8889 (axes::properties, text::properties): Use it to set default fontname. 8890 * graphics.cc (axes::properties::set_defaults): Likewise. 8891 88922009-03-09 Rafael Laboissiere <rafael@debian.org> 8893 8894 * Makefile.in (maintainer-clean): Remove y.tab.h here. 8895 (distclean): Not here. 8896 88972009-03-09 Jason Riedy <jason@acm.org> 8898 8899 * OPERATORS/op-dm-sm.cc (add_dm_sm): Octave binding for diag + sparse. 8900 (sub_dm_sm): Octave binding for diag - sparse. 8901 (add_sm_dm): Octave binding for diag + sparse. 8902 (sub_sm_dm): Octave binding for diag - sparse. 8903 (install_dm_sm_ops): Install above bindings. 8904 8905 * OPERATORS/op-dm-scm.cc (add_cdm_sm): Octave binding for diag + sparse. 8906 (add_dm_scm): Octave binding for diag + sparse. 8907 (add_cdm_scm): Octave binding for diag + sparse. 8908 (sub_cdm_sm): Octave binding for diag - sparse. 8909 (sub_dm_scm): Octave binding for diag - sparse. 8910 (sub_cdm_csm): Octave binding for diag - sparse. 8911 (add_sm_cdm): Octave binding for diag + sparse. 8912 (add_scm_dm): Octave binding for diag + sparse. 8913 (add_scm_cdm): Octave binding for diag + sparse. 8914 (sub_sm_cdm): Octave binding for diag - sparse. 8915 (sub_scm_dm): Octave binding for diag - sparse. 8916 (sub_scm_cdm): Octave binding for diag - sparse. 8917 (install_dm_scm_ops): Install above bindings. 8918 89192009-03-08 Jason Riedy <jason@acm.org> 8920 8921 * sparse-xdiv.h (xleftdiv): Declare overrides for 8922 xleftdiv (diagonal, sparse), both real and complex. 8923 (xdiv): Declare overrides for xdiv (sparse, diagonal), both real 8924 and complex. 8925 8926 * sparse-xdiv.cc (do_rightdiv_sm_dm): New template function. 8927 Implementation for xdiv (sparse, diagonal). 8928 (xdiv): Call do_rightdiv_sm_dm to implement overrides, real and 8929 complex. 8930 (do_leftdiv_dm_sm): New template function. Implementation for 8931 xleftdiv (diagonal, sparse). 8932 (xleftdiv): Call do_leftdiv_dm_sm to implement overrides, real and 8933 complex. 8934 8935 * OPERATORS/op-dm-sm.cc (ldiv_dm_sm): Octave binding for real left 8936 division, diagonal into sparse. 8937 (div_sm_dm): Octave binding for real right division, sparse by 8938 diagonal. 8939 (install_dm_sm_ops): Install above bindings. 8940 8941 * OPERATORS/op-dm-scm.cc (ldiv_dm_scm): Octave binding for real 8942 diagonal \ complex sparse. 8943 (ldiv_cdm_sm): Octave binding for complex diagonal \ real sparse. 8944 (ldiv_cdm_scm): Octave binding for complex diagonal \ complex sparse. 8945 (div_scm_dm): Octave binding for complex sparse / real diagonal. 8946 (div_sm_cdm): Octave binding for real sparse / complex diagonal. 8947 (div_scm_cdm): Octave binding for complex sparse / complex diagonal. 8948 (install_dm_scm_ops): Install above bindings. 8949 89502009-03-08 Jason Riedy <jason@acm.org> 8951 8952 * OPERATORS/op-dm-scm.cc: New file. Implement multiplication 8953 between diagonal matrices (both real and complex) and complex 8954 sparse matrices. 8955 * OPERATORS/op-dm-sm.cc: New file. Implement multiplication 8956 between diagonal matrices and sparse matrices, all real. 8957 * Makefile.in (DIAG_OP_XSRC): Add op-dm-sm.cc and op-dm-scm.cc. 8958 89592009-03-09 Jaroslav Hajek <highegg@gmail.com> 8960 8961 * data.cc (F__accumarray_sum__): New function. 8962 (do_accumarray_sum): New helper template function. 8963 89642009-03-07 Jaroslav Hajek <highegg@gmail.com> 8965 8966 * xdiv.cc (mdm_div_impl, dmm_lelftdiv_impl, dmdm_div_impl, 8967 dmdm_leftdiv_impl): Optimize. 8968 89692009-03-07 John W. Eaton <jwe@octave.org> 8970 8971 * pr-output.cc (octave_print_internal (std::ostream&, 8972 const PermMatrix&, bool, int)): Delete unused variable SCALE. 8973 8974 * utils.cc (octave_vsnprintf): Avoid uninitialized variable 8975 warning from GCC. 8976 8977 * DLD-FUNCTIONS/qz.cc (Fqz): Avoid "maybe clobbered by vfork" 8978 warning from GCC. 8979 8980 * version.h (OCTAVE_VERSION): Now 3.1.54. 8981 (OCTAVE_API_VERSION): Now api-v36. 8982 (OCTAVE_RELEASE_DATE): Now 2009-03-07. 8983 8984 * octave.cc (verbose_usage): Include --doc-cache-file in option list. 8985 89862009-03-06 Jaroslav Hajek <highegg@gmail.com> 8987 8988 * ov.h (octave_value::diag_matrix_value, 8989 octave_value::complex_diag_matrix_value, 8990 octave_value::float_diag_matrix_value, 8991 octave_value::float_complex_diag_matrix_value, 8992 octave_value::perm_matrix_value): New methods. 8993 8994 * ov-base.cc (octave_base_value::diag_matrix_value, 8995 octave_base_value::complex_diag_matrix_value, 8996 octave_base_value::float_diag_matrix_value, 8997 octave_base_value::float_complex_diag_matrix_value, 8998 octave_base_value::perm_matrix_value): New virtual methods. 8999 9000 * ov-base.h: Declare them. 9001 9002 * ov-base-diag.h (octave_base_diag::diag_matrix_value, 9003 octave_base_diag::complex_diag_matrix_value, 9004 octave_base_diag::float_diag_matrix_value, 9005 octave_base_diag::float_complex_diag_matrix_value, 9006 octave_base_diag::perm_matrix_value): Remove declarations. 9007 9008 * DLD-FUNCTIONS/inv.cc (Finv): Simplify handling diag & perm matrices. 9009 * DLD-FUNCTIONS/pinv.cc (Fpinv): Ditto. 9010 * DLD-FUNCTIONS/det.cc (Fdet): Ditto. 9011 90122009-03-05 Jaroslav Hajek <highegg@gmail.com> 9013 9014 * ls-hdf5.cc (add_hdf5_data): Handle diag & perm matrices. 9015 90162009-03-05 John W. Eaton <jwe@octave.org> 9017 9018 * pt-cell.cc, pt-cell.h (tree_cell::dup): Now const. 9019 * comment-list.cc, comment-list.h (octave_comment_list::dup): Ditto. 9020 * pt-arg-list.cc, pt-arg-list.h (tree_argument_list::dup): Ditto. 9021 * pt-assign.cc, pt-assign.h (tree_simple_assignment::dup, 9022 tree_multi_assignment::dup): Ditto. 9023 * pt-binop.cc, pt-binop.h (tree_binary_expression::dup, 9024 tree_boolean_expression::dup): Ditto. 9025 * pt-cmd.cc, pt-cmd.h (tree_no_op_command::dup, 9026 tree_function_def::dup): Ditto. 9027 * pt-colon.cc, pt-colon.h (tree_colon_expression::dup): Ditto. 9028 * pt-const.cc, pt-const.h (tree_constant::dup): Ditto. 9029 * pt-decl.cc, pt-decl.h (tree_decl_elt::dup, tree_decl_init_list::dup, 9030 tree_global_command::dup, tree_static_command::dup): Ditto. 9031 * pt-except.cc, pt-except.h (tree_try_catch_command::dup, 9032 tree_unwind_protect_command::dup): Ditto. 9033 * pt-fcn-handle.cc, pt-fcn-handle.h (tree_fcn_handle::dup, 9034 tree_anon_fcn_handle::dup): Ditto. 9035 * pt-id.cc, pt-id.h (tree_identifier::dup): Ditto. 9036 * pt-idx.cc, pt-idx.h (tree_index_expression::dup): Ditto. 9037 * pt-jump.cc, pt-jump.h (tree_break_command::dup, 9038 tree_continue_command::dup, tree_return_command::dup): Ditto. 9039 * pt-loop.cc, pt-loop.h (tree_while_command::dup, 9040 tree_do_until_command::dup, tree_simple_for_command::dup, 9041 tree_complex_for_command::dup): Ditto. 9042 * pt-mat.cc, pt-mat.h (tree_matrix::dup): Ditto. 9043 * pt-misc.cc, pt-misc.h (tree_parameter_list::dup, 9044 tree_return_list::dup): Ditto. 9045 * pt-select.cc, pt-select.h (tree_if_clause::dup, 9046 tree_if_command_list::dup, tree_if_command::dup, 9047 tree_switch_case::dup, tree_switch_case_list::dup, 9048 tree_switch_command::dup): Ditto. 9049 * pt-stmt.cc, pt-stmt.h (tree_statement::dup, 9050 tree_statement_list::dup): Ditto. 9051 * pt-unop.cc, pt-unop.h (tree_prefix_expression::dup, 9052 tree_postfix_expression::dup): Ditto. 9053 * pt-fcn-handle.h (tree_anon_fcn_handle::parameter_list, 9054 tree_anon_fcn_handle::return_list, tree_anon_fcn_handle::body, 9055 tree_anon_fcn_handle::scope): Ditto. 9056 90572009-03-05 Jason Riedy <jason@acm.org> 9058 9059 * ov-base-int.cc (convert_to_str_internal): Replace elt_type with 9060 element_type throughout. 9061 90622009-03-05 Jaroslav Hajek <highegg@gmail.com> 9063 9064 * DLD-FUNCTIONS/sparse.cc (Fsparse): Handle diagonal and permutation 9065 matrices. 9066 90672009-03-03 John W. Eaton <jwe@octave.org> 9068 9069 * ov-struct.cc (octave_struct::save_ascii, 9070 octave_struct::save_binary, octave_struct::save_hdf5): 9071 Preserve order of structure fields. 9072 * ls-mat5.cc (save_mat5_binary_element): Likewise. 9073 9074 * symtab.h (symbol_table::do_inherit): Only inherit values for 9075 symbols from the donor_scope that already exist in the table. 9076 (symbol_table::symbol_record::symbol_record_rep::dup): Now const. 9077 (symbol_table::symbol_record::operator=): Decrement rep->count and 9078 maybe delete rep. 9079 (symbol_table::fcn_info::operator=): Likewise. 9080 9081 * pt-fcn-handle.cc: (tree_anon_fcn_handle::dup): Transform 9082 tree_anon_fcn_handle objects to tree_constant objects containing 9083 octave_fcn_handle objects. New tests. 9084 9085 * pt-assign.cc (tree_simple_assignment::rvalue1): Assign result of 9086 call to rhs->rvalue1() to an octave_value object, not an 9087 octave_value_list object. 9088 90892009-03-03 Jaroslav Hajek <highegg@gmail.com> 9090 9091 * oct-stream.h (octave_stream_list::lookup_cache): New member field. 9092 (octave_stream_list::octave_stream_list): Initialize it. 9093 (octave_stream_list::do_lookup): Use it. 9094 (octave_stream_list::clear): Make flush optional. Do physically erase 9095 entries from the map. Close files. 9096 (octave_stream_list::do_remove): Call clear on "all". Do erase deleted 9097 entry from the map. 9098 90992009-03-02 John W. Eaton <jwe@octave.org> 9100 9101 * graphics.cc (Fget, F__get__): Return a column vector of property 9102 values, not a row vector. 9103 91042009-03-01 John W. Eaton <jwe@octave.org> 9105 9106 * OPERATORS/op-fcm-fcm.cc (DEFNDASSIGNOP_FN (dbl_assign)): 9107 LHS type is float_complex_matrix, not complex_matrix. RHS value 9108 function is float_complex_array, not complex_array. 9109 91102009-03-01 Jaroslav Hajek <highegg@gmail.com> 9111 9112 * ov-perm.cc (octave_perm_matrix::print_raw): Call 9113 octave_print_internal. 9114 (octave_perm_matrix::print_raw): Call print_raw. 9115 * pr-output.cc (octave_print_internal (...,const DiagMatrix&,...)): 9116 Indicate diagonal matrix. 9117 (octave_print_internal (...,const ComplexDiagMatrix&,...)): Ditto. 9118 (octave_print_internal (...,const PermMatrix&,...)): New function. 9119 * pr-output.h: Declare it. 9120 91212009-02-27 Jaroslav Hajek <highegg@gmail.com> 9122 9123 * OPERATORS/op-dms-template.cc (gripe_if_zero): New template static 9124 function. 9125 (dmsdiv, sdmldiv): Call it. 9126 91272009-02-26 John W. Eaton <jwe@octave.org> 9128 9129 * symtab.h (symbol_table::symbol_record::symbol_record_rep::forced): 9130 New static constant. 9131 (symbol_table::symbol_record::symbol_record_rep::force_variable, 9132 symbol_table::symbol_record::force_variable): New functions. 9133 (symbol_table::symbol_record::symbol_record_rep::is_forced, 9134 symbol_table::symbol_record::symbol_record_rep::mark_forced, 9135 symbol_table::symbol_record::symbol_record_rep::unmark_forced, 9136 symbol_table::symbol_record::symbol_record_rep::clear_forced, 9137 symbol_table::symbol_record::is_forced, 9138 symbol_table::symbol_record::mark_forced, 9139 symbol_table::symbol_record::clear_forced, 9140 symbol_table::symbol_record::unmark_forced): New fucntions. 9141 * lex.h, lex.l (force_local_variable): Delete. 9142 (handle_identifier): Call symbol_table::force_variable instead of 9143 force_local_variable. 9144 * parse.y (make_script): Call symbol_table:clear_forced_variables 9145 after defining script. 9146 (finish_function): Call symbol_table::clear_forced_variables 9147 instead of symbol_table::clear_variables. 9148 9149 * DLD-FUNCTIONS/chol.cc: Correct spelling of CHOLMOD in tests. 9150 9151 * version.h (OCTAVE_VERSION): Now 3.1.53+. 9152 (OCTAVE_API_VERSION): Now api-v35+. 9153 91542009-02-25 John W. Eaton <jwe@octave.org> 9155 9156 * version.h (OCTAVE_VERSION): Now 3.1.53. 9157 (OCTAVE_API_VERSION): Now api-v35. 9158 (OCTAVE_RELEASE_DATE): Now 2009-02-25. 9159 (OCTAVE_COPYRIGHT): Update year. 9160 9161 * Makefile.in (distclean): Remove tags TAGS y.tab.h y.output 9162 yy.lex.c here, not in maintainer-clean target. Also remove 9163 parse.output. 9164 9165 * DLD-FUNCTIONS/rand.cc: Note that the tests for the old random 9166 number generator will fail if using 64-bit indexing. 9167 91682009-02-25 Jaroslav Hajek <highegg@gmail.com> 9169 9170 * DLD-FUNCTIONS/lu.cc (maybe_set_triangular): New function. 9171 (Flu): Use it. 9172 * DLD-FUNCTIONS/qr.cc (maybe_set_triangular): New function. 9173 (Fqr): Use it. 9174 91752009-02-25 John W. Eaton <jwe@octave.org> 9176 9177 * DLD-FUNCTIONS/chol.cc: Fix tests for missing cholmod. 9178 9179 * input.cc (get_debug_input): Write debugging location info 9180 directly to std::cerr instead of calling message. 9181 * pt-eval.cc (tree_evaluator::do_breakpoint): Write debugging 9182 location info directly to std::cerr, not octave_stdout. 9183 9184 * defaults.h.in (OCTAVE_DOC_CACHE_FILE): New macro. 9185 * defaults.cc (set_default_doc_cache_file): New function. 9186 (install_defaults): Call it. 9187 9188 * help.cc (__list_functions__): Simplify 9189 9190 * input.cc (get_debug_input): Don't pass arbitrary input to 9191 message as a format string. 9192 91932009-02-24 John W. Eaton <jwe@octave.org> 9194 9195 * help.cc, help.h (Vdoc_cache_file): New global variable. 9196 (Fdoc_cache_file): New function. 9197 * octave.cc (DOC_CACHE_FILE_OPTION): New option tag. 9198 (long_opts): Include doc-cache-file in the list. 9199 (octave_main): Handle DOC_CACHE_FILE_OPTION. 9200 92012009-02-24 Jaroslav Hajek <highegg@gmail.com> 9202 9203 * ov-scalar.h 9204 (octave_scalar::int8_scalar_value): New method. 9205 (octave_scalar::int16_scalar_value): New method. 9206 (octave_scalar::int32_scalar_value): New method. 9207 (octave_scalar::int64_scalar_value): New method. 9208 (octave_scalar::uint8_scalar_value): New method. 9209 (octave_scalar::uint16_scalar_value): New method. 9210 (octave_scalar::uint32_scalar_value): New method. 9211 (octave_scalar::uint64_scalar_value): New method. 9212 9213 * ov-float.h 9214 (octave_float_scalar::int8_scalar_value): New method. 9215 (octave_float_scalar::int16_scalar_value): New method. 9216 (octave_float_scalar::int32_scalar_value): New method. 9217 (octave_float_scalar::int64_scalar_value): New method. 9218 (octave_float_scalar::uint8_scalar_value): New method. 9219 (octave_float_scalar::uint16_scalar_value): New method. 9220 (octave_float_scalar::uint32_scalar_value): New method. 9221 (octave_float_scalar::uint64_scalar_value): New method. 9222 9223 * OPERATORS/op-s-s.cc (scalar_to_float): Remove duplicate conversion. 9224 * OPERATORS/op-range.cc (range_to_float_matrix): Ditto. 9225 92262009-02-24 John W. Eaton <jwe@octave.org> 9227 9228 * OPERATORS/op-float-conv.cc: New file. 9229 * Makefile.in (FLOAT_OP_XSRC): Add it to the list. 9230 (DOUBLE_OP_XSRC): Move op-double-conv.cc here from INTTYPE_OP_XSRC. 9231 * ops.h (DEFFLTCONVFN, DEFSTRFLTCONVFN): New macros. 9232 92332009-02-23 John W. Eaton <jwe@octave.org> 9234 9235 * ov-base-sparse.cc (octave_base_sparse<T>::print_raw): 9236 Remove extra ")" from output. 9237 9238 * DLD-FUNCTIONS/eigs.cc (Feigs): If sigma argument is not a 9239 string, try extraction as complex value and check for error 9240 instead of inquiring about type first. 9241 9242 * pt-eval.cc (tree_evaluator::visit_break_command, 9243 tree_evaluator::visit_return_command, 9244 tree_evaluator::visit_global_command, 9245 tree_evaluator::visit_static_command): Handle breakpoint. 9246 (tree_evaluator::visit_simple_for_command, 9247 tree_evaluator::visit_complex_for_command): Handle breakpoint once 9248 at beginning of loop. 9249 (tree_evaluator::visit_if_command_list): Don't call do_breakpoint 9250 for else clauses. 9251 (tree_evaluator::visit_no_op_command): Handle breakpoint if no-op 9252 command is end of function or script. 9253 (tree_evaluator::visit_statement): Handle breakpoint for 9254 expressions but not commands. 9255 (tree_evaluator::visit_while_command, 9256 tree_evaluator::visit_do_until_command): 9257 Check for breakpoint set on cmd, not expr. 9258 (tree_evaluator::visit_do_until_command): Handle breakpoint 9259 between check for breaking out of loop and loop control 9260 expression. 9261 9262 * pt-cmd.h (tree_no_op_command::eof): New data member 9263 (tree_no_op_command::tree_no_op_command): Initialize it. 9264 (tree_no_op_command::is_end_of_fcn_or_script): New function. 9265 * pt-stmt.cc (tree_statement::is_end_of_fcn_or_script): 9266 Call is_end_of_fcn_or_script instead of looking at original text 9267 of no-op command. 9268 9269 * pt-select.h, pt-select.cc (tree_if_command::set_breakpoint, 9270 tree_if_command::delete_breakpoint): New functions. 9271 (tree_switch_command::set_breakpoint, 9272 tree_switch_command::delete_breakpoint): New functions. 9273 * pt-stmt.h, pt-stmt.cc (tree_statement::set_breakpoint, 9274 tree_statement::delete_breakpoint, tree_statement::is_breakpoint): 9275 Delegate real work to cmd or expr. 9276 (tree_statement::bp): Delete data member. 9277 (tree_statement::tree_statement): Don't initialize bp. 9278 (tree_statement::dup): Don't copy bp. 9279 9280 * pt.h (tree::line (int), tree:column (int)): New functions. 9281 (tree:set_breakpoint, tree::delete_breakpoint): Now virtual. 9282 9283 * parse.y (finish_if_command): Also store line and column info for 9284 if statement in first element of list. 9285 (finish_switch_command): Likewise, for switch. 9286 9287 * input.cc (last_debugging_command): New static variable. 9288 (octave_gets): Set it here. Don't insert repeated debugging 9289 commands in the history list. 9290 92912009-02-23 Jaroslav Hajek <highegg@gmail.com> 9292 9293 * DLD-FUNCTIONS/pinv.cc: Support diagonal and permutation matrices. 9294 92952008-02-21 David Bateman <dbateman@free.fr> 9296 9297 * OPERATORS/op-cs-scm.cc, OPERATORS/op-cs-sm.cc, OPERATORS/op-s-scm.cc, 9298 OPERATORS/op-s-sm.cc, OPERATORS/op-scm-cs.cc, OPERATORS/op-scm-s.cc, 9299 OPERATORS/op-sm-cs.cc, OPERATORS/op-sm-s.cc: Don't perform any 9300 narrowing to full matrices. 9301 93022009-02-20 Jaroslav Hajek <highegg@gmail.com> 9303 9304 * ov-base-diag.h (octave_base_diag::sqrt): Remove. 9305 * ov-re-diag.cc (octave_diag_matrix::sqrt): New method. 9306 * ov-re-diag.h: Declare it. 9307 * ov-flt-re-diag.cc (octave_float_diag_matrix::sqrt): New method. 9308 * ov-flt-re-diag.h: Declare it. 9309 * ov-cx-diag.cc (octave_complex_diag_matrix::sqrt): New method. 9310 * ov-cx-diag.h: Declare it. 9311 * ov-flt-cx-diag.cc (octave_float_complex_diag_matrix::sqrt): New method. 9312 * ov-flt-cx-diag.h: Declare it. 9313 93142009-02-20 John W. Eaton <jwe@octave.org> 9315 9316 * dynamic-ld.cc (octave_dynamic_loader::do_load_mex): Clear and 9317 reload mex file if it is out of date. Don't check path for file. 9318 9319 * pt-bp.cc (tree_breakpoint::visit_octave_user_script, 9320 tree_breakpoint::visit_octave_user_function): 9321 Don't panic. Call accept on command list if it exists. 9322 93232009-02-20 Jaroslav Hajek <highegg@gmail.com> 9324 9325 * ov-base-mat.cc (octave_base_matrix<MT>::do_index_op): 9326 Correctly compute all-scalar index. 9327 * ov-cell.cc (octave_cell::is_sorted, octave_cell::is_sorted_rows): 9328 New methods. 9329 (octave_cell::octave_cell (const Array<std::string>&)): New 9330 constructor. 9331 * ov-cell.h: Declare them. 9332 * ov-cell.cc (octave_cell::sort): Create result already with 9333 cellstr_cache. 9334 * strfns.cc (Fstrcmp): Use special code when dealing with 9335 cellstr arrays. 9336 93372009-02-20 John W. Eaton <jwe@octave.org> 9338 9339 * ov-base-mat.cc (octave_base_matrix<MT>::assign): 9340 Correctly compute all-scalar index. 9341 9342 * symbtab.cc (symbol_table::stash_dir_name_for_subfunctions): 9343 New function. 9344 * symtab.h: Provide decl. 9345 * parse.y (load_fcn_from_file): Call it after parsing a function. 9346 93472009-02-19 Jaroslav Hajek <highegg@gmail.com> 9348 9349 * ov-cell.h (octave_cell::cellstr_cache): New field. 9350 (octave_cell::clear_cellstr_cache, octave_cell::make_cellstr_cache, 9351 octave_cell::assign, octave_cell::delete_elements, 9352 octave_cell::mex_get_data): New methods. 9353 (octave_cell::is_cellstr): Reuse cellstr cache if possible, create if 9354 successful. 9355 (octave_cell::cellstr_value): Reuse cellstr cache if possible. 9356 (octave_cell::subsasgn): Clear cellstr cache. 9357 93582009-02-19 Jaroslav Hajek <highegg@gmail.com> 9359 9360 * DLD-FUNCTIONS/lookup.cc (Flookup): Use Array<T>::lookup if possible. 9361 Do not compare octave_values directly. Properly check for iscellstr. 9362 93632009-02-19 John W. Eaton <jwe@octave.org> 9364 9365 * data.cc, graphics.cc, help.cc, lex.l, load-path.cc, parse.y: 9366 Consistent doc strings for internal functions. 9367 93682009-02-18 John W. Eaton <jwe@octave.org> 9369 9370 * ov.cc (convert_to_octave_idx_type_array): New static function. 9371 (octave_value::octave_idx_type_vector_value): New function. 9372 * ov.h (octave_value::octave_idx_type_vector_value): Provide decl. 9373 * DLD-FUNCTIONS/qr.cc (Fqrdelete, Fqrinsert): Use it to convert 9374 octave_value object to array of octave_idx_type values. 9375 9376 * DLD-FUNCTIONS/find.cc (find_nonzero_elem_idx): Likewise. 9377 * DLD-FUNCTIONS/time.cc (strptime): Likewise. 9378 * DLD-FUNCTIONS/quad.cc (Fquad): Eliminate unnecessary cast. 9379 * toplev.cc (run_command_and_return_output): Likewise. 9380 9381 * strfns.cc (Fstrvcat): Use octave_idx_type and size_t instead of 9382 int as needed. 9383 (Fstrcmp, Fstrncmp): Use octave_idx_type instead of int as needed. 9384 9385 * DLD-FUNCTIONS/hex2num.cc (Fhex2num, Fnum2hex): 9386 Use union to avoid reinterpret_cast and GCC warning. 9387 9388 * mex.cc (call_mex): Declare local nargout variable volatile to 9389 avoid "maybe clobbered by vfork" warning from GCC. 9390 9391 * ov-cx-mat.cc (xabs): Comment out unused static function. 9392 * ov-flt-cx-mat.cc (xabs): Ditto. 9393 9394 * c-file-ptr-stream.cc (c_file_ptr_buf::seekoff, 9395 c_file_ptr_buf::seepos, c_zfile_ptr_buf::seekoff, 9396 c_zfile_ptr_buf::seepos): Avoid unused paramter warnings. 9397 93982009-02-18 Jaroslav Hajek <highegg@gmail.com> 9399 9400 * data.cc (Fresize): Allow arbitrary number of parameters. Improve 9401 documentation. 9402 94032009-02-17 Benjamin Lindner <lindnerb@users.sourceforge.net> 9404 9405 * file-io.cc: (Fmkstemp): Use mkstemps if it is available and 9406 mkstemp is missing. 9407 94082009-02-17 Olaf Till <olaf.till@uni-jena.de> 9409 9410 * DLD-FUNCTIONS/lsode.cc, DLD-FUNCTIONS/daspk.cc, 9411 DLD-FUNCTIONS/dassl.cc, DLD-FUNCTIONS/dasrt.cc: Documentation fixes. 9412 94132009-02-17 Kai Habel <kai.habel@gmx.de> 9414 9415 * DLD-FUNCTIONS/convhulln.cc (Fconvhulln): Compute convex hull 9416 volume and return it as second output. New tests. 9417 94182009-02-17 John W. Eaton <jwe@octave.org> 9419 9420 * ov-fcn.h (octave_function::octave_function): Initialize data members. 9421 (octave_function::dispatch_class): No longer virtual. 9422 Replace with version from ov-usr-fcn.h. 9423 (octave_function::xdispatch_class, 9424 octave_function::stash_dispatch_class): Move here from ov-usr-fcn.h. 9425 (octave_function::mark_as_private_function, 9426 octave_function::is_private_function, 9427 octave_function::is_private_function_of_class): New functions. 9428 (octave_function::private_function): New data member. 9429 * ov-usr-fcn.h (octave_user_function::xdispatch_class, 9430 octave_user_function::stash_dispatch_class, 9431 octave_user_function::dispatch_class): Delete. 9432 * ov-usr-fcn.cc (octave_user_function::octave_user_function): 9433 Don't initialize xdispatch_type. 9434 9435 * symtab.cc 9436 (symbol_table::fcn_info::fcn_info_rep::load_private_function): 9437 If private directory is subdirectory of class directory, qmark 9438 function as a private directory of the class. 9439 9440 * ov-class.cc (octave_class::in_class_method): Also return true 9441 for functions that are private to a class. 9442 (octave_class::subsasgn): If not in class method, look for 9443 subsasgn method. If not found, or if not in a class method, 9444 perform default struct-style subscripted indexing. 9445 9446 * ov-class.h (octave_class::empty_clone): 9447 Preserve fields and class name. 9448 * oct-map.h (Octave_map::Octave_map (const string_vector&): 9449 New constructor. 9450 9451 * ov-class.cc (octave_class::subsref): If indexing directly and 9452 result is map, return class object, not simple struct. 9453 9454 * symtab.cc 9455 (symbol_table::fcn_info::fcn_info_rep::load_private_function): 9456 Pass dir_name to load_fcn_from_file. 9457 94582009-02-17 Jaroslav Hajek <highegg@gmail.com> 9459 9460 * DLD-FUNCTIONS/data.cc (NATIVE_REDUCTION): Add BOOL_FCN argument. 9461 (NATIVE_REDUCTION_1): Check integer overflow flags and possibly gripe. 9462 (Fsum): Reflect change. 9463 (Fcumsum): USE NATIVE_REDUCTION. 9464 * gripes.cc (gripe_native_integer_math_truncated): New function. 9465 94662009-02-17 Jaroslav Hajek <highegg@gmail.com> 9467 9468 * DLD-FUNCTIONS/max.cc (Fcummin, Fcummax): Improve inline docs. 9469 94702009-02-17 Jaroslav Hajek <highegg@gmail.com> 9471 9472 * DLD-FUNCTIONS/max.cc (MINMAX_DOUBLE_SBODY): New macro. 9473 (MINMAX_DOUBLE_BODY): Move part of code to MINMAX_DOUBLE_SBODY. 9474 (MINMAX_SINGLE_SBODY): New macro. 9475 (MINMAX_SINGLE_BODY): Move part of code to MINMAX_DOUBLE_SBODY. 9476 (MINMAX_INT_SBODY): New macro. 9477 (MINMAX_INT_BODY): Move part of code to MINMAX_DOUBLE_SBODY. 9478 (CUMMINMAX_BODY): New macro. 9479 (Fcummin, Fcummax): New DLD functions. 9480 94812009-02-17 John W. Eaton <jwe@octave.org> 9482 9483 * octave.gperf: Eliminate whitespace to allow gperf 2.7.2 to work. 9484 9485 * file-io.cc (Ffscanf, Fsscanf): Check error_state after call to 9486 octave_stream::scanf. 9487 (Ffgetl): Check error state after call to octave_stream::getl. 9488 (Ffgets): Check error state after call to octave_stream::gets. 9489 9490 * oct-stream.cc (octave_base_stream::do_gets, 9491 octave_base_stream::do_scanf): 9492 Disallow reading from stdin when running interactively. 9493 9494 * toplev.cc (octave_config_info): Add CARBON_LIBS, X11_INCFLAGS, 9495 and X11_LIBS to the struct. 9496 * oct-conf.h.in (OCTAVE_CONF_CARBON_LIBS, 9497 OCTAVE_CONF_X11_INCFLAGS, OCTAVE_CONF_X11_LIBS): New macros. 9498 94992009-02-17 Thomas Treichl <Thomas.Treichl@gmx.net> 9500 9501 * Makefile.in (octave$(EXEEXT)): Link with CARBON_LIBS. 9502 95032009-02-16 John W. Eaton <jwe@octave.org> 9504 9505 * lex.l (next_token_can_follow_bin_op): 9506 Push all characters read on to buffer stack. 9507 9508 * genprops.awk (emit_source): Don't use + to concatenate strings. 9509 95102009-02-16 Jaroslav Hajek <highegg@gmail.com> 9511 9512 * data.cc (NATIVE_REDUCTION): Use boolNDArray::any for native bool 9513 summation, boolNDArray::sum for double-valued. 9514 95152009-02-16 Jaroslav Hajek <highegg@gmail.com> 9516 9517 * ov-base-mat.cc (octave_base_matrix<MT>::assign (const octave_value_list&, 9518 typename MT::element_type): Fix invalid index. 9519 * ov-re-mat.cc (default_numeric_demotion_function): Use 9520 float_array_value instead of float_matrix_value. 9521 95222009-02-16 John W. Eaton <jwe@octave.org> 9523 9524 * input.cc (gnu_readline): Use fputs instead of fprintf. 9525 95262009-02-15 John W. Eaton <jwe@octave.org> 9527 9528 * defun.cc, defun-int.h, defun-dld.h (DEFUN_INTERNAL, 9529 DEFCONSTFUN_INTERNAL, DEFUNX_INTERNAL, DEFUN_DLD_INTERNAL, 9530 DEFUNX_DLD_INTERNAL, install_builtin_function, 9531 install_dld_function, install_mex_function): 9532 Delete IS_TEXT_FCN arg. Fix all uses. 9533 (DEFMD, DEFUN_TEXT): Delete. 9534 * mkbuiltins, mkgendoc: Adapt to DEFUN macro changes. 9535 9536 * lex.h, lex.l (lexer_flags::at_beginning_of_statement): 9537 New data member. Set it as needed in rules. 9538 (is_keyword_token): 9539 Handle lexer_flags::at_beginning_of_statement. 9540 (next_token_can_follow_bin_op, looks_like_command_arg): New functions. 9541 (handle_identifier): Use them to determine 9542 Don't check is_command_name or is_rawcommand_name. 9543 * parse.y (statement): Recognize word_list_cmd here. 9544 (expression): Not here. 9545 9546 * lex.l (handle_string): Delete arg TEXT_STYLE. 9547 (BIN_OP_RETURN, XBIN_OP_RETURN): New arg, BOS. Change all uses. 9548 9549 * lex.h, lex.l (lexer_flags::doing_raw_command): Delete data 9550 member and all uses. 9551 9552 * debug.cc, dirfns.cc, error.cc, input.cc, lex.l, load-path.cc, 9553 load-save.cc, oct-hist.cc, ov-class.cc, pager.cc, parse.y, 9554 pr-output.cc, sysdep.cc, utils.cc, variables.cc: 9555 Replace all uses of DEFCMD with DEFUN. 9556 9557 * variables.cc (command_set, rawcommand_set): Delete static variables. 9558 (mark_as_command, unmark_command, is_command_name, 9559 mark_as_rawcommand, unmark_raw_command, is_rawcommand_name): Delete. 9560 (Fmark_as_command, Funmark_command, Fiscommand, 9561 Fmark_as_rawcommand, Funmark_rawcommand, Fisrawcommand): 9562 Convert to .m files and move to scripts/deprecated. 9563 * variables.h (mark_as_command, is_command_name, 9564 is_marked_as_rawcommand, mark_as_rawcommand, unmark_rawcommand, 9565 is_rawcommand_name): Delete decls. 9566 9567 * lex.h, lex.l (lexer_flags.looking_at_object_index): Now a 9568 std::list<bool> object instead of an int. 9569 Push TRUE to list at start of object index. Push FALSE at 9570 beginning of matrix list. Pop value at end of object index or 9571 matrix list. 9572 (lexer_flags.looking_for_object_index): New data member. 9573 Set it as needed in rules. 9574 (inside_any_object_index): New function. 9575 * parse.y (begin_obj_idx, cancel_obj_idx): Delete non-terminals 9576 and all uses. 9577 95782009-02-13 Ben Abbott <bpabott@mac.com> 9579 9580 * graphics.h.in (class axes::properties): Initialize ticklength. 9581 * graphics.cc (default_axes_ticklength): New function. 9582 95832009-02-13 John W. Eaton <jwe@octave.org> 9584 9585 * oct-stream.cc (octave_base_stream::do_gets): Handle CRLF and CR. 9586 9587 * toplev.cc (do_octave_atexit): Only save history if 9588 Vsaving_history is true. 9589 95902009-02-12 John W. Eaton <jwe@octave.org> 9591 9592 * data.cc, ov-base-diag.h, ov-base-mat.h, ov-base-scalar.h, 9593 ov-base-sparse.h, ov-base.cc, ov-base.h, ov-perm.h, ov-range.h, 9594 ov.h: Rename internal issorted and issorted_rows functions to 9595 is_sorted and is_sorted_rows. 9596 9597 * ov-base-diag.h, ov-base-mat.h, ov-base-scalar.h, ov-base.h, 9598 ov-cell.h, ov-perm.h, ov-range.h, ov.h, data.cc, ov-base.cc, 9599 ov-cell.cc: Rename all uses of sortrows_idx to sort_rows_idx. 9600 9601 * TEMPLATE-INST/Array-tc.cc: Don't instantiate sort functions for 9602 Arrays of octave_value objects. 9603 (octave_sort<octave_value>::ascending_compare, 9604 octave_sort<octave_value>::descending_compare): Delete. 9605 9606 * ov.h (octave_value::cellstr_value): New function. 9607 * ov-base.cc, ov-base.h (octave_base_value::cellstr_value): 9608 New function. 9609 * ov-cell.h (octave_cell::cellstr_value, octave_cell::sort, 9610 octave_cell::sortrows_idx): New functions 9611 * Cell.h, Cell.cc (Cell::Cell (Array<std::string>)): New constructor. 9612 9613 * TEMPLATE-INST/Array-tc.cc: Undo previous change. 9614 (octave_sort<octave_value>::ascending_compare, 9615 octave_sort<octave_value>::descending_compare): 9616 Pass args by const reference instead of value. 9617 9618 * version.h (OCTAVE_VERSION): Now 3.1.52+. 9619 (OCTAVE_API_VERSION): Now api-v34+. 9620 9621 * TEMPLATE-INST/Array-tc.cc 9622 (octave_sort<octave_value>::ascending_compare, 9623 octave_sort<octave_value>::descending_compare): 9624 Delete unused template specializations. 9625 Use NO_INSTANTIATE_ARRAY_SORT instead of INSTANTIATE_ARRAY_SORT 9626 for octave_values. 9627 96282009-02-11 Thomas Treichl <Thomas.Treichl@gmx.net> 9629 9630 * gl-render.h: Use HAVE_FRAMEWORK_OPENGL. 9631 * gl-render.cc (opengl_tesselator, opengl_renderer::draw, 9632 opengl_renderer::init_marker): Use HAVE_FRAMEWORK_OPENGL. 9633 96342009-02-11 Jaroslav Hajek <highegg@gmail.com> 9635 9636 * ov.h (octave_value::issorted, octave_value::sortrows_idx, 9637 octave_value::issorted_rows): New methods. 9638 * ov.cc (octave_base_value::issorted, octave_base_value::sortrows_idx, 9639 octave_base_value::issorted_rows): New methods. 9640 * ov.cc: Declare them. 9641 9642 * ov-base-mat.h (octave_base_matrix::issorted, octave_base_matrix::sortrows_idx, 9643 octave_base_matrix::issorted_rows): New methods. 9644 9645 * ov-base-diag.h (octave_base_diag::issorted, octave_base_diag::sortrows_idx, 9646 octave_base_diag::issorted_rows): New methods. 9647 9648 * ov-perm.h (octave_perm_matrix::issorted, octave_perm_matrix::sortrows_idx, 9649 octave_perm_matrix::issorted_rows): New methods. 9650 9651 * ov-range.h (octave_range::issorted, octave_range::sortrows_idx, 9652 octave_range::issorted_rows): New methods. 9653 9654 * data.cc (F__sortrows_idx__, Fissorted): New defuns. 9655 96562009-02-11 John W. Eaton <jwe@octave.org> 9657 9658 * toplev.cc (octave_config_info): Add octetcdir to the struct. 9659 * defaults.h.in (OCTAVE_OCTETCDIR): New macro. 9660 96612009-02-10 Jaroslav Hajek <highegg@gmail.com> 9662 9663 * DLD-FUNCTIONS/__pchip_deriv__.cc (F__pchip_deriv__): 9664 Add support for computing pchip derivatives along rows of matrix. 9665 Eliminate redundant copying by using const args where appropriate. 9666 96672009-02-09 John W. Eaton <jwe@octave.org> 9668 9669 * version.h (OCTAVE_VERSION): Now 3.1.52. 9670 (OCTAVE_RELEASE_DATE): Now 2009-02-09. 9671 (OCTAVE_COPYRIGHT): Update year. 9672 9673 * load-path.cc (dir_info::update, dir_info::initialize): 9674 Likewise, to allow some functionality if getcwd fails. 9675 9676 * toplev.cc (main_loop): Also catch octave_execution_exception. 9677 9678 * DLD-FUNCTIONS/dispatch.cc: Comment out troublesome tests. 9679 9680 * DLD-FUNCTIONS/eigs.cc: Increase tolerance to 1e-11 on all tests. 9681 9682 * lex.l (lexical_feedback::looking_at_decl_list): New data member. 9683 * lex.l (lexical_feedback::init): Initialize it. 9684 (handle_identifier): Also force local variable if looking_at_decl_list. 9685 * parse.y (parsing_decl_list): New non-terminal. 9686 (declaration): Use it. Set lexer_flags.looking_at_decl_list to 9687 false after parsing the declaration. 9688 96892009-02-09 Jaroslav Hajek <highegg@gmail.com> 9690 9691 * TEMPLATE-INST/Array-tc.cc: Reflect changes in octave_sort. 9692 96932009-02-08 John W. Eaton <jwe@octave.org> 9694 9695 * octave.cc (initialize_pathsearch): Delete. 9696 (octave_main): Don't call initialize_pathsearch. 9697 96982009-02-07 John W. Eaton <jwe@octave.org> 9699 9700 * parse.y (eval_string): Use the one true evaluator. 9701 97022009-02-06 John W. Eaton <jwe@octave.org> 9703 9704 * Makefile.in (INCLUDES): Include oct-hdf5.h in the list. 9705 9706 * Makefile.in (oct-gperf.h): Don't use pipeline to process gperf 9707 output. 9708 97092009-02-05 John W. Eaton <jwe@octave.org> 9710 9711 * symtab.cc (symbol_table::fcn_info::cn_info_rep::xfind): 9712 New function. 9713 (symbol_table::fcn_info::cn_info_rep::find): 9714 Use it to avoid recursive call. 9715 9716 * graphics.cc (Fdrawnow): Return after errors. Don't strip 9717 trailing directory separator from name used in call to file_stat. 9718 9719 * DLD-FUNCTIONS/eigs.cc (Feigs): Avoid warnings about ambiguous 9720 else. Style fixes. Return after errors. 9721 97222009-02-05 Jaroslav Hajek <highegg@gmail.com> 9723 9724 * oct-map.cc (Octave_map::index): Optimize. 9725 97262009-02-05 Jaroslav Hajek <highegg@gmail.com> 9727 9728 * OPERATORS/op-cm-cs.cc: Use scalar_value in scalar-to-matrix 9729 indexed assignments. 9730 * OPERATORS/op-fcm-fcs.cc: Ditto. 9731 * OPERATORS/op-fm-fs.cc: Ditto. 9732 * OPERATORS/op-m-s.cc: Ditto. 9733 * OPERATORS/op-int.h (OCTAVE_MS_INT_ASSIGN_OPS): Use homogeneous 9734 integer scalar-to-matrix assignment. 9735 (OCTAVE_MM_INT_ASSIGN_OPS): Use homogeneous integer matrix-to-matrix 9736 assignment. 9737 9738 * Cell.h (Cell::index): Remove direct idx_vector overloads. 9739 (Cell::assign): Remove direct idx_vector overloads. 9740 (Cell::delete_elements): Remove direct idx_vector overloads. 9741 * Cell.cc (Cell::index (const octave_value_list&)): Call 9742 ArrayN<octave_value>::index. 9743 9744 * oct-map.h (Octave_map::index): Remove direct idx_vector overloads. 9745 * oct-map.cc (Octave_map::index): Ditto. 9746 * ov-base-mat.cc (octave_base_mat::do_index_op): Optimize scalar 9747 indexing case. 9748 (octave_base_mat::assign (const octave_value_list&, const MT&)): 9749 Specialize variable argument number. 9750 (octave_base_mat::assign (const octave_value_list&, const 9751 typename MT::element_type&)): 9752 New method overload with optimized scalar indexing case. 9753 9754 * ov-cell.cc (octave_base_matrix<Cell>::do_index_op, 9755 octave_base_matrix<Cell>::assign, 9756 octave_base_matrix<Cell>::delete_elements): Specialize. 9757 (octave_cell::assign (const_octave_value_list, const octave_value&): 9758 Delete method. 9759 * ov-cell.h: Reflect change. 9760 9761 * ov-cx-mat.cc (octave_complex_matrix::assign): Delete overloads. 9762 * ov-cx-mat.h: Reflect changes. 9763 * ov-flt-cx-mat.cc (octave_float_complex_matrix::assign): Delete overloads. 9764 * ov-flt-cx-mat.h: Reflect changes. 9765 * ov-list.cc (octave_list::do_index_op): Simplify. 9766 * ov-struct.cc (octave_struct::do_index_op): Simplify. 9767 * pt-eval.cc (tree_evaluator::visit_simple_for_command): Optimize 9768 traversing a row vector. 9769 97702009-02-05 John W. Eaton <jwe@octave.org> 9771 9772 * variables.cc (Vignore_function_time_stamp): 9773 Eliminate unused static variable. 9774 9775 * debug.cc (get_file_line): Override default precedence in logical 9776 expression. 9777 9778 * ov-null-mat.cc (default_null_str_numeric_conversion_function, 9779 default_null_sq_str_numeric_conversion_function, 9780 default_null_matrix_numeric_conversion_function): 9781 Avoid unused variable warning. 9782 9783 * ov-flt-re-diag.cc (octave_float_diag_matrix::save_binary): 9784 Avoid unused parameter warning. 9785 * pt-eval.cc (tree_evaluator::visit_if_clause): Likewise. 9786 * ov-typeinfo.cc (octave_value_typeinfo::do_register_type): Likewise. 9787 * ov-base.cc (octave_base_value::subsref (const std::string&, 9788 const std::list<octave_value_list>&, bool): Likewise. 9789 * ov-flt-cx-diag.cc (octave_float_complex_diag_matrix::save_binary): 9790 Likewise. 9791 9792 * oct-hdf5.h: New file. 9793 * ls-hdf5.cc, ov-base.h, ov.h: Include oct-hdf5.h instead of hdf5.h. 9794 * ls-hdf5.h: Include oct-hdf5.h. 9795 * load-save.cc: Include ls-hdf5.h instead of hdf5.h. 9796 * ov-base-sparse.cc, load-save.cc: 9797 Don't protect #include "ls-hdf5.h" with #ifdef. 9798 97992009-02-04 Kai Habel <kai.habel@gmx.de> 9800 9801 * gl-render.cc (opengl_renderer::draw (surface::properties)): 9802 Normalize surface normals. Correct calculation of diffuse lighting. 9803 * gl-render.cc (opengl_renderer::draw (patch::properties)): 9804 Correct calculation of diffuse lighting. 9805 98062009-02-04 John W. Eaton <jwe@octave.org> 9807 9808 * help.cc (do_which): If NAME is not in the symbol table, look for 9809 a function file in the load path. 9810 (raw_help_from_file): Unwind-protect and set reading_script_file. 9811 9812 * pt-loop.h, pt-loop.cc (evaluating_looping_command): 9813 Delete global variable and all uses. 9814 * parse.y, parse.h (evaluating_function_body): Delete global 9815 variable and all uses. 9816 (make_break_command, make_continue_command, make_return_command): 9817 Use tree_evaluator::in_fcn_or_script_body and 9818 tree_evaluator::in_loop_command instead of 9819 evaluating_function_body and evaluating_looping_command. 9820 9821 * pt-eval.h (tree_evaluator::in_function_or_script_body): 9822 Delete member variable and all uses. 9823 (tree_evaluator::reset): Delete function and all uses. 9824 9825 * pt-eval.cc, pt-eval.h (tree_evaluator::in_fcn_or_script_body, 9826 tree_evaluator::in_loop_command): New static variables. 9827 (tree_evaluator::visit_simple_for_command, 9828 tree_evaluator::visit_complex_for_command, 9829 tree_evaluator::visit_while_command, 9830 tree_evaluator::visit_do_until_command): Unwind-protect and set 9831 tree_evaluator::in_loop_command instead of 9832 evaluating_looping_command. 9833 (tree_evaluator::visit_statement): Only call echo_code if 9834 evaluating function or script and (Vecho_executing_commands & 9835 ECHO_FUNCTIONS). Use tree_evaluator::in_fcn_or_script_body 9836 instead of evaluating_function_body. 9837 9838 * ov-usr-fcn.cc (octave_user_script::do_multi_index_op): 9839 octave_user_function::do_multi_index_op): Unwind-protect and set 9840 tree_evaluator::in_fcn_or_script_body. 9841 9842 * pt-stmt.cc, pt-stmt.h (tree_statement::echo_code): 9843 Rename from maybe_echo_code. Simplify. 9844 98452009-02-04 Jaroslav Hajek <highegg@gmail.com> 9846 9847 * pt-loop.h (tree_simple_for_command::do_for_loop_once, 9848 tree_complex_for_command::do_for_loop_once): Remove obsolete decls. 9849 * pt-loop.cc (quit_loop_now): Remove obsolete method. 9850 * pt-eval.cc (DO_ND_LOOP): Delete macro. 9851 (tree_evaluator::visit_simple_for_command): Use the generic 9852 do_index_op for iterating matrices. 9853 98542009-02-04 John W. Eaton <jwe@octave.org> 9855 9856 New evaluator and debugger derived from tree-walker class. 9857 9858 * pt-eval.h, pt-eval.cc: New files. Parse tree evaluator code 9859 adapted from eval member functions in classes derived from 9860 tree_command. 9861 * Makefile.in (PT_INCLUDES, PT_SRC): Add them to the lists 9862 9863 * pt-cmd.cc (tree_function_def::eval): Delete. 9864 * pt-cmd.h: Delete decl. 9865 (tree_command::eval): Delete pure virtual function. 9866 (tree_no_op_command::eval): Delete. 9867 (tree_function_def::function): Return octave_value, instead of 9868 pointer to octave_function. Change all uses. 9869 9870 * pt-except.cc (do_catch_code, tree_try_catch_command::eval, 9871 do_unwind_protect_cleanup_code, 9872 tree_unwind_protect_command::eval): Delete. 9873 * pt-except.h: Delete decls. 9874 9875 * pt-jump.cc (tree_break_command::eval, tree_return_command::eval, 9876 tree_continue_command::eval): Delete. 9877 * pt-jump.h: Delete decls. 9878 9879 * pt-loop.cc (DO_ND_LOOP): Delete macro. 9880 (tree_while_command::eval, tree_do_until_command::eval, 9881 tree_simple_for_command::do_for_loop_once, 9882 tree_simple_for_command::eval, 9883 tree_complex_for_command::do_for_loop_once, 9884 tree_complex_for_command::eval): 9885 * pt-loop.h: Delete decls. 9886 9887 * pt-select.cc (tree_if_clause::eval, tree_if_command_list::eval, 9888 tree_if_command::eval, tree_switch_case::eval, 9889 tree_switch_case_list::eval, tree_switch_command::eval): Delete. 9890 * pt-select.h: Delete decls. 9891 (class tree_if_clause, class tree_switch_case): Derive from tree. 9892 Handle line and column in constructors. 9893 9894 * pt-stmt.cc (tree_statement::eval): Delete 9895 * pt-stmt.h: Delete decl. 9896 9897 * pt-stmt.cc, pt-stmt.h (tree_statement::is_command, 9898 tree_statement::is_expression, tree_statement::line, 9899 tree_statement::column): Now const. 9900 9901 * pt-stmt.cc (tree_statement::set_print_flag, 9902 tree_statement::is_end_of_fcn_or_script): New functions. 9903 * pt-stmt.h: Provide decl. 9904 (set_breakpoint, delete_breakpoint, is_breakpoint): New function. 9905 (bp): New member variable. 9906 (print_result): Delete member variable. 9907 (tree_statement_list::anon_function_body): New member variable. 9908 (tree_statement_list::mark_as_anon_function_body, 9909 tree_statement_list::is_anon_function_body, 9910 tree_statement_list::is_script_body): New functions. 9911 9912 * pt-decl.cc (tree_decl_init_list::eval, 9913 tree_decl_command::accept, tree_global_command::do_init, 9914 tree_global_command::eval, tree_static_command::do_init, 9915 tree_static_command::eval): Delete. 9916 * pt-decl.h: Delete decls. 9917 (tree_decl_elt::eval_fcn): Delete typedef. 9918 9919 * pt-decl.cc (tree_global_command::accept, 9920 tree_static_command::accept): New functions. 9921 9922 * pt-stmt.cc (tree_statement::print_result): Move here from 9923 pt-stmt.h. Return true if expr is printable. 9924 9925 * ov-base.cc (Vsilent_functions): Delete. 9926 (octave_base_value::print_with_name): Don't check 9927 evaluating_function_body && Vsilent_functions here. 9928 * ov-class.cc (octave_class::print_with_name): Likewise. 9929 * ov-base.h (Vsilent_functions): Delete decl. 9930 * pt-eval.cc (Fsilent_functions): Move here from ov-base.cc. 9931 (Vsilent_functions): New static variable. 9932 9933 * sighandlers.cc (user_abort): Set tree_evaluator::debug_mode here. 9934 9935 * pt.h (tree::bp): Rename from tree::break_point. 9936 (tree::set_breakpoint, tree::delete_breakpoint, tree::is_breakpoint): 9937 No longer virtual. 9938 9939 * input.cc (get_debug_input): Use current_evaluator and 9940 tree-walker to evaluate command. 9941 * ov-usr-fcn.cc (octave_user_script::do_multi_index_op): Likewise. 9942 * toplev.cc (main_loop): Likewise. 9943 * parse.y (eval_string): 9944 9945 * input.h, input.cc (Vdebugging_current_line): Delete. 9946 (get_debug_input): Use tree_evaluator::debug_line instead of 9947 Vdebugging_current_line. 9948 9949 * ov-usr-fcn.cc (octave_user_function::do_multi_index_op): 9950 Handle inline functions and anonymous functions as single 9951 expressions. 9952 * parse.y (eval_string): Likewise. 9953 9954 * parse.y (make_do_until_command): Rename first argument from 9955 do_tok to until_tok. 9956 (loop_command): Pass UNTIL token instead of DO token to 9957 make_do_until_command. 9958 (make_elseif_clause): New arg, elseif_tok. Pass line and column 9959 info to tree_if_clause constructor. 9960 (elseif_clause): Pass ELSEIF token to make_elseif_clause. 9961 (make_switch_case): New arg, case_tok. Pass line and column info 9962 to tree_switch_case constructor. 9963 (switch_case): Pass CASE token to make_switch_case. 9964 (make_script): New arg end_script. Append it to cmds. 9965 (script): Create no-op command for end of script and pass it to 9966 make_script. 9967 (start_function): New arg, end_function. Append it to body. 9968 (function2): Pass end_function to start_function. 9969 (make_end): New function. 9970 (function_end): Declare as tree_statement_type. 9971 Create no-op command for end of script. 9972 (make_anon_fcn_handle): Mark body as anonymous function. 9973 (set_stmt_print_flag): Set print flag for all separator types 9974 9975 * parse.y (fold (tree_binary_expression*), 9976 fold (tree_unary_expression *), finish_colon_expression, 9977 finish_matrix): Call rvalue1 instead of rvalue. 9978 Stash line number in new tree_constant object. 9979 9980 * debug.h (bp_table::have_breakpoints): New static function. 9981 (bp_table::do_have_breakpoints): New member function. 9982 * debug.cc (bp_table::do_add_breakpoint, 9983 bp_table::do_remove_breakpoint, 9984 bp_table::do_remove_all_breakpoints_in_file, 9985 bp_table::do_remove_all_breakpoints): Call 9986 bp_table::have_breakpoints to set tree_evaluator::debug_mode. 9987 (Fdbnext): Delete function. Alias to dbstep. 9988 (Fdbquit, Fdbcont): Set tree_evaluator::dbstep_flag to zero. 9989 (Fdbstep): Rewrite to use tree_evaluator::dbstep_flag instead of 9990 tree::break_next, tree::last_line, tree::break_function, and 9991 tree::last_break_function. 9992 (Fdbwhere): Use tree_evaluator::debug_line and 9993 tree_evaluator::debug_column to get current line and column info. 9994 Don't print column if it is less than zero. 9995 * pt.cc, pt.h (tree::break_next, tree::last_line, 9996 tree::last_break_function, tree::break_function, 9997 tree::break_statement): Delete. 9998 9999 * pt-bp.cc (tree_breakpoint::visit_global_command, 10000 tree_breakpoint::visit_static_command, 10001 tree_breakpoint::take_action (tree_statement&)): New functions. 10002 * pt-bp.h: Provide decls. 10003 10004 * pt-bp.h (tree_walker::visit_global_command, 10005 tree_walker::visit_static_command): New pure virtual functions. 10006 (tree_walker::visit_decl_command): Delete. 10007 10008 * pt-bp.cc (tree_breakpoint::visit_decl_command): Delete. 10009 * pt-bp.h: Delete decl. 10010 (MAYBE_DO_BREAKPOINT): Delete macro and all uses. 10011 10012 * pt-bp.cc (tree_breakpoint::visit_no_op_command): Do nothing. 10013 (tree_breakpoint::visit_argument_list, 10014 tree_breakpoint::visit_binary_expression, 10015 tree_breakpoint::visit_colon_expression, 10016 tree_breakpoint::visit_decl_elt, 10017 tree_breakpoint::visit_decl_init_list, 10018 tree_breakpoint::visit_octave_user_script, 10019 tree_breakpoint::visit_octave_user_function, 10020 tree_breakpoint::visit_octave_user_function_header, 10021 tree_breakpoint::visit_octave_user_function_trailer, 10022 tree_breakpoint::visit_identifier, 10023 tree_breakpoint::visit_index_expression, 10024 tree_breakpoint::visit_matrix, tree_breakpoint::visit_cell, 10025 tree_breakpoint::visit_multi_assignment, 10026 tree_breakpoint::visit_anon_fcn_handle, 10027 tree_breakpoint::visit_constant, 10028 tree_breakpoint::visit_fcn_handle, 10029 tree_breakpoint::visit_parameter_list, 10030 tree_breakpoint::visit_postfix_expression, 10031 tree_breakpoint::visit_prefix_expression, 10032 tree_breakpoint::visit_return_list, 10033 tree_breakpoint::visit_simple_assignment): Call panic_impossible 10034 since breakpoints aren't set on expressions. 10035 (tree_breakpoint::visit_if_clause): Fold into visit_if_command_list. 10036 (tree_breakpoint::visit_switch_case): Fold into visit_switch_case_list. 10037 (tree_breakpoint::visit_try_catch_command, 10038 tree_breakpoint::visit_unwind_protect_command): 10039 Don't set breakpoint on command itself, the the statements it 10040 contains. 10041 (tree_breakpoint::visit_global_command, 10042 tree_breakpoint::visit_static_command): Call do_decl_command to do 10043 actual work. 10044 (tree_breakpoint::visit_while_command, 10045 tree_breakpoint::visit_do_until_command, 10046 tree_breakpoint::visit_simple_for_command, 10047 tree_breakpoint::visit_complex_for_command, 10048 tree_breakpoint::visit_statement, 10049 tree_breakpoint::visit_statement_list, 10050 tree_breakpoint::visit_switch_case_list): Set breakpoints at 10051 appropriate places. 10052 10053 * pt-pr-code.h, pt-pr-code.cc (tree_print_code::visit_global_command, 10054 tree_print_code::visit_static_command, 10055 tree_print_code::do_decl_command): New functions. 10056 (tree_print_code::visit_decl_command): Delete. 10057 10058 * pt-check.h, pt-check.cc (tree_checker::visit_global_command, 10059 tree_checker::visit_static_command, tree_checker::do_decl_command): 10060 New functions. 10061 (tree_checker::visit_decl_command): Delete. 10062 10063 * pt-select.cc (tree_switch_case::label_matches): Call rvalue1 10064 instead of rvalue. 10065 10066 * pt-exp.h, pt-exp.cc (tree_expression::rvalue1): New function. 10067 (tree_expression::rvalue (void)): Delete. 10068 (tree_expression::is_logically_true): Call rvalue1 instead of rvalue. 10069 10070 * pt-fcn-handle.h, pt-fcn-handle.cc (tree_fcn_handle::rvalue1, 10071 tree_anon_fcn_handle::rvalue1): New functions. 10072 (tree_fcn_handle:rvalue (void), 10073 tree_anon_fcn_handle::rvalue1 (void)): Delete. 10074 (tree_fcn_handle::rvalue (int), tree_anon_fcn_handle_rvalue (int)): 10075 Call rvalue1 instead of rvalue. 10076 10077 * pt-idx.h, pt-idx.cc (tree_index_expression::rvalue1): New function. 10078 (tree_index_expression::rvalue (void)): Delete. 10079 (tree_index_expression::get_struct_index, 10080 tree_index_expression::rvalue (int)): Call rvalue1 instead of rvalue. 10081 10082 * pt-mat.h, pt-mat.cc (tree_matrix::rvalue1): New function. 10083 (tree_matrix::rvalue (void)): Delete. 10084 (tm_row_const::tm_row_const_rep::init, 10085 tree_matrix::rvalue (int)): Call rvalue1 instead of rvalue. 10086 10087 * pt-misc.cc (tree_parameter_list::convert_to_const_vector): 10088 Call rvalue1 instead of rvalue. 10089 * pt-arg-list.cc (tree_argument_list::convert_to_const_vector): 10090 Likewise. 10091 10092 * pt-unop.h, pt-unop.cc (tree_prefix_expression::rvalue1, 10093 tree_postfix_expression::rvalue1): New functions. 10094 (tree_prefix_expression::rvalue (void), 10095 tree_postfix_expression::rvalue (void)): Delete. 10096 (tree_prefix_expression::rvalue (int), 10097 tree_postfix_expression::rvalue (int)): 10098 Call rvalue1 instead of rvalue. 10099 10100 * pt-id.h, pt-id.cc (tree_identifier::rvalue1): New function. 10101 (tree_identifier::rvalue (void)): Delete. 10102 10103 * pt-assign.h, pt-assign.cc (tree_simple_assignment::rvalue1, 10104 tree_multi_assignment::rvalue1): New functions. 10105 (tree_simple_assignment::rvalue (void), 10106 tree_multi_assignment::rvalue (void): Delete. 10107 (tree_simple_assignment::rvalue (int)): 10108 Call rvalue1 instead of rvalue. 10109 10110 * pt-binop.h, pt-binop.cc (tree_binary_expression::rvalue1, 10111 tree_boolean_expression::rvalue1): New functions. 10112 (tree_binary_expression::rvalue (void), 10113 tree_boolean_expression::rvalue (void)): Delete. 10114 (tree_binary_expression::rvalue (int), 10115 tree_boolean_expression::rvalue (int)): 10116 Call rvalue1 instead of rvalue. 10117 10118 * pt-cbinop.h, pt-cbinop.cc 10119 (tree_compound_binary_expression::rvalue1): New function. 10120 (tree_compound_binary_expression::rvalue (void)): Delete. 10121 10122 * pt-cell.h, pt-cell.cc (tree_cell::rvalue1): New function. 10123 (tree_cell::rvalue (void)): Delete. 10124 (tree_cell::rvalue (int)): Call rvalue1 instead of rvalue. 10125 10126 * pt-colon.h, pt-colon.cc (tree_colon_expression::rvalue1): 10127 New function. 10128 (tree_colon_expression::rvalue (void)): Delete. 10129 (tree_colon_expression::rvalue (int)): 10130 Call rvalue1 instead of rvalue. 10131 10132 * pt-const.h, pt-const.cc (tree_constant::rvalue1): New function. 10133 (tree_constant::rvalue (void)): Delete. 10134 (tree_constant::rvalue (int)): Call rvalue1 instead of rvalue. 10135 10136 * pt-decl.h, pt-decl.cc (tree_decl_elt::ravlue1): New function. 10137 (tree_decl_elt::ravlue (void)): Delete. 10138 (tree_decl_elt::eval): Call rvalue1 instead of rvalue. 10139 101402009-02-03 Jaroslav Hajek <highegg@gmail.com> 10141 10142 * TEMPLATE-INST/Array-tc.cc: Replace vec_index by pointers. 10143 101442009-02-02 Jaroslav Hajek <highegg@gmail.com> 10145 10146 * ov-re-mat.cc (octave_matrix::abs, octave_matrix::real, 10147 octave_matrix::imag, octave_matrix::conj): Use special code. 10148 * ov-flt-re-mat.cc (octave_float_matrix::abs, octave_float_matrix::real, 10149 octave_float_matrix::imag, octave_float_matrix::conj): Use special code. 10150 * ov-cx-mat.cc (octave_complex_matrix::abs, octave_complex_matrix::real, 10151 octave_complex_matrix::imag, octave_complex_matrix::conj): Use special code. 10152 * ov-flt-cx-mat.cc (octave_float_complex_matrix::abs, octave_float_complex_matrix::real, 10153 octave_float_complex_matrix::imag, octave_float_complex_matrix::conj): Use special code. 10154 101552009-01-30 Jaroslav Hajek <highegg@gmail.com> 10156 10157 * DLD-FUNCTIONS/lookup.cc (Flookup): Add missing check. 10158 101592009-01-29 John W. Eaton <jwe@octave.org> 10160 10161 * pt-stmt.cc (tree_statement::eval): Check 10162 in_function_or_script_body instead of symbol_table::at_top_level () 10163 to decide whether to call octave_call_stack::set_statement. 10164 10165 * graphics.cc (properties::set_defaults): Also set 10166 horizontalalignment, verticalalignmnt, and rotation properties for 10167 new label objects here. 10168 10169 * ov-base-scalar.cc (octave_base_scalar<ST>::is_true (void) const): 10170 Error if scalar is NaN. 10171 * ov-base-mat.cc (octave_base_matrix<MT>::is_true (void) const): 10172 Likewise, if any element of matrix is NaN. 10173 * ov-cell.cc (octave_cell::is_true): New function. 10174 * Cell.h (Cell::any_element_is_nan): New function. 10175 101762009-01-29 Jaroslav Hajek <highegg@gmail.com> 10177 10178 * pr-output.cc: 10179 (void octave_print_internal (..., const DiagMatrix& m,...), 10180 (void octave_print_internal (..., const ComplexDiagMatrix& m,...), 10181 (void octave_print_internal (..., const FloatDiagMatrix& m,...), 10182 (void octave_print_internal (..., const FloatComplexDiagMatrix& m,...)): 10183 New functions. 10184 * pr-output.h: Declare them. 10185 * ov-base-diag.cc (octave_base_diag::print_raw): Call 10186 octave_print_internal. 10187 101882009-01-28 John W. Eaton <jwe@octave.org> 10189 10190 * Makefile.in (install, uninstall): Handle SHLLIBPRE and SHLBINPRE 10191 library prefixes. From Marco Atzeri <marco_atzeri@yahoo.it>. 10192 101932008-01-28 David Bateman <dbateman@free.fr> 10194 10195 * DLD-FUNCTIONS/regexp.cc (octregexp_list): Don't break for zero 10196 length match, but rather advance the index by one character and 10197 try again. 10198 101992009-01-28 Jaroslav Hajek <highegg@gmail.com> 10200 10201 * DLD-FUNCTIONS/lookup.cc (Flookup): Fix doc string. 10202 102032009-01-27 John W. Eaton <jwe@octave.org> 10204 10205 * load-path.cc (Fcommand_line_path): Rename from Fcommandlinepath. 10206 102072009-01-27 Ben Abbott <bpabbott@mac.com> 10208 10209 * graphics.cc (convert_position): Handle character units. 10210 (default_axes_tick, default_figure_papersize, 10211 default_figure_paperposition): New functions. 10212 * graphics.h.in (class figure::properties): Use them to 10213 initialize papersize, paperposition, xtick, ytick, and ztick 10214 properties. 10215 102162009-01-27 Jaroslav Hajek <highegg@gmail.com> 10217 10218 * DLD-FUNCTIONS/qr.cc (Fqr): Treat empty matrices correctly. 10219 102202009-01-26 Thomas Treichl <Thomas.Treichl@gmx.net> 10221 10222 * display.cc (display_info::init): Use double instead of CGFloat. 10223 Use HAVE_FRAMEWORK_CARBON instead of OCTAVE_USE_OS_X_API. 10224 102252009-01-26 John W. Eaton <jwe@octave.org> 10226 10227 * load-path.cc (load_path::do_find_fcn): Handle @foo/bar. 10228 102292009-01-24 Jaroslav Hajek <highegg@gmail.com> 10230 10231 * pt-cell.cc (tree_cell::rvalue): Optimize the single row case. 10232 102332009-01-24 Jaroslav Hajek <highegg@gmail.com> 10234 10235 * ov-struct.cc (octave_struct::subsasgn): Reshape cs-list on rhs 10236 according to the index expression. 10237 * ov-cell.cc (octave_cell::subsasgn): Ditto. 10238 102392008-12-25 Ben Abbott <bpabbott@mac.com> 10240 10241 * load-path.cc (Fcommandlinepath): New function. 10242 * load-path.h (load_path::get_command_line_path, 10243 load_path::do_get_command_line_path): New functions. 10244 102452009-01-24 Ben Abbott <bpabbott@mac.com> 10246 10247 * DLD-FUNCTIONS/eigs.cc: eigs.cc: skip tests if ARPACK is missing. 10248 102492009-01-25 Søren Hauberg <hauberg@gmail.com> 10250 10251 * help.cc (do_get_help_text, raw_help_from_symbol_table): new output to 10252 flag the a function is found but not documented. 10253 102542009-01-25 Søren Hauberg <hauberg@gmail.com> 10255 10256 * help.cc (raw_help_from_file): No longer search for files called 10257 'Contents.m', as this is moved to 'script/help.m'. 10258 10259 102602009-01-23 John W. Eaton <jwe@octave.org> 10261 10262 * toplev.cc (octave_call_stack::do_goto_caller_frame): 10263 Also allow caller frame to be base frame, not just user code. 10264 102652009-01-23 Jaroslav Hajek <highegg@gmail.com> 10266 10267 * gripes.cc (gripe_indexed_cs_list, gripe_invalid_inquiry_subscript): 10268 New functions. 10269 * gripes.h: Declare them. 10270 * pt-idx.cc: Remove definitions of the above funcs. 10271 * ov-cell.cc (octave_cell::subsref): Declare constants as const. 10272 (octave_cell::subsasgn): Remove dead branch, declare constants as const. 10273 (octave_cell::list_value): Optimize. 10274 * ov-struct.cc 10275 (octave_struct::subsref): Declare constants as const. 10276 (octave_struct::subsasgn): Remove dead branch, declare constants as const. 10277 * ov-cs-list.cc (octave_cs_list::octave_cs_list (const Cell&)): 10278 Optimize. 10279 * oct-obj.cc (octave_value_list::octave_value_list (const 10280 std::list<octave_value_list>&)): New constructor. 10281 * oct-obj.h: Declare it. 10282 * pt-arg-list.cc (convert_to_const_vector): Optimize. 10283 * symtab.cc (symbol_table::fcn_info::fcn_info_rep::find): Use const 10284 reference to avoid redundant copy. 10285 * ov-usr-fcn.cc (octave_user_function::bind_automatic_vars): Optimize. 10286 (octave_user_function::octave_all_va_args): Optimize. 10287 102882009-01-22 Jaroslav Hajek <highegg@gmail.com> 10289 10290 * Cell.h (Cell::Cell (octave_value_list)): Only declare. 10291 (Cell::index (*)): Change resize_ok type to bool. 10292 * Cell.cc (Cell::Cell (octave_value_list)): Redefine. 10293 * oct-obj.h, oct-obj.cc: Change octave_value_list::data to 10294 Cell variable, reflect changes. 10295 102962009-01-22 John W. Eaton <jwe@octave.org> 10297 10298 * help.cc (do_which (std::ostream&, const std::string&), Fwhich): 10299 Delete. 10300 (do_which (const std::string&, std::string&), F__which__): 10301 New functions. 10302 * do_which (const std::string&): 10303 Call do_which (const std::string&, std::string&) to do the work. 10304 103052009-01-22 Søren Hauberg <hauberg@gmail.com> 10306 10307 * defun-int.h (print_usage): No longer mark as deprecated. 10308 * defun.cc (print_usage): Simply call feval to execute print_usage.m. 10309 * help.cc (additional_help_message, display_names_from_help_list, 10310 display_symtab_names, simple_help, try_info, help_from_info, 10311 display_help_text, display_usage_text, raw_help_from_list, 10312 help_from_list, help_from_symbol_table, help_from_file, 10313 builtin_help, Fhelp, display_file, do_type, Ftype, 10314 first_help_sentence, print_lookfor, Flookfor): Delete. 10315 (looks_like_html, raw_help_from_map, raw_help, do_get_help_text, 10316 F__operators__, F__keywords__, F__builtins__, 10317 file_is_in_dir, F__list_functions__): New functions. 10318 (pair_type, map_iter): New typedefs. 10319 (operators, keywords): Use pair_type for elements of list. 10320 (names): Use map for (keyword, doc) lists. 10321 (make_name_list): Sprinkle with const. 10322 * help.h (display_help_text, display_usage_text, 10323 additional_help_message): Delete decls. 10324 103252009-01-22 John W. Eaton <jwe@octave.org> 10326 10327 * toplev.cc (octave_config_info): Check OCTAVEUSE_OS_X_API instead 10328 of __APPLE__ && __MACH__. 10329 10330 * display.cc (display_info::init): Get info for Windows and OS X 10331 systems. 10332 103332009-01-22 Jaroslav Hajek <highegg@gmail.com> 10334 10335 * pt-idx.cc (tree_index_expression::lvalue): Correct tmpi when seeing 10336 a plain struct component. 10337 * ov-struct.cc (octave_struct::subsasgn): Use proper type substr in 10338 empty_conv. 10339 103402009-01-22 Jaroslav Hajek <highegg@gmail.com> 10341 10342 * DLD-FUNCTIONS/qr.cc: Remove HAVE_QRUPDATE check. 10343 * DLD-FUNCTIONS/chol.cc: Ditto. 10344 103452009-01-21 John W. Eaton <jwe@octave.org> 10346 10347 * Makefile.in (display.o): Add X11_INCFLAGS to CPPFLAGS. 10348 (octave$(EXEEXT)): Link with X11_LIBS. 10349 10350 * display.h, display.cc: New files. 10351 * graphics.cc (default_screendepth, default_screensize, 10352 default_screenpixelsperinch): New functions. 10353 * graphics.h.in (class root_figure::properties): New property, 10354 screendepth. Use default_screensize to initialize screensize 10355 property. Use default_screenpixelsperinch to initialize 10356 screenpixelsperinch property. 10357 10358 * graphics.cc (properties::init): Set default xlabel, ylabel, 10359 zlabel, and title properties that differ from default text 10360 properties. 10361 103622009-01-21 Jaroslav Hajek <highegg@gmail.com> 10363 10364 * OPERATORS/op-range.cc: Define & register range-scalar ops. 10365 103662009-01-21 Jaroslav Hajek <highegg@gmail.com> 10367 10368 * ov.h (octave_value::subsref (..., bool auto_add)): New method. 10369 (octave_value::next_subsref (bool auto_add, ...)): New method. 10370 * ov.cc (octave_value::next_subsref (bool auto_add, ...)): New method. 10371 * ov-base.h (octave_base_value::subsref (..., bool auto_add)): New 10372 virtual method. 10373 * ov-base.cc (octave_base_value::subsref (..., bool auto_add)): New 10374 virtual method. 10375 * ov-cell.cc (octave_cell::subsref (..., bool auto_add)): New virtual 10376 method. 10377 * ov-cell.h (octave_cell::subsref (..., bool auto_add)): Declare it. 10378 * ov-struct.cc (octave_struct::subsref (..., bool auto_add)): New 10379 virtual method. 10380 (octave_struct::subsref (const std::string& type, const 10381 std::list<octave_value_list>& idx)): Do not allow resizing. 10382 * ov-struct.h (octave_struct::subsref (..., bool auto_add)): Declare 10383 it. 10384 * ov-struct.cc (octave_struct::dotref (..., bool auto_add)): New 10385 virtual method. 10386 * ov-struct.h (octave_struct::dotref (..., bool auto_add)): Declare it. 10387 * pt-idx.cc (tree_index_expression::rvalue): Do not reevaluate already 10388 evaluated part of the index chain. 10389 (tree_index_expression::rvalue): Do not reevaluate already evaluated 10390 part of the index chain. Do not actually perform trailing indexing. 10391 Do not allow indexing cs-lists. 10392 103932009-01-20 John W. Eaton <jwe@octave.org> 10394 10395 * file-io.cc (Ffstat): New function. 10396 103972009-01-17 Jaroslav Hajek <highegg@gmail.com> 10398 10399 * DLD-FUNCTIONS/qr.cc (Fqrupdate, Fqrinsert, Fqrdelete, Fqrshift): 10400 Reflect changes in liboctave. 10401 * DLD-FUNCTIONS/chol.cc (Fcholupdate, Fcholinsert): 10402 Reflect changes in liboctave. 10403 104042009-01-19 Jaroslav Hajek <highegg@gmail.com> 10405 10406 * ov.h (octave_value::make_unique (int)): New method. 10407 * oct-obj.h (octave_value_list::octave_value_list (const Cell&)): New 10408 constructor. 10409 * ov-cell.cc (octave_cell::subsasgn): Allow composed {} indexing 10410 in multi-assignments. Optimize. 10411 * ov-struct.cc (octave_struct::subsasgn): Correct composed {} indexing 10412 in multi-assignments. Optimize & fix bugs. 10413 * pt-idx.cc (tree_index_expression::lvalue): Rewrite to allow 10414 specifying cs-list anywhere in index chain, be more robust. 10415 104162009-01-19 John W. Eaton <jwe@octave.org> 10417 10418 * lex.l (grab_comment_block): If not reading input from a file, 10419 bail out at first newline inside a comment. 10420 10421 * lex.l (lexer_debug_flag): New static variable. 10422 (F__lexer_debug_flag__): New function. 10423 (LEXER_DEBUG): New macro. Use it in all patterns. 10424 (DISPLAY_TOK_AND_RETURN): Also display token if lexer_debug_flag 10425 is set. 10426 (process_comment): Display comment if lexer_debug_flag is set. 10427 (display_character, display_state, lexer_debug): New static functions. 10428 (xunput): Display character if lexer_debug_flag is set. 10429 104302009-01-17 Jaroslav Hajek <highegg@gmail.com> 10431 10432 * ov.h: Describe usage of storable_value and make_storable_value. 10433 * ov.cc: Remove FIXME comment. 10434 104352009-01-15 John W. Eaton <jwe@octave.org> 10436 10437 * data.cc (Freshape): Include mismatched dimensions in error message. 10438 From Robert Millan <rmh@aybabtu.com>. 10439 104402009-01-14 Jaroslav Hajek <highegg@gmail.com> 10441 10442 * ov.cc (octave_value::maybe_economize): New method. 10443 (octave_value::non_null_value): rename to storable_value. 10444 (octave_value::make_non_null_value): rename to make_storable_value. 10445 * ov-base.h (octave_base_value::maybe_economize): New method. 10446 * ov-base-mat.h (octave_base_mat::maybe_economize): New override. 10447 * oct-obj.cc (octave_value_list::normalize_null_values): 10448 Rename to make_storable_values, use make_storable_value. 10449 * oct-obj.h: Ditto. 10450 * ov-builtin.cc: non_null_value -> storable_value. 10451 * ov-cell.cc: Ditto. 10452 * ov-struct.cc: Ditto. 10453 * pt-decl.h: Ditto. 10454 104552009-01-15 Søren Hauberg <hauberg@gmail.com> 10456 10457 * DLD-FUNCTIONS/__magick_read__.cc (encode_uint_image): 10458 Initialize bitdepth. 10459 104602009-01-14 Søren Hauberg <hauberg@gmail.com> 10461 10462 * DLD-FUNCTIONS/betainc.cc, DLD-FUNCTIONS/chol.cc, 10463 DLD-FUNCTIONS/daspk.cc, DLD-FUNCTIONS/dasrt.cc, 10464 DLD-FUNCTIONS/dassl.cc, DLD-FUNCTIONS/filter.cc, 10465 DLD-FUNCTIONS/gammainc.cc, DLD-FUNCTIONS/gcd.cc, 10466 DLD-FUNCTIONS/givens.cc, DLD-FUNCTIONS/hess.cc, 10467 DLD-FUNCTIONS/lsode.cc, DLD-FUNCTIONS/qr.cc, DLD-FUNCTIONS/qz.cc, 10468 DLD-FUNCTIONS/schur.cc, DLD-FUNCTIONS/svd.cc, 10469 DLD-FUNCTIONS/syl.cc, data.cc, mappers.cc: 10470 Use ifnottex instead of ifinfo. 10471 104722009-01-14 John W. Eaton <jwe@octave.org> 10473 10474 * load-path.cc (load_path::do_set): Call do_clear after disabling 10475 add_hook. 10476 104772009-01-13 Jaroslav Hajek <highegg@gmail.com> 10478 10479 * dirfns.cc (Freadddir): qsort -> sort. 10480 * graphics.cc (maybe_set_children): Ditto. 10481 * help.cc (simple_help): Ditto. 10482 * input.cc (generate_possible_completions): Ditto. 10483 * oct_map.cc (keys_ok): Ditto. 10484 * ov-fcn-inline.cc (Finline): Ditto. 10485 * variables.cc (Fisrawcommand): Ditto. 10486 104872009-01-12 John W. Eaton <jwe@octave.org> 10488 10489 * octave.cc (maximum_braindamage): Set confirm_recursive_rmdir to 10490 false. 10491 10492 * strfns.cc (Fstrcmp, Fstrncmp): Simplify by initializing all 10493 elements of output to false with constructor argument. 10494 104952009-01-12 Thorsten Meyer <thorsten.meyier@gmx.de> 10496 10497 * strfns.cc (Fstrncmp): New test. 10498 104992009-01-12 John W. Eaton <jwe@octave.org> 10500 10501 * pt-stmt.h (tree_statement::is_null_statement): New function. 10502 * parse.y (set_stmt_print_flag): Return list. Remove trailing 10503 null statements from list. 10504 (list, simple_list): Simplify action. 10505 (make_statement, make_statement_list, append_statement_list): 10506 Always create statements and them to the list. 10507 10508 * base-list.h (octave_base_list::push_front, 10509 octave_base_list::push_back, octave_base_list::pop_front, 10510 octave_base_list::pop_back): New functions. 10511 10512 * DLD-FUNCTIONS/qr.cc (Fqrupdate, Fqrinsert, Fqrdelete, Fqrshift): 10513 Require args to be numeric, not necessarily matrix objects. 10514 105152009-01-12 Ben Abbott <bpabbott@mac.com> 10516 10517 * graphics.h.in (text::properties::fontunits): Fix typo in list of 10518 possible values. 10519 105202009-01-12 John W. Eaton <jwe@octave.org> 10521 10522 * strfns.cc (Fstrvcat, Fchar): Use queue to avoid duplicate calls 10523 to all_strings. 10524 105252009-01-12 Thorsten Meyer <thorsten.meyier@gmx.de> 10526 10527 * strfns.cc (Fstrvcap): New function. 10528 105292008-11-29 Thorsten Meyer <thorsten.meyier@gmx.de> 10530 10531 * strfns.cc (Fchar, Fischar, Fstrncmp, Flist_in_columns): 10532 Improve documentation strings. Add examples and tests. 10533 105342009-01-12 Jaroslav Hajek <highegg@gmail.com> 10535 10536 * ov-perm.cc (octave_perm_matrix::do_index_op): Return shallow copy 10537 when indexed by (:,:). 10538 * ov-base-mat.cc (octave_base_diag::do_index_op): Return shallow copy 10539 when indexed by (:,:). Optimize indexing equivalent to resizing. 10540 * data.cc: Fix tests. 10541 * mappers.cc: Fix tests. 10542 105432009-01-12 Jaroslav Hajek <highegg@gmail.com> 10544 10545 * ov-base-diag.h, ov-base-mat.h, ov-base-scalar.h, ov-base-sparse.h, 10546 ov-base.cc, ov-base.h, ov-perm.h, ov-range.h, ov.h: Add full_value 10547 methods to octave_value, octave_base_value and its relevant 10548 subclasses. 10549 * data.cc (Ffull): New DEFUN. 10550 * DLD-FUNCTIONS/sparse.cc (Ffull): move to data.cc. 105512009-01-11 Jaroslav Hajek <highegg@gmail.com> 10552 10553 * ov.h (octave_value::is_copy_of): New method. 10554 * ov-struct.cc (numeric_conv): Add output parameter orig. 10555 (octave_struct::subsasgn): Temporarily erase duplicate lhs value prior 10556 to assignment. 10557 105582009-01-11 Jaroslav Hajek <highegg@gmail.com> 10559 10560 * oct-obj.cc (octave_value_list::all_scalars): New method. 10561 * oct-obj.h: Declare it. 10562 * ov-cell.cc (octave_cell::subsasgn): Disable assigning 10563 to non-scalar {}-indexed cell, unless in a multi-assignment. 10564 105652009-01-10 Jaroslav Hajek <highegg@gmail.com> 10566 10567 * DLD-FUNCTIONS/sparse.cc (Ffull): Convert diagonal & permutation 10568 matrices, leave other classes untouched. 10569 105702009-01-09 Jaroslav Hajek <highegg@gmail.com> 10571 10572 * OPERATORS/op-cdm-cdm.cc: Install missing widening op. 10573 * OPERATORS/op-dm-dm.cc: Ditto. 10574 * OPERATORS/op-fcdm-fcdm.cc: Ditto. 10575 * OPERATORS/op-fdm-fdm.cc: Ditto. 10576 * OPERATORS/op-pm-pm.cc: Ditto. 10577 * OPERATORS/op-fpm-fpm.cc: Ditto. 10578 105792009-01-09 Jaroslav Hajek <highegg@gmail.com> 10580 10581 * ov-cell.cc (octave_cell::subsasgn): Put erased copy back after 10582 make_unique has been called. 10583 105842009-01-09 Kai Habel <kai.habel@gmx.de> 10585 10586 * graphics.cc: Calculate normals for surface boundaries, use 10587 more neighboring points to calculate interior normals 10588 105892009-01-09 John W. Eaton <jwe@octave.org> 10590 10591 * input.cc (get_user_input (void)): Don't increment input_line_number. 10592 * lex.l (xunput): New function. Use it in place of yyunput 10593 anywhere a newline character may be put back on the input stream. 10594 Increment input_line_number in all rules that consume newlines 10595 characters. 10596 (text_yyinput): Increment input_line_number 10597 (fixup_column_count): Increment input_line_number. 10598 (prep_for_function): Set input_line_number to 1, not 0. 10599 (reset_parser): Set input_line_number to current_command_number, 10600 not current_command_number-1. 10601 (flex_stream_reader::ungetc): Call xunput, not yyunput. 10602 * parse.y (input_line_number): Initialize to 1, not 0. 10603 (text_getc): Increment input_line_number correctly. 10604 (stdio_stream_reader::ungetc): Decrement input_line_number if 10605 putting back a newline character. 10606 (parse_fcn_file): Set input_line_number to 1, not 0. 10607 (eval_string): Unwind-protect input_line_number and 10608 current_input_column. 10609 10610 * parse.y (make_statement): New function. 10611 (statement): Use it. 10612 (make_statement_list, append_statement_list): New functions. 10613 (simple_list1, list1): Use them. 10614 106152009-01-08 Jaroslav Hajek <highegg@gmail.com> 10616 10617 * ov-cell.cc (octave_cell::subsasgn): Erase duplicate lhs value 10618 prior to assignment to avoid a redundant copy. 10619 106202008-12-26 Thorsten Meyer <thorsten.meyier@gmx.de> 10621 10622 * mappers.cc (Ftoascii), mappers.cc (Ftolower), mappers.cc 10623 (Ftoupper), DLD-FUNCTIONS/regexp.cc (Fregexp), 10624 DLD-FUNCTIONS/regexp.cc (Fregexpi), DLD-FUNCTIONS/regexp.cc 10625 (Fregexprep): Add references. 10626 106272008-12-27 Jaroslav Hajek <highegg@gmail.com> 10628 10629 * oct-obj.h, oct-obj.cc (octave_value_list::valid_scalar_indices): Remove. 10630 * ov-base-diag.cc, ov-base-diag.h, ov-base-scalar.cc, ov-base.h, 10631 ov-bool-mat.cc, ov-bool-mat.h, ov-bool-sparse.cc, ov-bool-sparse.h, 10632 ov-bool.cc, ov-bool.h, ov-ch-mat.cc, ov-ch-mat.h, ov-colon.h, 10633 ov-complex.cc, ov-complex.h, ov-cx-mat.cc, ov-cx-mat.h, 10634 ov-cx-sparse.cc, ov-cx-sparse.h, ov-float.cc, ov-float.h, 10635 ov-flt-complex.cc, ov-flt-complex.h, ov-flt-cx-mat.cc, 10636 ov-flt-cx-mat.h, ov-flt-re-mat.cc, ov-flt-re-mat.h, ov-intx.h, 10637 ov-perm.cc, ov-perm.h, ov-range.h, ov-re-mat.cc, ov-re-mat.h, 10638 ov-re-sparse.cc, ov-re-sparse.h, ov-scalar.cc, ov-scalar.h, 10639 ov-str-mat.cc, ov-str-mat.h, ov.h: 10640 Remove valid_as_scalar_index and valid_as_zero_index methods 10641 from octave_value, octave_base_value and all of its subclasses. 10642 106432008-12-26 Francesco Potortì <pot@gnu.org> 10644 10645 * data.cc (resize): Add cross reference to postpad. 10646 106472008-12-25 Jaroslav Hajek <highegg@gmail.com> 10648 10649 * load-save.h (load_save_format_type, load_save_format_options): New 10650 enums. 10651 (load_save_format): Convert to a class. 10652 * load-save.cc (do_save(..., const octave_value&,...)): Use fmt.type 10653 in switch. Use options of LS_MAT_ASCII. 10654 (do_load, write_header): Use format.type in switch. 10655 * ls-mat-ascii.h (save_mat_ascii_data): Add tabs option. 10656 * ls-mat-ascii.cc (save_mat_ascii_data): Implement it. 10657 106582008-12-24 Ben Abbott <bpabbott@mac.com> 10659 10660 * DLD-FUNCTIONS/chol.cc: Compare results to 0 in tests. 10661 Delete spurious function calls in test block. 10662 106632008-12-24 John W. Eaton <jwe@octave.org> 10664 10665 * DLD-FUNCTIONS/eigs.cc: Use "testif HAVE_ARPACK" to skip tests if 10666 ARPACK is not available. 10667 10668 * Makefile.in (DLD_XSRC): Add eigs.cc to the list. 10669 10670 * load-save.cc (parse_save_options): Handle -double. 10671 106722008-12-23 David Bateman <dbateman@free.fr> 10673 10674 * DLD-FUNCTIONS/eigs.cc: New file. 10675 * Makefile.in (DLD_XSRC): Add it here. 10676 106772008-12-22 David Bateman <dbateman@free.fr> 10678 10679 * DLD-FUNCTIONS/__voronoi__.cc (F__voronoi__): Resize AtInf array 10680 before returning it. 10681 106822008-12-12 David Bateman <dbateman@free.fr> 10683 10684 * DLD-FUNCTIONS/chol.cc (Fcholinv): Add test. 10685 106862008-12-12 Jaroslav Hajek <highegg@gmail.com> 10687 10688 * ls-hdf5.cc (add_hdf5_data): Check for diagonal & permutation 10689 matrices and convert them to full prior to saving. 10690 106912008-12-11 Jaroslav Hajek <highegg@gmail.com> 10692 10693 * ov-re-mat.cc (Fdouble): Handle diagonal & perm matrices. 10694 * ov-flt-re-mat.cc (Fsingle): Handle diagonal & perm matrices. 10695 106962008-12-11 Jaroslav Hajek <highegg@gmail.com> 10697 10698 * ov-base-diag.cc (octave_base_diag<DMT,MT>::subsasgn): New method. 10699 * ov-base-diag.h (octave_base_diag<DMT,MT>::subsasgn): Declare it. 10700 (octave_base_diag<DMT,MT>::chk_valid_scalar): New method decl. 10701 10702 * ov-re-diag.cc (octave_diag_matrix::chk_valid_scalar): New method 10703 override. 10704 * ov-re-diag.h: Declare it. 10705 * ov-flt-re-diag.cc (octave_float_diag_matrix::chk_valid_scalar): New 10706 method override. 10707 * ov-flt-re-diag.h: Declare it. 10708 * ov-cx-diag.cc (octave_complex_diag_matrix::chk_valid_scalar): New 10709 method override. 10710 * ov-cx-diag.h: Declare it. 10711 * ov-flt-cx-diag.cc (octave_float_complex_diag_matrix::chk_valid_scalar): 10712 New method override. 10713 * ov-flt-cx-diag.h: Declare it. 10714 107152008-12-10 Jaroslav Hajek <highegg@gmail.com> 10716 10717 * DLD-FUNCTIONS/expm.cc: Remove. 10718 * Makefile.in: Update. 10719 107202008-12-10 Jaroslav Hajek <highegg@gmail.com> 10721 10722 * ov-intx.h (OCTAVE_VALUE_INT_SCALAR_T::empty_clone): Construct an 10723 empty matrix instead of zero. 10724 107252008-12-07 Thorsten Meyer <thorsten.meyier@gmx.de> 10726 10727 * mappers.cc (Ftolower): Make lower alias of tolower, add tests 10728 * mappers.cc (Ftoupper): Make upper alias of toupper, add tests 10729 107302008-12-09 Jaroslav Hajek <highegg@gmail.com> 10731 10732 * DLD-FUNCTIONS/balance.cc (Fbalance): Exploit the new AEPBAL functionality. 10733 107342008-12-08 Jaroslav Hajek <highegg@gmail.com> 10735 10736 * xpow.cc ( xpow (const DiagMatrix& a, double b), 10737 xpow (const DiagMatrix& a, const Complex& b), 10738 xpow (const ComplexDiagMatrix& a, double b), 10739 xpow (const ComplexDiagMatrix& a, const Complex& b), 10740 xpow (const FloatDiagMatrix& a, float b), 10741 xpow (const FloatDiagMatrix& a, const FloatComplex& b), 10742 xpow (const FloatComplexDiagMatrix& a, float b), 10743 xpow (const FloatComplexDiagMatrix& a, const FloatComplex& b)): 10744 New methods. 10745 * xpow.h: Declare them. 10746 * OPERATORS/op-dms-template.cc: Support diagonal matrix ^ scalar. 10747 107482008-12-08 Jaroslav Hajek <highegg@gmail.com> 10749 10750 * ov-re-diag.cc (octave_diag_matrix::save_binary, 10751 octave_diag_matrix::load_binary): New methods. 10752 * ov-re-diag.h: Declare them. 10753 * ov-flt-re-diag.cc (octave_float_diag_matrix::save_binary, 10754 octave_float_diag_matrix::load_binary): New methods. 10755 * ov-flt-re-diag.h: Declare them. 10756 * ov-cx-diag.cc (octave_complex_diag_matrix::save_binary, 10757 octave_complex_diag_matrix::load_binary): New methods. 10758 * ov-cx-diag.h: Declare them. 10759 * ov-flt-cx-diag.cc (octave_float_complex_diag_matrix::save_binary, 10760 octave_float_complex_diag_matrix::load_binary): New methods. 10761 * ov-flt-cx-diag.h: Declare them. 10762 * ov-perm.cc (octave_perm_matrix::save_binary, 10763 octave_perm_matrix::load_binary): New methods. 10764 * ov-perm.h: Declare them. 10765 107662008-12-06 Jaroslav Hajek <highegg@gmail.com> 10767 10768 * ov-fcn-handle.cc (octave_fcn_handle::load_binary): Call istream::get 10769 rather than istream::read to supply null terminating character. 10770 107712008-10-29 Jaroslav Hajek <highegg@gmail.com> 10772 * file-io.cc, gl-render.cc, load-save.cc, ls-hdf5.cc, ls-mat4.cc, 10773 ls-mat5.cc, ls-oct-binary.cc, mex.cc, oct.h, ov-base-int.cc, 10774 ov-bool-mat.cc, ov-bool-sparse.cc, ov-cell.cc, ov-class.cc, 10775 ov-cx-mat.cc, ov-cx-sparse.cc, ov-fcn-handle.cc, ov-fcn-inline.cc, 10776 ov-flt-cx-mat.cc, ov-flt-re-mat.cc, ov-re-mat.cc, ov-re-sparse.cc, 10777 ov-str-mat.cc, ov-struct.cc, toplev.cc, 10778 DLD-FUNCTIONS/__lin_interpn__.cc, DLD-FUNCTIONS/amd.cc, 10779 DLD-FUNCTIONS/ccolamd.cc, DLD-FUNCTIONS/cellfun.cc, 10780 DLD-FUNCTIONS/colamd.cc, DLD-FUNCTIONS/gcd.cc, 10781 DLD-FUNCTIONS/matrix_type.cc, DLD-FUNCTIONS/regexp.cc, 10782 DLD-FUNCTIONS/symbfact.cc, DLD-FUNCTIONS/symrcm.cc: 10783 Include oct-locbuf.h. 10784 107852008-12-05 Jaroslav Hajek <highegg@gmail.com> 10786 10787 * ov-base-diag.cc (save_ascii, load_ascii): Save natively. 10788 * ov-base-diag.h (load_ascii): Declare. 10789 * ov-perm.cc (save_ascii, load_ascii): Save natively. 10790 * ov-perm.h (load_ascii): Declare. 10791 107922008-12-04 Thorsten Meyer <thorsten.meyier@gmx.de> 10793 10794 * strfns.cc (Fchar): Add test from str2mat.m 10795 107962008-12-04 Jaroslav Hajek <highegg@gmail.com> 10797 10798 * ov.h (octave_value::is_perm_matrix): New method. 10799 * ov-base.h (octave_base_value::is_perm_matrix): New method. 10800 * ov-perm.h (octave_perm_matrix::is_perm_matrix): New method. 10801 * DLD-FUNCTIONS/inv.cc (Finv): Handle permutation matrices specially, 10802 compute rcond for diagonal matrices. 10803 * DLD-FUNCTIONS/det.cc (Fdet): Handle permutation & diagonal matrices 10804 specially. 10805 108062008-12-03 Jaroslav Hajek <highegg@gmail.com> 10807 10808 * ov-perm.h: New source. 10809 * ov-perm.cc: New source. 10810 * ov-flt-perm.h: New source. 10811 * ov-flt-perm.cc: New source. 10812 * ov-base-diag.cc (octave_base_diag<DMT, MT>::do_index_op): 10813 If subscripting an identity matrix by permutation(s), return a 10814 permutation matrix object. 10815 * ov.cc (octave_value::octave_value (const PermMatrix&)): New 10816 constructor. 10817 * ov.cc (octave_value::octave_value (const PermMatrix&)): Declare it. 10818 * op-cm-pm.cc: New source. 10819 * op-fcm-fpm.cc: New source. 10820 * op-fm-fpm.cc: New source. 10821 * op-fpm-fcm.cc: New source. 10822 * op-fpm-fm.cc: New source. 10823 * op-fpm-fpm.cc: New source. 10824 * op-m-pm.cc: New source. 10825 * op-pm-cm.cc: New source. 10826 * op-pm-m.cc: New source. 10827 * op-pm-pm.cc: New source. 10828 * op-pm-template.cc: New source. 10829 * Makefile.in: Include new sources. 10830 * DLD-FUNCTIONS/qr.cc (Fqr): Reflect interface changes of QR classes. 10831 108322008-12-03 John W. Eaton <jwe@octave.org> 10833 10834 * debug.cc (bp_table::do_get_breakpoint_list): Style fixes. 10835 108362008-12-01 Jaroslav Hajek <highegg@gmail.com> 10837 10838 * ov-base.h (octave_base_value::is_diag_matrix): New virtual method. 10839 * ops.h (CONCAT2, CONCAT3): New macros. Use CONCAT macros instead of 10840 direct token pasting to avoid disabling argument prescan. 10841 * xdiv.cc, xdiv.h: Implement xdiv and xleftdiv overloads for diagonal 10842 and mixed dense-diagonal operands. 10843 10844 * ov-re-diag.h: New source. 10845 * ov-re-diag.cc: New source. 10846 * ov-flt-re-diag.h: New source. 10847 * ov-flt-re-diag.cc: New source. 10848 * ov-base-diag.h: New source. 10849 * ov-base-diag.cc: New source. 10850 * OPERATORS/op-m-dm.cc: New source. 10851 * OPERATORS/op-m-cdm.cc: New source. 10852 * OPERATORS/op-fm-fdm.cc: New source. 10853 * OPERATORS/op-fm-fcdm.cc: New source. 10854 * OPERATORS/op-fdm-fs.cc: New source. 10855 * OPERATORS/op-fdm-fm.cc: New source. 10856 * OPERATORS/op-fdm-fdm.cc: New source. 10857 * OPERATORS/op-fdm-fcs.cc: New source. 10858 * OPERATORS/op-fdm-fcm.cc: New source. 10859 * OPERATORS/op-fdm-fcdm.cc: New source. 10860 * OPERATORS/op-fcm-fdm.cc: New source. 10861 * OPERATORS/op-fcm-fcdm.cc: New source. 10862 * OPERATORS/op-fcdm-fs.cc: New source. 10863 * OPERATORS/op-fcdm-fm.cc: New source. 10864 * OPERATORS/op-fcdm-fdm.cc: New source. 10865 * OPERATORS/op-fcdm-fcs.cc: New source. 10866 * OPERATORS/op-fcdm-fcm.cc: New source. 10867 * OPERATORS/op-fcdm-fcdm.cc: New source. 10868 * OPERATORS/op-dms-template.cc: New source. 10869 * OPERATORS/op-dm-template.cc: New source. 10870 * OPERATORS/op-dm-s.cc: New source. 10871 * OPERATORS/op-dm-m.cc: New source. 10872 * OPERATORS/op-dm-dm.cc: New source. 10873 * OPERATORS/op-dm-cs.cc: New source. 10874 * OPERATORS/op-dm-cm.cc: New source. 10875 * OPERATORS/op-dm-cdm.cc: New source. 10876 * OPERATORS/op-cm-dm.cc: New source. 10877 * OPERATORS/op-cm-cdm.cc: New source. 10878 * OPERATORS/op-cdm-s.cc: New source. 10879 * OPERATORS/op-cdm-m.cc: New source. 10880 * OPERATORS/op-cdm-dm.cc: New source. 10881 * OPERATORS/op-cdm-cs.cc: New source. 10882 * OPERATORS/op-cdm-cm.cc: New source. 10883 * OPERATORS/op-cdm-cdm.cc: New source. 10884 * Makefile.in: Include them. 10885 10886 * ov-re-mat.cc (octave_matrix::diag): New method override. 10887 * ov-re-mat.h: Declare it. 10888 * ov-cx-mat.cc: Likewise with octave_complex_matrix. 10889 * ov-cx-mat.h: Likewise with octave_complex_matrix. 10890 * ov-flt-re-mat.cc: Likewise with octave_float_matrix. 10891 * ov-flt-re-mat.h: Likewise with octave_float_matrix. 10892 * ov-flt-cx-mat.cc: Likewise with octave_float_complex_matrix. 10893 * ov-flt-cx-mat.h: Likewise with octave_float_complex_matrix. 10894 * ov.cc (octave_value::octave_value (const DiagMatrix&)) 10895 (octave_value::octave_value (const FloatDiagMatrix&)) 10896 (octave_value::octave_value (const ComplexDiagMatrix&)) 10897 (octave_value::octave_value (const FloatComplexDiagMatrix&)): 10898 Construct a diagonal matrix object. 10899 * data.cc (Fdiag): Support explicit dimensions. Fix tests. 10900 (Feye): Return diagonal matrix objects if possible. Fix tests. 10901 * mappers.cc (Freal, Fimag): Fix tests. 10902 * DLD-FUNCTIONS/inv.cc (Finv): Handle diagonal matrix objects. 10903 * ov-range.h (octave_range::diag): Declare only. 10904 * ov-range.cc (octave_range::diag): Return DiagMatrix if possible. 10905 109062008-11-25 Jaroslav Hajek <highegg@gmail.com> 10907 * ov.cc (octave_value::is_equal): New member function. 10908 * ov.h: Declare it. 10909 * pt-select.cc (tree_switch_case::label_matches): Call 10910 octave_value::is_equal. 10911 109122008-12-04 Thomas Treichl <Thomas.Treichl@gmx.net> 10913 10914 * DLD-FUNCTIONS/cellfun.cc: Added more tests for cellfun. 10915 109162008-11-25 Jaroslav Hajek <highegg@gmail.com> 10917 10918 * ov-base.h (octave_base_value::type_conv_info): New class. 10919 * ov-base.h, ov-bool-mat.cc, ov-bool-mat.h, ov-bool-sparse.cc, 10920 ov-bool-sparse.h, ov-bool.cc, ov-bool.h, ov-complex.cc, ov-complex.h, 10921 ov-cx-mat.cc, ov-cx-mat.h, ov-null-mat.cc, ov-null-mat.h, 10922 ov-range.cc, ov-range.h, ov-re-mat.cc, ov-re-mat.h, ov-scalar.cc, 10923 ov-scalar.h, ov-str-mat.cc, ov-str-mat.h, ov.h: 10924 Return type_conv_info instead of type_conv_fcn from 10925 numeric_conversion_function and numeric_demotion_function 10926 methods. 10927 * ov-base.cc (octave_base_value::numeric_assign): Try biased conversion 10928 first if possible. 10929 * ov.cc (do_binary_op): Likewise. Also, search recursively. 10930 * ov.cc (do_cat_op): Likewise. 10931 109322008-11-24 David Bateman <dbateman@free.fr> 10933 10934 * graphics.cc (F__go_delete__): Check validity of handles before 10935 deleting them to avoid issues with callback function also deleting 10936 the handles. 10937 109382008-11-21 John Swensen <jpswensen@comcast.net> 10939 10940 * debug.cc (bp_table::do_get_breakpoint_list): Avoid modifying 10941 bp_map while iterating over it. 10942 109432008-11-21 Jarkko Kaleva <d3roga@gmail.com> 10944 10945 * DLD-FUNCTIONS/eig.cc (Feig): Handle generalized eigenvalues and 10946 eigenvectors. 10947 109482008-11-19 Jaroslav Hajek <highegg@gmail.com> 10949 10950 * DLD_FUNCTIONS/det.cc: Include only DET.h. Retrieve & matrix type & 10951 store it after calculation if possible. 10952 109532008-11-17 John W. Eaton <jwe@octave.org> 10954 10955 * load-path.cc (load_path::dir_info::update): Simplify previous 10956 change. 10957 10958 * load-path.h (load_path::dir_info::abs_dir_name): New data member. 10959 (load_path::dir_info::dir_info, load_path::dir_info::operator =): 10960 Copy abs_dir_name. 10961 (load_path::abs_dir_cache_type, load_path::dir_cache_iterator, 10962 load_path::const_dir_cache_iterator): New typedefs. 10963 (load_path::abs_dir_cache): New static data member. 10964 (load_path::dir_info:dir_info): New constructor. 10965 * load-path.cc (load_path::abs_dir_cache): Define new static data 10966 member. 10967 (load_path::dir_info::update): Look in abs_dir_cache for relative 10968 directory names. 10969 (load_path::dir_info::initialize): Update abs_dir_cache here. 10970 109712008-11-13 John W. Eaton <jwe@octave.org> 10972 10973 * ov-int8.h, ov-int16.h, ov-int32.h, ov-int64.h, ov-uint8.h, 10974 ov-uint16.h, ov-uint32.h, ov-uint64.h: Don't define 10975 OCTAVE_INT_NDARRAY_T. 10976 * ov-intx.h (class OCTAVE_VALUE_INT_MATRIX_T, 10977 class OCTAVE_VALUE_INT_SCALAR_T): Use intNDArray<OCTAVE_INT_T> 10978 instead of OCTAVE_INT_NDARRAY_T. 10979 (OCTAVE_VALUE_INT_MATRIX_T::increment, 10980 OCTAVE_VALUE_INT_MATRIX_T::decrement, 10981 OCTAVE_VALUE_INT_SCALAR_T::increment, 10982 OCTAVE_VALUE_INT_SCALAR_T::decrement): Convert 1 to OCTAVE_INT_T. 10983 109842008-11-15 Thorsten Meyer <thorsten.meyier@gmx.de> 10985 10986 * strfns.cc (Fchar): adapt to conserve empty strings, add tests 10987 109882008-11-12 Michael Goffioul <michael.goffioul@gmail.com> 10989 10990 * dirfcn.cc (Ffilesep): Make it return all file separators when 'all' 10991 is given as argument. 10992 10993 * DLD-FUNCTIONS/getrusage.cc: Undefine min/max. 10994 * TEMPLATE-INST/Array-os.cc: Declare Array<bool> as extern template. 10995 109962008-11-12 David Bateman <dbateman@free.fr> 10997 10998 * OPERATORS/op-cell.cc (op_catop_matrix_cell): Cast args in the correct 10999 order. 11000 * OPERATORS/op-struct.cc (op_catop_matrix_struct): Ditto. 11001 110022008-11-11 Jaroslav Hajek <highegg@gmail.com> 11003 11004 * pt-assign.cc: Fix handling of empty cs-lists in assignment LHS. 11005 110062008-11-11 John W. Eaton <jwe@octave.org> 11007 11008 * lex.l (<MATRIX_START>{S}+): Don't insert separator if next token 11009 is a separator. 11010 11011 * parse.y (F__parser_debug_flag__): New function. 11012 110132008-10-31 Jaroslav Hajek <highegg@gmail.com> 11014 11015 * xnorm.cc: New source. 11016 * xnorm.h: New header file. 11017 * Makefile.in: Include xnorm.cc in the build process. 11018 * data.cc (Fnorm): Call xnorm, xcolnorms, xrownorms or xfrobnorm 11019 to do the actual work. 11020 110212008-10-31 David Bateman <dbateman@free.fr> 11022 11023 * ov-base-scalar.h (octave_value octave_base_scalar::reshape 11024 (const dim_vector&) const): New method. 11025 110262008-10-30 John W. Eaton <jwe@octave.org> 11027 11028 * oct-map.cc (Octave_map::index): Copy key_list. 11029 110302008-10-31 David Bateman <dbateman@free.fr> 11031 11032 * graphics.h.in (void image::init (void)): Add a constraint for 11033 logical cdata. 11034 11035 * graphics.h.in (base_property::delete_listener): New method. 11036 (property::delete_listener): New method. 11037 (base_graphics_object::delete_listener): New method. 11038 (base_graphics_object::delete_property_listener): New method. 11039 (base_graphics_object::remove_all_listeners): New method. 11040 (graphics_object::delete_property_listener): New method. 11041 (axes::set_defaults): Call remove_all_listeners. 11042 * graphics.cc (void base_properties::delete_listener): New method 11043 (void base_graphics_object::remove_all_listeners (void)): New method 11044 (Fdellistener): New command to remove listener functions associated 11045 with a property. 11046 110472008-10-30 David Bateman <dbateman@free.fr> 11048 11049 * graphics.h.in (axes::properties): Add keyreverse property. 11050 * graphics.cc (axes::properties::set_defaults): Initialize 11051 keyreverse property. 11052 110532008-10-28 Jaroslav Hajek <highegg@gmail.com> 11054 11055 * Cell.h (Cell::assign (const Array<idx_vector>&, ...), 11056 Cell::delete_elements (const Array<idx_vector>&, ...)): 11057 New member functions. 11058 * Cell.cc (Cell::assign (const octave_value_list&, ...), 11059 Cell::delete_elements (const octave_value_list&, ...)): 11060 Call Array<T>::assign. 11061 * DLD-FUNCTIONS/dlmread.cc: Call Array<T>::resize_fill. 11062 * ov-base-mat.cc (octave_base_matrix::assign): Call Array<T>::assign. 11063 (octave_base_matrix::delete_elements):: Call Array<T>::delete_elements. 11064 * ov-cell.cc (Fcell): Call Array<T>::chop_trailing_singletons, 11065 simplify. 11066 * ov-cx-mat.cc (octave_complex_matrix::assign): Call Array<T>::assign. 11067 * ov-flt-cx-mat.cc (octave_float_complex_matrix::assign): Call 11068 Array<T>::assign. 11069 * ov-list.cc (octave_list::subsasgn): Call Array<T>::assign. 11070 * pr-output.cc (PRINT_ND_ARRAY): Use zero-based indices. 11071 110722008-10-29 Thorsten Meyer <thorsten.meyier@gmx.de> 11073 11074 * data.cc (Fcolumns): Remove "and" from @seealso string. 11075 * mappers.cc (Fgamma, Flgamma): Replace @seealso reference to 11076 deprecated gammai by gammainc. 11077 * DLD-FUNCTIONS/sqrtm.cc (Fsqrtm): Remove reference to Octave 11078 Forge function funm. 11079 * DLD-FUNCTIONS/qz.cc (Fqz): removed @seealso reference to Octave 11080 Forge function dare. 11081 * DLD-FUNCTIONS/rcond.cc (Frcond): removed @seealso reference to 11082 mldivide. 11083 * debug.cc (Fdbstop): Fix @seealso references and function name in 11084 docstring of dbnext. 11085 * DLD-FUNCTIONS/cellfun.cc (Fcellfun): Remove @seealso reference 11086 to isclass. 11087 * syscalls.cc (Fwaitpid): Replace WCONTINUED by WCONTINUE. 11088 * oct-hist.cc (Fhistory_size, Fsaving_history): Fix @seealso 11089 references to history_timestamp_format_string. 11090 * DLD-FUNCTIONS/luinc.cc (Fluinc): Remove reference to missing 11091 function cholinc. 11092 110932008-10-29 Jaroslav Hajek <highegg@gmail.com> 11094 11095 * DLD-FUNCTIONS/qr.cc (Fcholinsert, Fcholdelete, Fcholshift): Fix 11096 inline docs. 11097 110982008-10-28 John W. Eaton <jwe@octave.org> 11099 11100 * parse.y (finish_function): Clear local variables in function scope. 11101 * symtab.h (symbol_table::clear_variables): New argument, scope. 11102 111032008-10-28 Brian Gough <bjg@gnu.org> 11104 11105 * DLD-FUNCTIONS/besselj.cc: Added tests. 11106 111072008-10-23 John W. Eaton <jwe@octave.org> 11108 11109 * oct-hist.c (initialize_history): New arg, read_history_file) 11110 * oct-hist.h: Fix decl. 11111 * octave.cc (octave_main): Set read_history_file to false if 11112 --no-history option is specified. Pass read_history_file to 11113 initialize_history. 11114 11115 * DLD-FUNCTIONS/fltk_backend.cc: Update initialization comment. 11116 111172008-10-22 John W. Eaton <jwe@octave.org> 11118 11119 * DLD-FUNCTIONS/fltk_backend.cc (figure_manager::do_close_all): 11120 Rename from close_all. Now private. 11121 (figure_manager::do_new_window): Rename from new_window. 11122 Now private. 11123 (figure_manager::do_delete_window): Rename from delete_window. 11124 Now private. 11125 (figure_manager::do_mark_modified): Rename from mark_modified. 11126 Now private. 11127 (figure_manager::do_get_size): Rename from get_size. Now private. 11128 (figure_manager::close_all, figure_manager::do_new_window, 11129 figure_manager::do_delete_window, 11130 figure_manager::do_mark_modified, figure_manager::do_get_size): 11131 New static functions. 11132 (figure_manager::instance_ok): New function. 11133 (figure_manager::Instance): Delete. Eliminate all uses in favor 11134 of static methods that call instance_ok and forward to private 11135 member functions. 11136 (figure_manager::instance): New static data member. 11137 (figure_manager::hnd2idx, figure_manager::figprops2idx, 11138 figure_manager::figprops2idx, figure_manager::str2idx): Now static. 11139 11140 * DLD-FUNCTIONS/fltk_backend.cc (figure_manager::default_size): 11141 Increase default window size. 11142 11143 * graphics.cc (figure::properties::remove_child): New function. 11144 * graphics.h.in: Provide decl. 11145 11146 * gl-render.cc (opengl_renderer::draw): Get all children. 11147 11148 * DLD-FUNCTIONS/fltk_backend.cc (__fltk_redraw__): 11149 Check for "root" object, not "root_figure". 11150 11151 * graphics.h.in (base_properties::get_all_children): New function. 11152 111532008-10-22 David Bateman <dbateman@free.fr> 11154 11155 * graphics.h.in (line::properties, surface::properties): Add data 11156 source properties. 11157 111582008-10-21 John W. Eaton <jwe@octave.org> 11159 11160 * graphics.h.in (axes::properties::delete_children): Delete decl. 11161 11162 * graphics.h.in (gh_manager::is_handle_visible): New function. 11163 (axes::properites): Move title property after label properties. 11164 (graphics_object::is_handle_visible): New function. 11165 (base_properties::is_handle_visible): New function. 11166 (base_properties): Mark children property with G. 11167 * graphics.cc (axes::properties::set_text_child): New function. 11168 (axes::properties::set_title, axes::properties::set_xlabel, 11169 axes::properties::set_ylabel, axes::properties::set_zlabel): Use it. 11170 (base_property::get_children): New function. Only 11171 return handles that are visible. 11172 (axes::properties::delete_text_child): Set handlevisibility to 11173 "off" for newly created object and add it to the list of children. 11174 Call base_properties::remove_child on previous handle value. 11175 (axes::properties::set_defaults): Don't explicitly delete xlabel, 11176 ylabel, zlabel, and title handles. Reinitialize them after 11177 deleting children. 11178 (axes::properties::remove_child): Don't explicitly delete xlabel, 11179 ylabel, zlabel, and title handles. 11180 (axes::properties::init): Move here from graphics.h.in. Set 11181 handlevisibility to "off" for xlabel, ylabel, zlabel, and title 11182 and add them to the list of children. 11183 (axes::properties::delete_children): Delete. 11184 11185 * genprops.awk: Allow whitespace between BEGIN_PROPERTIES and 11186 opening paren. Accept optional second argument for graphics 11187 object name. 11188 * graphics.h.in (root_figure properties): Pass "root" as second 11189 arg to BEGIN_PROPERTIES. 11190 111912008-10-16 John W. Eaton <jwe@octave.org> 11192 11193 * graphics.cc (make_handle_fraction): New static function. 11194 (gh_manager::get_handle): Use it. 11195 (gh_manager::do_free): Call make_handle_fraction to replace 11196 fractional part of non-figure handles. 11197 11198 * graphics.cc (base_properties::remove_child): Handle children as 11199 a column vector instead of a row vector. 11200 11201 * utils.cc (Fis_absolute_filename, Fis_rooted_relative_filename, 11202 Fmake_absolute_filename, Ffind_dir_in_path): New functions. 11203 112042008-10-16 David Bateman <dbateman@free.fr> 11205 11206 * graphics.cc (void axes::properties::set_defaults 11207 (base_graphics_object&, const std::string&)): Preserve font 11208 and position properties if the axis is "replaced". 11209 112102008-10-16 John W. Eaton <jwe@octave.org> 11211 11212 * graphics.h.in (class axes::properties): New property: interpreter. 11213 112142008-10-15 David Bateman <dbateman@free.fr> 11215 11216 * ov-class.c (Fsuperiorto, Finferiorto): Allow more than one class 11217 to be defined at a time. 11218 112192008-10-12 David Bateman <dbateman@free.fr> 11220 11221 * pt-colon.cc (octave_value tree_colon_expression::make_range 11222 (const octave_value&, const octave_value&, const octave_value&)): 11223 Treating class overloading of colon operator. 11224 (octave_value tree_colon_expression::rvalue (void)): Ditto. 11225 112262008-10-10 John W. Eaton <jwe@octave.org> 11227 11228 * graphics.h.in (base_properties::adopt): Place new child at front 11229 of list, not end. Make list of children a column vector instead 11230 of a row vector. 11231 11232 * graphics.cc (gh_manager::do_free): Set the beingdeleted 11233 property, then delete the children, then execute the deletefcn. 11234 (axes::properties::set_defaults, axes::properties::remove_child, 11235 axes::properites::delete_children): Call delete_text_child to 11236 manage the title, xlabel, ylabel, and zlabel properties. 11237 (axes::properties::get_title, axes::properties::get_xlabel, 11238 axes::properties::get_ylabel, axes::properties::get_zlabel): Delete. 11239 11240 * graphics.h.in (axes::properites::title, 11241 axes::properites::xlabel, axes::properites::ylabel, 11242 axes::properites::zlabel): No longer mutable. Don't generate 11243 factory default values or custom get functions for these 11244 properties. 11245 11246 * graphics.cc (axes::properties::delete_text_child): New function. 11247 * graphics.h.in: Provide decl. 11248 11249 * graphics.h.in (graphics_object::type): New function. 11250 112512008-10-10 David Bateman <dbateman@free.fr> 11252 11253 * graphics.h.in (radio_property axes::properties::__colorbar__): 11254 Delete. 11255 * graphics.cc (void axes::properties::sync_positions (void)): 11256 Disable code synchronizing outerposiiton and position. 11257 (void axes::properties::set_defaults (base_graphics_object&, 11258 const std::string&): Remove __colorbar__. 11259 (F__go_delete__): Don't delete if already being deleting to avoid 11260 recursion in callback functions. 11261 (F__go_axes_init__): Flag error if handle is deleted during 11262 initialization due. 11263 112642008-10-09 David Bateman <dbateman@free.fr> 11265 11266 * ov-class.cc (Octave_map octave_class::map_value (void) const): 11267 Remove. 11268 (bool octave_class::save_ascii (std::ostream&), 11269 bool octave_class::load_ascii (std::istream&), 11270 bool octave_class::save_binary (std::ostream&, bool&), 11271 bool octave_class::save_binary (std::ostream&, bool&), 11272 bool octave_class::save_hdf5 (hid_t, const char *, bool), 11273 bool octave_class::load_hdf5 (hid_t, const char *, bool)): 11274 Allow saving and reloading of classes. 11275 * ov-class. (Octave_map octave_class::map_value (void) const): 11276 Remove. 11277 * ls-mat.cc (std::string read_mat5_binary_element (std::istream&, 11278 const std::string&, bool, bool&, octave_value&), 11279 int save_mat5_element_length (const octave_value&, const std::string&, 11280 bool, bool)): Allow saving and loading of classes. 11281 * ls-oct-ascii.h (template <class T> bool extract_keyword 11282 (std::istream&, const char *, T&, const bool)): Initialize value with 11283 null constructor rather than 0. 11284 112852008-10-07 David Bateman <dbateman@free.fr> 11286 11287 * graphics.cc (F__go_delete__): Allow arrays of graphic handles. 11288 112892008-10-01 Jaroslav Hajek <highegg@gmail.com> 11290 11291 * OPERATORS/op-i64-i64.cc: Instantiate all 64-bit operations. 11292 * OPERATORS/op-ui64-ui64.cc: Instantiate all unsigned 64-bit operations. 11293 112942008-10-06 John W. Eaton <jwe@octave.org> 11295 11296 * ov-type-conv.h (octave_type_conv_body): Avoid shadow warning 11297 from GCC. 11298 112992008-10-06 David Bateman <dbateman@free.fr> 11300 11301 * graphics.cc (static bool is_handle (const octave_value&)): Delete. 11302 (static octave_value is_handle (const octave_value&)): New function. 11303 113042008-10-03 Jaroslav Hajek <highegg@gmail.com> 11305 11306 * Cell.cc (Cell::delete_elements): Don't pass second arg to 11307 Array<T>::maybe_delete_elements. 11308 * ov-base-mat.cc (octave_base_matrix<MT>::delete_elements): Ditto. 11309 113102008-10-02 Jaroslav Hajek <highegg@gmail.com> 11311 11312 * Cell.h (Cell::delete_elements): Declare new member function. 11313 * Cell.h (Cell::delete_elements): Define it. 11314 * oct-map.cc (Octave_map::maybe_delete_elements): Call delete_elements 11315 instead of assign with empty Cell. 11316 113172008-10-02 John W. Eaton <jwe@octave.org> 11318 11319 * pt-arg-list.cc (tree_argument_list::convert_to_const_vector): 11320 Don't insert undefined elements in return list. 11321 113222008-09-30 Jaroslav Hajek <highegg@gmail.com> 11323 11324 * ov-str-mat.h (octave-char-matrix-str::assign): Remove declaration. 11325 * ov-str-mat.cc (octave-char-matrix-str::assign): Remove definition. 11326 113272008-09-30 John W. Eaton <jwe@octave.org> 11328 11329 * DLD-FUNCTIONS/__magick_read__.cc: Only define 11330 magick_to_octave_value if HAVE_MAGICK is defined. 11331 113322008-09-29 John W. Eaton <jwe@octave.org> 11333 11334 * symtab.cc (symbol_table::fcn_info::fcn_info_rep::load_class_method): 11335 Call load_class_constructor if name and dispatch_type are the same. 11336 113372008-09-29 David Bateman <dbateman@free.fr> 11338 11339 * symtab.cc (octave_value symbol_table::find_function 11340 (const std::string&, tree_argument_list *, const string_vector&, 11341 octave_value_list&, bool&)): If first character of function name 11342 is "@" then look for class specific method. 11343 113442008-09-26 John W. Eaton <jwe@octave.org> 11345 11346 * symtab.cc (out_of_date_check_internal): 11347 Fix order of arguments in call to load_path::find_method. 11348 113492008-09-26 David Bateman <dbateman@free.fr> 11350 11351 * ov-class.h (idx_vector index_vector (void) const): Declare new 11352 maethod. 11353 * ov-class.cc (idx_vector index_vector (void) const): Define new 11354 method. 11355 * (Fismethod): New function. 11356 113572008-09-26 John W. Eaton <jwe@octave.org> 11358 11359 * DLD-FUNCTIONS/urlwrite.cc (urlwrite_cleanup_file) New function. 11360 (urlwrite_delete_file, urlwrite_filename): New static variables. 11361 (Furlwrite): Only return filename if urlget succeeds. Use 11362 unwind_protect to delete files we create if download fails. 11363 113642008-09-26 Jaroslav Hajek <highegg@gmail.com> 11365 11366 * ov-null-mat.h: New header file. 11367 * ov-null-mat.cc: New source. 11368 * ov.h (octave_value::is_null_value, octave_value::non_null_value, 11369 octave_value::make_non_null_value): 11370 Declare new member functions. 11371 * ov.cc (octave_value:non_null_value, octave_value::make_non_null_value): 11372 Define them. 11373 (octave_value::assign (assign_op op, const octave_value& rhs)): 11374 (register_types): Register null types. 11375 Call non_null_value (). 11376 * oct-obj.cc (octave_value_list::normalize_null_values): New member 11377 function. 11378 * oct-obj.h (octave_value_list::normalize_null_values): Declare it. 11379 * ov-base.h (is_null_value): New virtual member function. 11380 * ops.h (NULLASSIGNOPDECL, DEFNULLASSIGNOP_FN): New macros. 11381 * ov-base-mat.cc (octave_base_mat<MT>::delete_elements): New member func. 11382 * ov-base-mat.h: Declare it. 11383 * ov-base-sparse.cc (octave_base_sparse<MT>::delete_elements): New member func. 11384 * ov-base-sparse.h: Declare it. 11385 * ov-cell.cc (octave_cell:subsasgn): Handle null values. 11386 * ov-struct.cc (octave_cell:subsasgn): Handle null values. 11387 * ov-builtin.cc (octave_builtin::do_multi_index_op): Normalize return 11388 values. 11389 * pt-misc.cc (tree_parameter_list::define_from_arg_vector): Call 11390 octave_lvalue::define instead of octave_lvalue::assign. 11391 * pt-decl.h (tree_decl_elt::rvalue): Call non_null_value (). 11392 * OPERATORS/op-int.h (OCTAVE_INT_NULL_ASSIGN_OPS, 11393 OCTAVE_INSTALL_INT_NULL_ASSIGN_OPS): New macros. 11394 * OPERATORS/op-m-m.cc: Install & define assignment & conversion operators. 11395 * OPERATORS/op-bm-bm.cc: Ditto. 11396 * OPERATORS/op-cell.cc: Ditto. 11397 * OPERATORS/op-cm-cm.cc: Ditto. 11398 * OPERATORS/op-cs-cs.cc: Ditto. 11399 * OPERATORS/op-fcm-fcm.cc: Ditto. 11400 * OPERATORS/op-fcs-fcs.cc: Ditto. 11401 * OPERATORS/op-fm-fm.cc: Ditto. 11402 * OPERATORS/op-fs-fs.cc: Ditto. 11403 * OPERATORS/op-int.h: Ditto. 11404 * OPERATORS/op-m-m.cc: Ditto. 11405 * OPERATORS/op-range.cc: Ditto. 11406 * OPERATORS/op-s-s.cc: Ditto. 11407 * OPERATORS/op-scm-scm.cc: Ditto. 11408 * OPERATORS/op-sm-sm.cc: Ditto. 11409 * OPERATORS/op-str-str.cc: Ditto. 11410 * OPERATORS/op-i16-i16.cc: Ditto. 11411 * OPERATORS/op-i32-i32.cc: Ditto. 11412 * OPERATORS/op-i64-i64.cc: Ditto. 11413 * OPERATORS/op-i8-i8.cc: Ditto. 11414 * OPERATORS/op-ui16-ui16.cc: Ditto. 11415 * OPERATORS/op-ui32-ui32.cc: Ditto. 11416 * OPERATORS/op-ui64-ui64.cc: Ditto. 11417 * OPERATORS/op-ui8-ui8.cc: Ditto. 11418 114192008-09-25 David Bateman <dbateman@free.fr> 11420 11421 * pt-mat.cc (class tm_row_const): Add any_class test 11422 (class tm_const): Ditto. 11423 (octave_value tree_matrix::rvalue (void)): If any object to 11424 concatenate is a class object, dispatch to the appropriate 11425 vertcat/horzcat function. 11426 114272008-09-25 John W. Eaton <jwe@octave.org> 11428 11429 * symtab.cc (symbol_table::do_find): Don't set evaluated_args and 11430 args_evaluated here, prior to call to symbol_table::fcn_info::find. 11431 114322008-09-24 Søren Hauberg <hauberg@gmail.com> 11433 11434 * DLD-FUNCTIONS/__magick_read__.cc (magick_to_octave_value): New 11435 template function with specializations for various 11436 GraphicsMagick++ types. 11437 (F__magick_finfo__): New function. 11438 114392008-09-24 John W. Eaton <jwe@octave.org> 11440 11441 * ov-usr-fcn.cc (octave_user_function::do_multi_index_op): 11442 Add symbol_table::clear_variables cleanup function to the 11443 unwind_protect stack after the parameter list cleanup functions. 11444 11445 * load-path.cc (load_path::do_initialize): Check for OCTAVE_PATH 11446 in the environment, not OCTAVE_LOADPATH. 11447 114482008-09-24 Thomas Weber <thomas.weber.mail@gmail.com> 11449 11450 * DLD-FUNCTIONS/regexp.cc (octregexp_list): Retry if match limit 11451 is exceeded. 11452 114532008-09-24 John W. Eaton <jwe@octave.org> 11454 11455 * genprops.awk (emit_declarations): Emit call to set_mode before 11456 updaters. 11457 114582008-09-23 John W. Eaton <jwe@octave.org> 11459 11460 * pt-arg-list.cc (F__end__): Dispatch to user-defined end 11461 function for classes if one is defined. 11462 * lex.l (is_keyword_token): Allow "end" as a functon name. 11463 114642008-09-23 David Bateman <dbateman@free.fr> 11465 11466 * variables.cc (static octave_value do_who (int, const string_vector&, 11467 bool, bool, std::string): Add final message argument and simple 11468 treatment of the "-file" option. 11469 114702008-09-22 David Bateman <dbateman@free.fr> 11471 11472 * debug.cc (static octave_user_code * get_user_code 11473 (const std::string&)): Only check user code as break points can't 11474 be set in builtins or oct-files. 11475 (bp_table::intmap bp_table::do_remove_all_breakpoints_in_file 11476 (const std::string&, bool)): Add flag to silence the error message 11477 from this function if a user code with breakpoints is not found. 11478 (bp_table::fname_line_map bp_table::do_get_breakpoint_list (const 11479 octave_value_list&)): Do an ourt of date check on the function 11480 before checking the breakpoints. 11481 * debug.h (do_remove_all_breakpoints_in_file, 11482 remove_all_breakpoints_in_file): Add flag to silence error 11483 message. 11484 * symtab.cc (out_of_date_check_internal): Clear breakpoints in 11485 function if out_of_date. split into two versions taking the 11486 octave_function pointer seperately or not. 11487 * symtab.h (bool out_of_date_check (octave_function*)): New function. 11488 114892008-09-18 David Bateman <dbateman@free.fr> 11490 11491 * DLD-FUNCTIONS/fftw.cc (Ffftw): Clarify the documentation. 11492 114932008-09-17 Krzesimir Nowak <qdlacz@gmail.com> 11494 11495 * debug.cc (Fisdebugmode): New function. 11496 114972008-09-17 David Bateman <dbateman@free.fr> 11498 11499 * data.cc (do_cat): Chopping trailing singleton dimensions. 11500 11501 * data.cc (SINGLE_TYPE_CONCAT, DO_SINGLE_TYPE_CONCAT): New macros 11502 (do_cat): Special case single type concatenations for speed. 11503 * pt.mat.cc (std::string get_concat_class (const std::string&, 11504 const std::string&), void maybe_warn_string_concat (bool, bool)): 11505 Remove static declaration. 11506 * pt-mat.h (std::string get_concat_class (const std::string&, 11507 const std::string&), void maybe_warn_string_concat (bool, bool)): 11508 Define extern here. 11509 11510 * DLD-FUNCTIONS/sparse.cc (Fsparse): Clarify the help string. 11511 115122008-09-10 John W. Eaton <jwe@octave.org> 11513 11514 * octave.cc (octave_main): Make all command-line arguments 11515 available to startup scripts and PKG_ADD files. 11516 115172008-09-09 David Bateman <dbateman@free.fr> 11518 11519 * DLD-FUNCTIONS/regexp.cc (octregexp_list): Distinguish between 11520 matlab named tokens and perl lookbehind expressions. For 11521 lookbehind expression replace "*" and "+" with a limited number of 11522 fixed length expressions to simulate arbitrary length look behind. 11523 115242008-09-08 Michael Goffioul <michael.goffioul@gmail.com> 11525 11526 * DLD-FUNCTIONS/__magick_read__.cc (encode_uint_image): Resolve "pow" 11527 ambiguity. 11528 11529 * graphics.cc (base_properties::get_dynamic, 11530 base_properties::set_dynamic, base_propertyes::get_property_dynamic): 11531 Add the 3rd template parameter to std::map, corresponding to all_props 11532 field. 11533 115342008-09-08 John W. Eaton <jwe@octave.org> 11535 11536 * ls-oct-ascii.cc (std::string extract_keyword (std::istream&, 11537 const char *, const bool)): Also accept \r as line ending character. 11538 * ls-oct-ascii.h (template <class T> bool extract_keyword 11539 (std::istream&, const char *, T&, const bool)): Likewise. 11540 (template <class T> bool extract_keyword (std::istream&, const 11541 string_vector&, std::string&, T&, const bool)): Likewise. 11542 115432008-09-03 Ben Abbott <bpabott@mac.com> 11544 11545 * mappers.cc: Use eps(single) as tolerance for single precesion test. 11546 115472008-09-03 John W. Eaton <jwe@octave.org> 11548 11549 * variables.cc (mlock): Lock current function on the call stack. 11550 (Fmlock): Lock caller. 11551 11552 * symtab.cc (out_of_date_check_internal): If dispatch type is set, 11553 check for method. If that fails, check for regular function. 11554 115552008-09-02 Michael Goffioul <michael.goffioul@gmail.com> 11556 11557 * graphics.cc (hggroup::update_axis_limits): Also reacts on 11558 [xyzac]liminclude changes. 11559 115602008-08-31 Michael Goffioul <michael.goffioul@gmail.com> 11561 11562 * DLD-FUNCTIONS/fltk_backend.cc (fltk_backend::redraw_figure, 11563 fltk_backend::print_figure): Change graphics_handle argument to 11564 graphics_object. 11565 115662008-08-29 David Bateman <dbateman@free.fr> 11567 11568 * graphics.cc: Replace int by octave_idx_type in multiple 11569 places. 11570 (array_property::is_equal): In macro CHECK_ARRAY_EQUAL, special 11571 case scalar case and keep copy of array value to avoid early 11572 destruction of converted array values. 11573 115742008-08-28 David Bateman <dbateman@free.fr> 11575 11576 * graphics.h.in (root_figure::properties::showhiddenhandles): 11577 New property. 11578 115792008-08-27 Jaroslav Hajek <highegg@gmail.com> 11580 11581 * DLD-FUNCTIONS/__glpk__.cc (F__glpk__): Initialize output vectors 11582 by NA value. 11583 115842008-08-26 Ben Abbott <bpabott@mac.com> 11585 11586 * mappers.cc: Adjust tolerance for single precesion tests. 11587 11588 * DLD-FUNCTIONS/chol.cc: Double tolerance. 11589 115902008-08-26 Jaroslav Hajek <highegg@gmail.com> 11591 11592 * parse.y (Fassignin): Use default scope when calling varref. 11593 115942008-08-26 Michael Goffioul <michael.goffioul@gmail.com> 11595 11596 * genprops.awk (emit_declarations): Call updaters/listeners only when 11597 'set' method returned true. 11598 * graphics.h.in (base_property::set, base_property::do_set): 11599 Return bool value. 11600 (property::set): Likewise. 11601 (string_property::do_set): Check value change and return bool value. 11602 (radio_property::do_set, double_property::do_set, 11603 array_property::do_set): Likewise. 11604 (color_property::do_set, double_radio_property::do_set, 11605 row_vector_property::do_set, bool_property::do_set, 11606 handle_property::do_set): Return bool value. 11607 (any_property::do_set, callback_property::do_set): Return always true. 11608 (color_values::operator==, color_values::operator!=): Add. 11609 (array_property::is_equal): Add. 11610 * graphics.cc (base_property::set): Executes listeners/notifiers only 11611 when do_set returns true. Return bool value. 11612 (color_property::do_set, double_radio_property::do_set): Check value 11613 change and return bool value. 11614 (array_property::is_equal): Add. 11615 11616 * genprops.awk (emit_declarations, emit_source): Change code emission 11617 when emitting base_properties code (base is 1). 11618 (BEGIN): Initialize pcount to 0. 11619 (BEGIN_PROPERTIES): Initialize base to 0. 11620 (BEGIN_BASE_PROPERTIES): New statement. 11621 (main): Add support for 'f' modifier. Add support for non xxx_property 11622 typed properties. 11623 * graphics.h.in (base_properties::base_properties): Remove 11624 implementation. 11625 (base_properties::get_tag, base_properties::get_parent, 11626 base_properties::get_type, base_properties::get___myhandle__, 11627 base_properties::get_busyaction, base_properties::get_buttondownfcn, 11628 base_properties::is_clipping, base_properties::get_clipping, 11629 base_properties::execute_createfcn, base_properties::get_createfcn, 11630 base_properties::execute_deletefcn, base_properties::get_deletefcn, 11631 base_properties::get_handlevisibility, base_properties::is_hittest, 11632 base_properties::get_hittest, base_properties::is_interruptible, 11633 base_properties::get_interruptible, base_properties::is_selected, 11634 base_properties::get_selected, base_properties::is_selectionhighlight, 11635 base_properties::get_selectionhighlight, 11636 base_properties::get_uicontextmenu, base_properties::get_userdata, 11637 base_properties::is_visible, base_properties::get_visible, 11638 base_properties::is_beingdeleted, base_properties::get_beingdeleted, 11639 base_properties::set_busyaction, base_properties::set_buttondownfcn, 11640 base_properties::set_clipping, base_properties::set_createfcn, 11641 base_properties::set_deletefcn, base_properties::set_handlevisibility, 11642 base_properties::set_hittest, base_properties::set_interruptible, 11643 base_properties::set_selected, 11644 base_properties::set_selectionhighlight, 11645 base_properties::set_uicontextmenu, base_properties::set_userdata, 11646 base_properties::set_visible, base_properties::set_beingdeleted, 11647 base_properties::get_children): Remove (now auto-generated). 11648 (base_properties::enum): Likewise. 11649 (base_properties::is_modified): Call is___modified__. 11650 (base_properties::set_modified): Call set___modified__. 11651 (base_properties::set_children): Add. 11652 (base_properties::set_dynamic, base_properties::get_dynamic, 11653 base_properties::get_property_dynamic): New methods. 11654 (class base_properties): Surround properties declaration with 11655 BEGIN_BASE_PROPERTIES/END_PROPERTIES pair. 11656 * graphics.cc (base_properties::get, base_properties::set, 11657 base_properties::get_property): Remove (now auto-generated). 11658 (base_properties::set_dynamic, base_properties::get_dynamic, 11659 base_properties::get_property_dynamic): New methods. 11660 (base_properties::set_children): Likewise. 11661 11662 * DLD_FUNCTIONS/fltk_backend.cc (F__fltk_redraw__): Make static. 11663 (F__init_fltk__): Protect from mutliple invocations. 11664 (F__remove_fltk__): Likewise. 11665 (F__init_fltk__): Register input event hook. 11666 (F__remove_fltk__): Unregister input event hook. 11667 11668 * DLD_FUNCTIONS/fltk_backend.cc (fltk_backend::close_figure): Remove. 11669 (fltk_backend::object_destroyed, fltk_backend::property_changed): New 11670 methods. 11671 * genprops.awk (emit_declarations): Generate "enum" property fields. 11672 (emit_sources): Emit set_id calls. 11673 * graphics.h.in (base_property::id): New field. 11674 (base_property::base_property): Initialize it. 11675 (base_property::get_id, base_property::set_id): Add accessors. 11676 (property::get_id, property::set_id): Likewise. 11677 (base_graphics_backend::close_figure, graphics_backend::close_figure): 11678 Remove methods. 11679 (base_graphics_backend::redraw_figure, 11680 base_graphics_backend::print_figure, graphics_backend::redraw_figure, 11681 graphics_backend::print_figure): Change graphics_handle argument into 11682 graphics_object. 11683 (base_graphics_backend::property_changed, 11684 base_graphics_backend::object_created, 11685 base_graphics_backend::object_destroyed, 11686 graphics_backend::property_changed, graphics_backend::object_created, 11687 graphics_backend::object_destroyed): New signature with 11688 graphics_object argument. 11689 (base_properties::base_properties): Add set_id calls. 11690 (class base_properties): Add "enum" property fields. 11691 (root_figure::properties::remove_child): Add overloaded method. 11692 (figure::properties::close): Remove. 11693 (figure::properties::set_backend): Call object_destroyed instead of 11694 close. 11695 (figure::~figure): Remove close call. 11696 (figure::properties::get_title): New method. 11697 * graphics.cc (base_property::set): Call property_changed only for 11698 valid id (>=0); Use graphics_object argument. 11699 (gh_manager::do_free): Call object_destroyed with graphics_object 11700 argument. 11701 (base_graphics_backend::property_changed, 11702 base_graphics_backend::object_created, 11703 base_graphics_object::object_destroyed): Implement wrappers for 11704 graphics_handle argument case. 11705 (gnuplot_backend::close_figure): Remove. 11706 (gnuplot_backend::object_destroyed, 11707 gnuplot_backend::property_changed): New methods. 11708 (gnuplot_backend::redraw_figure, gnuplot_backend::print_figure): 11709 Change graphics_handle argument to graphics_object. 11710 (root_figure::properties::remove_child): Add. 11711 (figure::properties::close): Remove. 11712 (figure::properties::set_position): Do not call set_figure_position. 11713 (figure::properties::get_title): New method. 11714 (gh_manager::do_make_graphics_handle): Call object_created with 11715 a graphics_object argument. 11716 (gh_manager::do_make_figure_handle): Likewise. 11717 (Fdrawnow): Call redraw_figure and print_figure with a graphics_object 11718 argument. 11719 117202008-08-26 Maciek Gajewski <maciej.gajewski0@gmail.com> 11721 11722 * graphics.h.in (base_property::set): Remove inline implementation. 11723 (base_graphics_backend::property_changed, 11724 base_graphics_backend::object_created, 11725 base_graphics_backend::object_destroyed): New method. 11726 (graphics_backend::property_changed, graphics_backend::object_created, 11727 graphics_backend::object_destroyed): Likewise. 11728 * graphics.cc (base_property::set): Moved from header file. 11729 (gh_manager::do_free): Add backend notification. 11730 (gh_manager::do_make_graphics_handle): Likewise. 11731 (gh_manager::do_make_figure_handle): Likewise. 11732 117332008-08-25 Thomas L. Scofield <scofield@calvin.edu> 11734 11735 * DLD-FUNCTIONS/__magick_read__.cc: Untabify. 11736 (jpg_settings, encode_bool_image, encode_uint_image, encode_map): 11737 New functions. 11738 (write_image): Use them to handle various image types. 11739 117402008-08-25 David Bateman <dbateman@free.fr> 11741 11742 * graphics.cc (void gh_manager::do_execute_callback 11743 (const graphics_handle&, const octave_value&, const 11744 octave_value&)): Don't pass the function handle as first arg of 11745 property listener functions 11746 11747 * graphics.h.in (class base_properties): Add functor for caseless 11748 string comparison. Use it in the property map, so that user added 11749 properties are found in a case insensitive fashion. 11750 117512008-08-22 John W. Eaton <jwe@octave.org> 11752 11753 * symtab.h (symbol_table::inherit): Pass reference to symbol table 11754 to do_inherit instead of scope. 11755 (symbol_table::do_inherit): First arg is now reference to 11756 symbol_table, not scope id. Insert all variables from donor scope. 11757 117582008-08-21 Thomas Treichl <Thomas.Treichl@gmx.net> 11759 11760 * mappers.cc: Increase test script tolerance. 11761 117622008-08-20 John W. Eaton <jwe@octave.org> 11763 11764 * help.cc (builtin_help): Go to next symbol name on error. 11765 (do_type, do_which): Omit separate path search for files. 11766 (help_from_symbol_table): Only insert Texinfo markup if it looks 11767 like the help message is already in Texinfo. 11768 117692008-08-19 David Bateman <dbateman@free.fr> 11770 11771 * load-path.cc (load-path::do_find_dir (const std:string&) const)): 11772 Method to find a directory on the load-path corresponding to the 11773 argument. 11774 * load-path.h (load-path::do_find_dir (const std:string&) const), 11775 load-path::find_dir (const std::string&) const): New methods. 11776 * utils.cc (std::string contents_file_in_path (const std::string&)): 11777 New function. 11778 * utils.h (std::string contents_file_in_path (const std::string&)): 11779 Declare it. 11780 * help.cc (static bool raw_help_from_file (const std::string&, 11781 std::string&, std::string&, bool&)): Also check is requested 11782 argument is a directory and contains the file Contents.m. 11783 11784 * OPERATORS/op-int-conv.cc (DEFINTCONVFN): New macro that warn 11785 for integer conversion issues. Use it to replace DEFCONVFN. 11786 * OPERATORS/op-int.h (DEFINTBINOP_OP, DEFINTNDBINOP_OP, 11787 DEFINTBINOP_FN, DEFINTNDBINOP_FN): New macros that warn for 11788 integer truncation issues. Use them to replace the corresponding 11789 macros in the integer arithmetic macros. Update other integer 11790 arithmetic functions that don't use these macros individually. 11791 * error.cc (initialize_default_warning_state (void)): Initialize 11792 the default warning state for the integer warnings to be off. 11793 * gripes.cc (void gripe_binop_integer_math_truncated (const char *, 11794 const char *, const char *), void gripe_unop_integer_math_truncated 11795 (const char *, const char *), void gripe_non_integer_conversion 11796 (const char *, const char *), void gripe_nan_conversion (const char *, 11797 const char *)): Warning functions for integer conversion and math 11798 issues. 11799 * gripes.h (void gripe_binop_integer_math_truncated (const char *, 11800 const char *, const char *), void gripe_unop_integer_math_truncated 11801 (const char *, const char *), void gripe_non_integer_conversion 11802 (const char *, const char *), void gripe_nan_conversion (const char *, 11803 const char *)): Declare them. 11804 * ov-intx.h (OCTAVE_VALUE_INT_MATRIX_T::convert_gripe, 11805 OCTAVE_VALUE_INT_SCALAR_T::convert_gripe): Adapt for new means of 11806 flagging integer truncation. 11807 (OCTAVE_VALUE_INT_MATRIX_T::decrement, 11808 OCTAVE_VALUE_INT_MATRIX_T::increment, 11809 OCTAVE_VALUE_INT_SCALAR_T::decrement, 11810 OCTAVE_VALUE_INT_SCALAR_T::increment): Check for integer 11811 truncation. 11812 * ov.cc (convert_to_int_array): Adapt for new means of 11813 flagging integer truncation. 11814 118152008-08-19 Jaroslav Hajek <highegg@gmail.com> 11816 11817 * pt-assign.h (tree_simple_assignment::first_execution): New 11818 member field. 11819 (tree_simple_assignment::first_execution): Ditto. 11820 * pt-assign.cc (tree_simple_assignment::tree_simple_assignment): 11821 Initialize first_execution. 11822 (tree_multi_assignment::tree_multi_assignment): Ditto. 11823 (tree_simple_assignment::rvalue): Check for obsolete built-in 11824 variables only at first execution. 11825 (tree_multi_assignment::rvalue): Ditto. 11826 11827 * DLD-FUNCTIONS/__glpk__.cc (F__glpk__): Checks whether LB and UB are 11828 of proper size. 11829 11830 * oct-obj.cc, oct-obj.h (octave_value_list::make_argv): 11831 Allow calling without fcn_name. 11832 * load-save.cc (parse_save_options (const string_vector&, ...)): 11833 Return string_vector with parsed arguments removed instead. 11834 (parse_save_options (const std::string&, ...)): Ditto. 11835 (Fsave): Fix calls to parse_save_options. 11836 118372008-08-19 John W. Eaton <jwe@octave.org> 11838 11839 * parse.y (Feval): Return value produced by evaluating CATCH string. 11840 118412008-08-12 John W. Eaton <jwe@octave.org> 11842 11843 * pt-fcn-handle.cc (tree_anon_fcn_handle::rvalue): 11844 Call stash_parent_function_scope for user function. 11845 * ov-fcn-inline.cc (octave_fcn_inline::octave_fcn_inline): 11846 Likewise. 11847 11848 * ov-struct.cc (octave_struct::subsref): Don't allow resizing for 11849 simple x(idx) case. 11850 118512008-08-07 John W. Eaton <jwe@octave.org> 11852 11853 * ov.cc (octave_value::idx_type_value): Don't include default 11854 argument values in definition. 11855 11856 * glrender.h, zfstream.h: Don't include config.h. 11857 11858 * oct-errno.h: Include <cerrno>. 11859 11860 * Cell.cc, DLD-FUNCTIONS/regexp.cc, DLD-FUNCTIONS/dlmread.cc, 11861 debug.cc, error.cc, file-io.cc, graphics.cc, help.cc, input.cc, 11862 lex.l, load-path.cc, load-save.cc, ls-mat-ascii.cc, 11863 ls-oct-ascii.cc, oct-stream.cc, octave.cc, variables.cc, 11864 ov-fcn-handle.cc, parse.y, pr-output.cc, symtab.cc, sysdep.cc, 11865 utils.cc, graphics.h.in: Replace all uses of NPOS with 11866 std::string::npos. 11867 11868 * ov.cc (octave_value::idx_type_value): Move definition here. 11869 * ov.h: From here. 11870 11871 * DLD-FUNCTIONS/fsolve.cc (override_options): Don't fail if 11872 options_map does not contain an expected keyword. 11873 Fix typo in warning identifier. 11874 (make_unimplemented_options): Use CamelCase names here. 11875 118762008-08-06 Søren Hauberg <hauberg@gmail.com> 11877 11878 * error.cc (Ferror): Update format of error messages in exmple. 11879 * parse.y: (Feval): Likewise. 11880 118812008-08-06 John W. Eaton <jwe@octave.org> 11882 11883 * DLD-FUNCTIONS/fsolve.cc (hybrd_info_to_fsolve_info): 11884 Update INFO values to be compatible with Matlab's current fsolve. 11885 (make_unimplemented_options, override_options): New functions. 11886 (Ffsolve): Handle optimset options. Update doc string. 11887 11888 * ov-usr-fcn.cc (octave_user_function::do_multi_index_op, 11889 octave_user_script::do_multi_index_op): 11890 Call octave_call_stack::backtrace_error_message. 11891 * toplev.h (octave_call_stack::do_pop): Don't call 11892 backtrace_error_message here. 11893 * toplev.cc, toplev.h (octave_call_stack::do_backtrace_error_message): 11894 Rename from octave_call_stack::backtrace_error_message. 11895 * toplev.h (octave_call_stack::backtrace_error_message): 11896 New public static function. 11897 118982008-08-05 John W. Eaton <jwe@octave.org> 11899 11900 * gripes.cc (gripe_truncated_conversion, 11901 gripe_logical_conversion): Don't declare as extern here. 11902 * utils.cc (octave_format, octave_vformat): Likewise. 11903 * pr-output.cc (octave_print_internal (std::ostream&, const Cell&, 11904 bool, int, bool)): Likewise. 11905 11906 * toplev.cc (octave_call_stack::backtrace_error_message): New 11907 function. 11908 * toplev.h: Provide decl. 11909 (octave_call_stack::do_pop): Call backtrace_error_message if 11910 error_state is nonzero. 11911 11912 * pt-unop.cc (tree_prefix_expression::eval_error, 11913 tree_postfix_expression::eval_error): Delete. Eliminate all uses. 11914 * pt-unop.h: Delete decls. 11915 11916 * pt-select.cc (tree_switch_case::eval_error, 11917 tree_switch_command::eval_error): Delete. Eliminate all uses. 11918 (tree_if_command::eval): Omit "evaluating if command" message. 11919 * pt-select.h: Delete decls. 11920 11921 * pt-loop.cc (tree_while_command::eval_error, 11922 tree_complex_for_command::eval_error, 11923 tree_simple_for_command::eval_error, 11924 tree_do_until_command::eval_error): Delete. Eliminate all uses. 11925 * pt-loop.h: Delete decls. 11926 11927 * pt-exp.cc (tree_expression::is_logically_true): Omit "evaluating 11928 conditional expression" error message. 11929 11930 * pt-decl.cc (tree_global_command::eval): Omit "evaluating global 11931 command" error message. 11932 (tree_static_command::eval): Omit "evaluating static command" 11933 error message. 11934 11935 * pt-colon.cc (tree_colon_expression::eval_error): Omit 11936 "evaluating colon expression" error message. 11937 * pt-colon.h (tree_colon_expression::eval_error): Eliminate 11938 default argument value. 11939 11940 * pt-idx.cc (tree_index_expression::eval_error): Delete. 11941 Eliminate all uses. 11942 * pt-idx.h: Delete decl. 11943 11944 * pt-binop.cc (tree_binary_expression::eval_error): Delete. 11945 * pt-binop.cc, pt-cbinop.cc: Eliminate all uses of eval_error. 11946 * pt-binop.h: Delete decl. 11947 11948 * pt-assign.cc (tree_simple_assignment::eval_error, 11949 tree_multi_assignment::eval_error): Delete. Eliminate all uses. 11950 * pt-assign.h: Delete decls. 11951 11952 * ov-usr-fcn.cc (octave_user_script::traceback_error, 11953 octave_user_function::traceback_error): Delete. Eliminate all uses. 11954 * ov-usr-fcn.h: Delete decls. 11955 11956 * ov-builtin.cc (octave_builtin::do_multi_index_op): Call 11957 gripe_library_exectuion_error on octave_execution_exception. 11958 * ov-mex-fcn.cc (octave_mex_function::do_multi_index_op): Likewise. 11959 * ov.cc (do_binary_op, do_cat_op, do_unary_op, 11960 do_non_const_unary_op): Likewise. 11961 * pt-stmt.cc (tree_statement::eval): Likewise. 11962 11963 * gripes.cc (gripe_library_execution_error): New function. 11964 * gripes.h: Provide decl. 11965 11966 * dirfns.cc (Fpathsep): Fix usage of dir_path::path_sep_str. 11967 * defaults.cc (set_exec_path, set_image_path): Likewise. 11968 * load-path.h (load_path::set_command_line_path): Likewise. 11969 * load-path.cc (maybe_add_path_elts, load_path::do_initialize, 11970 load_path::do_path, genpath, Fpath): Likewise. 11971 (split_path): Fix usage of dir_path::path_sep_char. 11972 119732008-08-04 John W. Eaton <jwe@octave.org> 11974 11975 * symtab.cc (symbol_table::fcn_info::fcn_info_rep::find_autoload): 11976 Fix usage of file_ops::dir_sep_chars. 11977 * variables.cc (looks_like_struct): 11978 Likewise. 11979 * ov-fcn-handle.cc (octave_fcn_handle::set_fcn): Likewise. 11980 * octave.cc (execute_command_line_file): Likewise. 11981 * ls-mat5.cc (read_mat5_binary_element): Likewise. 11982 * load-save.cc (find_file_to_load): Likewise. 11983 * load-path.cc (load_path::do_find_file): Likewise. 11984 * graphics.cc (drawnow): Likewise. 11985 * parse.y (frob_function): Likewise. 11986 11987 * octave.cc (initialize_pathsearch): Fix usage of 11988 file_ops::dir_sep_str. 11989 * help.cc (Flookfor): Likewise. 11990 * dirfns.cc (Ffilesep): Likewise. 11991 (Fautoload): Likewise. 11992 11993 * defaults.cc (subst_octave_home): Fix usage of 11994 file_ops::dir_sep_char. 11995 (Fmfilename): Likewise. 11996 119972008-07-31 John W. Eaton <jwe@octave.org> 11998 11999 * parse.y (assign_lhs): Call force_local_variable on all elements 12000 of lexer_flags.pending_local_variables here, then clear the set. 12001 (matrix): Clear lexer_flags.pending_local_variable here. 12002 * lex.l (lexical_feedback::init): Clear it. 12003 (force_local_variable): No longer static. 12004 (is_variable): Also return true for names in the 12005 lexer_flags.pending_local_variables. 12006 (handle_identifier): If we are parsing a matrix list, mark 12007 identifiers as pending local variables rather than forcing them to 12008 be local variables immediately. 12009 * lex.h (lexical_feedback::pending_local_variables): New data member. 12010 (force_local_variable): Provide decl. 12011 120122008-07-30 John W. Eaton <jwe@octave.org> 12013 12014 * ov-intx.h, ov.cc: Style fixes. 12015 12016 * gripes.cc (gripe_truncated_conversion): Use the warning ID 12017 Octave:int-convert-overflow. 12018 120192008-07-30 Jaroslav Hajek <highegg@gmail.com> 12020 12021 * gripes.cc (gripe_truncated_conversion): New function. 12022 * gripes.h (gripe_truncated_conversion): Declare it. 12023 * ops.h (DEFCONVFNX2): New macro. 12024 (DEFCONVFN, DEFCONVFN2): Call DEFCONVFNX2 instead of DEFCONVFNX. 12025 * ov-intx.h (OCTAVE_VALUE_INT_MATRIX_T::convert_gripe): New member 12026 function. 12027 (OCTAVE_VALUE_INT_MATRIX_T::int*_array_value): Call convert_gripe. 12028 (OCTAVE_VALUE_INT_SCALAR_T::convert_gripe): New member function. 12029 (OCTAVE_VALUE_INT_SCALAR_T::int*_scalar_value): Call convert_gripe. 12030 (OCTAVE_VALUE_INT_SCALAR_T::int*_array_value): Call int*_scalar_value. 12031 * ov.cc (convert_to_int_array): New function. 12032 (int_vector_value): Call convert_to_int_array. 12033 120342008-07-30 John W. Eaton <jwe@octave.org> 12035 12036 * defun-dld.h (DEFUNX_DLD): Eliminate fsname arg. 12037 * defun-int.h (DEFINE_FUN_INSTALLER_FUN2, 12038 DEFINE_FUN_INSTALLER_FUN3, DEFINE_FUNX_INSTALLER_FUN2): Delete. 12039 (DEFINE_FUNX_INSTALLER_FUN): Rename from DEFINE_FUNX_INSTALLER_FUN3. 12040 Don't emit fsname function. Don't append cxx_abi to gname. 12041 (DEFINE_FUN_INSTALLER_FUN): Define in terms of 12042 DEFINE_FUNX_INSTALLER_FUN, not DEFINE_FUN_INSTALLER_FUN2. 12043 * dynamic-ld.cc (octave_dynamic_loader::name_mangler, 12044 octave_dynamic_loader::name_uscore_mangler): New functions. 12045 (octave_dynamic_loader::mangle_name, 12046 octave_dynamic_loader::xmangle_name): Delete. 12047 (octave_dynamic_loader::do_load_oct): Search for function with 12048 name_mangler then name_uscore_mangler. 12049 12050 * oct-stream.cc (do_read): New arg, do_NA_conv. 12051 Perform NA translation if do_NA_conv is true. 12052 (DO_READ_VAL_TEMPLATE, read_fptr): Include the new arg for do_read 12053 in decl. 12054 (octave_stream::read): Pass do_NA_conv to do_read. 12055 120562008-07-29 David Bateman <dbateman@free.fr> 12057 12058 * data.cc (FNA): Add tests for conversion of single to double NA 12059 values. 12060 12061 * ov-flt-re-mat.cc (Fsingle): Documentation fix. 12062 120632008-07-28 David Bateman <dbateman@free.fr> 12064 12065 * error.cc (last_error_id, last_error_message, last_warning_id, 12066 last_warning_message): New functions to return the error/warning 12067 message and id without exposing the internal values. 12068 * error.h (last_error_id, last_error_message, last_warning_id, 12069 last_warning_message): Declare them. 12070 * DLD-FUNCTIONS/cellfun.cc (Fcellfun): Use them to pass the error 12071 to the ErrorHandler function. 12072 120732008-07-28 John W. Eaton <jwe@octave.org> 12074 12075 * error.cc (Flasterror, Flasterr): Unwind-protect error_state. 12076 12077 * DLD-FUNCTIONS/__magick_read__.cc (F__magick_write__, write_image): 12078 New functions. 12079 120802008-07-25 John W. Eaton <jwe@octave.org> 12081 12082 * DLD-FUNCTIONS/det.cc (Fdet): Return calculated determinant for 12083 numerically singular matrices, not 0. 12084 12085 * symtab.cc (get_dispatch_type): New function. 12086 (symbol_table::fcn_info::fcn_info_rep::find): Use it. 12087 12088 * ov-class.cc (set_class_relationship): Delete static function. 12089 (Fsuperiorto, Finferiorto): Warn about precedence conflicts. 12090 Call symbol_table::set_class_relationship instead of local static 12091 function. 12092 * symtab.h (symbol_table::class_precedence_table): New data member. 12093 (symbol_table::set_class_relationship, symbol_table::is_superiorto): 12094 New static functions. 12095 120962008-07-24 John W. Eaton <jwe@octave.org> 12097 12098 * load-path.h (load_path::dir_info::class_info): New struct. 12099 (load_path::dir_info::method_file_map_type): Now a map from 12100 class name to a to a class_info object. Change all uses. 12101 * load-path.cc (load_path::dir_info::get_method_file_map): 12102 Also look for private functions in the class directory. 12103 (load_path::add_to_method_map): Also add private functions from 12104 class directories to private_fcn_map. 12105 12106 * dirfns.cc (Fmkdir): If directory already exists, return status = 12107 true, but also set error message. 12108 121092008-07-23 John W. Eaton <jwe@octave.org> 12110 12111 * ov-usr_fcn.cc (octave_user_function::do_multi_index_op): 12112 Don't unwind_protect and set curr_parent_function here. 12113 * toplev.cc (curr_parent_function): Delete definition. 12114 * toplev.h: (curr_parent_function): Delete declaration. 12115 12116 * ov-usr-fcn.h (octave_user_function::parent_scope): New data member. 12117 (octave_user_function::parent_fcn_scope, 12118 octave_user_function::stash_parent_fcn_scope): New functions. 12119 * ov-usr_fcn.cc (octave_user_function::octave_user_function): 12120 Initialize parent_scope. 12121 * symtab.cc (symbol_table::fcn_info::fcn_info_rep::find): 12122 Check parent of current function by looking at call stack, not 12123 global curr_parent_function variable. 12124 * parse.y (frob_function): If parsing nested function, stash 12125 current parent function scope. 12126 * ov-fcn.h (octave_function::parent_fcn_scope): New virtual function. 12127 121282008-07-22 Michael Goffioul <michael.goffioul@gmail.com> 12129 12130 * graphics.cc (F__go_execute_callback__): New function. 12131 12132 * DLD-FUNCTIONS/fltk_backend.cc: Undefine min/max after FLTK headers 12133 inclusion. 12134 12135 * graphics.h.in (class base_graphics_event, class graphics_event): New 12136 classes (replace gh_manager::event_data). 12137 (class gh_manager::event_data): Remove. 12138 (gh_manager::post_function, gh_manager::do_post_function): Use 12139 graphics_event::event_fcn type. 12140 (gh_manager::event_queue, gh_manager::do_post_event): Use 12141 graphics_event type. 12142 * graphics.cc (class callback_event, class function_event, class 12143 set_event): Renamed from xxx_data classes. 12144 (graphics_event::create_callback_event, 12145 graphics_event::create_function_event, 12146 graphics_event::create_set_event): Renamed from gh_manager::xxx 12147 equivalent methods, removed reference count increment. 12148 (gh_manager::do_post_event): Likewise. 12149 (gh_manager::do_post_event): Use graphics_event type. 12150 (gh_manager::do_post_function): Use graphics_event::event_fcn type. 12151 121522008-07-22 John W. Eaton <jwe@octave.org> 12153 12154 * version.h (OCTAVE_VERSION): Now 3.1.51+. 12155 121562008-07-21 John W. Eaton <jwe@octave.org> 12157 12158 * version.h (OCTAVE_VERSION): Now 3.1.51. 12159 (OCTAVE_RELEASE_DATE): Now 2008-07-21. 12160 12161 * ov-class.cc (octave_class::subsasgn): Only do internal magic if 12162 rhs is not an octave_class object. 12163 12164 * OPERATORS/op-struct.cc: Define concatenation operators for 12165 struct/matrix concatenation (valid if matrix is empty). 12166 * OPERATORS/op-cell.cc (install_cell_ops): Likewise, for cells. 12167 12168 * DLD-FUNCTIONS/fltk_backend.cc: Don't include oct.h. 12169 Make compilation of entire file conditional on HAVE_FLTK. 12170 12171 * gl-render.cc: Make compilation of entire file conditional on 12172 HAVE_OPENGL. 12173 12174 * Makefile.in (GL_RENDER_SRC, FLTK_BACKEND_SRC): Delete variables. 12175 (DLD_XSRC): Always include fltk_backend.cc in the list. 12176 (DIST_SRC): Always include gl-render.cc in the list. 12177 121782008-07-19 John W. Eaton <jwe@octave.org> 12179 12180 * version.h (OCTAVE_VERSION): Now 3.1.50+. 12181 (OCTAVE_API_VERSION): Now api-v33+. 12182 121832008-07-18 John W. Eaton <jwe@octave.org> 12184 12185 * version.h (OCTAVE_VERSION): Now 3.1.50. 12186 (OCTAVE_API_VERSION): Now api-v33. 12187 (OCTAVE_RELEASE_DATE): Now 2008-07-18. 12188 (OCTAVE_COPYRIGHT): Update date to 2008. 12189 121902008-07-18 John W. Eaton <jwe@octave.org> 12191 12192 * Makefile.in (__magick_read__.df): New rule. 12193 Append MAGICK_INCFLAGS to CPPFLAGS. 12194 12195 * Makefile.in (EXTRAS): Add graphics-props.cc to the list. 12196 List graphics-props.cc as a target generated by genprops.awk. 12197 121982008-07-18 Carlo de Falco <carlo.defalco@gmail.com> 12199 12200 * gl-render.h: Conditionally include GL/gl.h or OpenGL/gl.h 12201 and GL/glu.h or OpenGL/glu.h 12202 122032008-07-17 John W. Eaton <jwe@octave.org> 12204 12205 * symtab.cc (out_of_date_check_internal): New arg, dispatch_type. 12206 Use it to handle class methods. 12207 12208 * toplev.h (octave_call_stack::do_caller): New function. 12209 (octave_call_stack::caller): Use it. 12210 122112008-07-17 Jaroslav Hajek <highegg@gmail.com> 12212 12213 * Makefile.in (convhulln.oct, __delaunayn__.oct, __voronoi__.oct, 12214 regexp.oct, urlwrite.oct, __glpk__.oct, fltk_backend.oct): 12215 Use OCT_LINK_DEPS instead of DL_LDFLAGS for target-specific 12216 dependencies. 12217 122182008-07-17 David Bateman <dbateman@free.fr> 12219 12220 * DLD-FUNCTION/__magick_read__.cc (F__magick_read__): Allow build 12221 without GraphicsMagick++ installed. 12222 122232008-07-16 John W. Eaton <jwe@octave.org> 12224 12225 * graphics.h.in (gh_manager::autolock): Delete copy constructor 12226 and assignment definitions. 12227 122282008-07-16 Michael Goffioul <michael.goffioul@gmail.com> 12229 12230 * graphics.h.in (callback_property::execute): Remove static version. 12231 (base_properties::is_hittest, base_properties::is_interruptible, 12232 base_properties::is_selected, base_properties::is_selectionhighlight): 12233 New convenience property accessors. 12234 (base_graphics_object::get_handle, graphics_object::get_handle): Idem. 12235 (gh_manager::graphics_lock): New global mutex 12236 (gh_manager::lock, gh_manager::unlock, gh_manager::do_lock, 12237 gh_manager::do_unlock): Add accessors for it. 12238 (gh_manager::autolock): New class for easy locking of the graphics 12239 system. 12240 (gh_manager::event_data): New class for event management. 12241 (gh_manager::event_queue): New object to hold pending events. 12242 (gh_manager::callback_objects): New stack of callback objects. 12243 (gh_manager::execute_callback, gh_manager:post_callback, 12244 gh_manager::post_function, gh_manager::post_set, 12245 gh_manager::process_events, gh_manager::flush_events, 12246 gh_manager::restore_gcbo): New static methods for event management. 12247 (gh_manager::do_execute_callback, gh_manager::do_post_callback, 12248 gh_manager::do_post_function, gh_manager::do_post_set, 12249 gh_manager::do_process_events, gh_manager::do_post_event, 12250 gh_manager::do_restore_gcbo): New non-static versions. 12251 * graphics.cc (xreset_gcbo): Remove. 12252 (execute_callback): Likewise. 12253 (base_property::run_listeners, callback_property::execute): Use 12254 gh_manager::execute_callback. 12255 (class callback_event_data, class function_event_data, class 12256 set_event_data): New classes to implement various types of events. 12257 (gh_manager::event_data::create_callback_event, 12258 gh_manager::event_data::create_function_event, 12259 gh_manager::event_data::create_set_event): Implement event factory 12260 methods. 12261 (gh_manager::do_restore_gcbo, gh_manager::do_execute_callback, 12262 gh_manager::do_post_event, gh_manager::do_post_callback, 12263 gh_manager::do_post_function, gh_manager::do_post_set, 12264 gh_manager::do_process_events): New methods for event management. 12265 (Fishandle, Fset, Fget, F__get__, F__go_figure__, F__go_delete__, 12266 F__go_axes_init__, F__go_handles__, F__go_figure_handles__, 12267 Favailable_backends, Fdrawnow, Faddlistener, Faddproperty, 12268 get_property_from_handle, set_property_in_handle): Lock graphics 12269 system. 12270 (GO_BODY): Likewise. 12271 (Fdrawnow): Support single "expose" argument. 12272 122732008-07-15 John W. Eaton <jwe@octave.org> 12274 12275 * DLD-FUNCTIONS/__convn__.cc (convn): Cast second arg to 12276 octave_idx_type in call to std::max. 12277 122782008-07-14 John W. Eaton <jwe@octave.org> 12279 12280 * Makefile.in (convhulln.oct, __delaunayn__.oct, __voronoi__.oct, 12281 regexp.oct, urlwrite.oct, __glpk__.oct, fltk_backend.oct): 12282 Simplify with target-specific settings for DL_LDFLAGS. 12283 12284 * DLD-FUNCTIONS/__magick_read__.cc: Delete "using namespace std" 12285 and "using namespace Magick" directives. Style fixes. 12286 12287 * oct-conf.h.in (OCTAVE_CONF_MAGICK_INCFLAGS, 12288 OCTAVE_CONF_MAGICK_LIBS): Substitute here. 12289 * toplev.cc (octave_config_info): Include MAGICK_INCFLAGS and 12290 MAGICK_LIBS in the struct. 12291 * Makefile.in (DLD_XSRC): Add __magick_read__.cc to the list. 12292 (OCTAVE_LIBS): Add $(MAGICK_LIBS) to the list for static linking case. 12293 (__magick_read__.d, __magick_read__.o, pic/__magick_read__.o): 12294 Append MAGICK_INCFLAGS to CPPFLAGS. 12295 (__magick_read__.oct): Append MAGICK_LIBS to LDFLAGS. 12296 122972008-07-14 Thomas L. Scofield <scofield@calvin.edu> 12298 12299 * DLD-FUNCTIONS/__magick_read__.cc: New file from Octave Forge. 12300 123012008-07-11 John W. Eaton <jwe@octave.org> 12302 12303 * syscalls.cc (const_value): Delete arg NM. Change all uses. 12304 12305 * DLD-FUNCTIONS/fft.cc (do_fft): Avoid GCC warning. 12306 * DLD-FUNCTIONS/fft2.cc (do_fft2): Likewise. 12307 * DLD-FUNCTIONS/fftn.cc (do_fftn): Likewise. 12308 * DLD-FUNCTIONS/qr.cc (Fqrshift): Likewise. 12309 * DLD-FUNCTIONS/lookup.cc (Flookup): Likewise. 12310 * gl-render.cc (opengl_renderer::draw): Likewise. 12311 * graphics.cc (axes::update_axis_limits, 12312 hggroup::update_axis_limits, Favailable_backends): 12313 Likewise. 12314 * pt-cmd.cc (tree_no_op_command::dup, tree_function_def::dup): 12315 Likewise. 12316 * pt-const.cc (tree_constant::dup): Likewise. 12317 * pt-id.cc (tree_identifier::dup): Likewise. 12318 * pt-jump.cc (tree_break_command::dup, tree_continue_command::dup, 12319 tree_return_command::dup): Likewise. 12320 12321 * DLD-FUNCTIONS/colamd.cc: Style fixes. 12322 (tree_postorder): Rename from TreePostorder. 12323 (tree_postorder, coletree): Avoid GCC warnings. 12324 12325 * DLD-FUNCTIONS/chol.cc (Fchol): Avoid GCC warnings. 12326 (Fcholdelete, Fcholshift): Delete unused arg nargout. 12327 12328 * toplev.cc, toplev.h (octave_call_stack::caller_user_function, 12329 octave_call_stack::caller_user_script, 12330 octave_call_stack::do_caller_user_function, 12331 octave_call_stack::do_caller_user_script): 12332 Delete functions and decls. 12333 12334 * defun.cc (print_usage): Call octave_call_stack::caller_user_code, 12335 not octave_call_stack::caller_user_function. 12336 * debug.cc (get_user_code): Likewise. 12337 12338 * toplev.h (octave_call_stack::difference_type): Delete typedef. 12339 * toplev.cc, toplev.h (octave_call_stack::caller_user_code_line, 12340 octave_call_stack::do_caller_user_code_line, 12341 octave_call_stack::caller_user_code_column, 12342 octave_call_stack::do_caller_user_code_column, 12343 octave_call_stack::caller_script, 12344 octave_call_stack::do_caller_script, 12345 octave_call_stack::caller_user_function, 12346 octave_call_stack::do_caller_user_function, 12347 octave_call_stack::caller_user_code, 12348 octave_call_stack::do_caller_user_code): 12349 Delete unused difference_type arg. 12350 12351 * ov-float.h, ov-flt-re-mat.cc, ov-range.h, ov-re-mat.h, 12352 ov-re-sparse.cc, ov-scalar.h: Check for NaN in bool_value and 12353 bool_array_value member functions to bool. 12354 12355 * ops.h (DEFSCALARBOOLOP_OP): New macro. 12356 * OPERATORS/op-s-s.cc, OPERATORS/op-fs-fs.cc: Use it to define 12357 el_and and el_or ops. 12358 123592008-07-10 David Bateman <dbateman@free.fr> 12360 12361 * DLD-FUNCTIONS/lookup.cc (assign): Delete. 12362 (Flookup): Use new NDArray constructors rather than assign. 12363 * data.cc (Fsort): Use new NDArray constructors rather than 12364 directly assigning. 12365 * besselj.cc (int_array2_to_matrix, int_arrayn_to_array, 12366 int_array2_to_float_matrix, int_arrayn_to_float_array): Delete. 12367 (do-bessel): Use new NDArray constructors. 12368 * max.cc (MINMAX_SPARSE_BODY, MINMAX_INT_BODY, MINMAX_SINGLE_BODY, 12369 MINMAX_DOUBLE_BODY): Use new NDArray constructors. 12370 * ov-bool.h (array_value, float_array_value): Explictly cast 12371 boolean scalar to double before the assignment to avoid ambiguity. 12372 123732008-07-10 David Bateman <dbateman@free.fr> 12374 12375 * ls-mat4.cc (read_mat_binary_data, save_mat_binary_data): Add 12376 loading and saving of sparse matrices. 12377 123782008-07-10 Michael Goffioul <michael.goffioul@gmail.com> 12379 12380 * Makefile.in: Add OPENGL_LIBS to liboctinterp link command. Add 12381 GRAPHICS_CFLAGS to fltk_backend.cc compilation command. 12382 * data.cc: Define hypotf to _hypotf when not present. 12383 * gl-render.h: Replace OCTGRAPHICS_API with OCTINTERP_API. 12384 * gl-render.cc: Get rid of Array2<vertex_data>. 12385 * OPERATORS/op-int.h: Use powf instead of pow when invoked 12386 with float arguments. 12387 123882008-07-09 John W. Eaton <jwe@octave.org> 12389 12390 * input.cc (get_debug_input): Don't delete global_command here. 12391 * toplev.cc (main_loop): Undo previous change. 12392 12393 * toplev.h (octave_call_stack::instance_ok): Push top scope when 12394 creating instance. 12395 12396 * DLD-FUNCTIONS/inv.cc (Finv): Avoid GCC warning. 12397 12398 * DLD-FUNCTIONS/expm.cc (Fexpm): Avoid GCC warning. 12399 12400 * ov-fcn-inline.cc (octave_fcn_inline::load_ascii): Avoid GCC warning. 12401 124022008-07-09 Michael Goffioul <michael.goffioul@gmail.com> 12403 12404 * gl-render.cc (opengl_renderer::draw(figure)): Enable line smoothing 12405 according to __enhanced__ property. 12406 (opengl_renderer::draw_marker): Only draw markers with valid call 12407 lists ID. 12408 (opengl_renderer::make_marker_list): Do not produce filled marker call 12409 list for non-fillable markers. 12410 (opengl_renderer::draw(axes)): Do not antialias axes system. 12411 12412 * gl-render.cc (opengl_renderer::set_polygon_offset): Also enable 12413 polygon offseting in GL_LINE mode. 12414 (opengl_renderer::draw_marker): Offset markers foward instead of 12415 backward (to draw them above lines). 12416 12417 * Makefile.in: new substituted variables GL_RENDER_SRC and 12418 FLTK_BACKEND_SRC. 12419 12420 * gl-render.cc (vertex_data::vertex_data_rep::vertex_data(void), 12421 vertex_data::vertex_data(void), vertex_data::vertex_data(...)): 12422 initialize reference counting correctly. 12423 124242008-07-09 John W. Eaton <jwe@octave.org> 12425 12426 * toplev.cc (main_loop): Unwind-protect global_command. 12427 * input.cc (get_debug_input): Likewise. 12428 124292008-07-09 David Bateman <dbateman@free.fr> 12430 12431 * pt-id.cc (octave_value_list tree_identifier::rvalue (int), 12432 octave_lvalue tree_identifier::lvalue (void)): Remove 12433 MAYBE_DO_BREAKPOINT. 12434 124352008-07-08 John W. Eaton <jwe@octave.org> 12436 12437 * graphics.h.in (axes::properties::keypos): Declare as 12438 any_property instead of double_property. 12439 124402008-06-28 John W. Eaton <jwe@octave.org> 12441 12442 * debug.cc (push_dummy_call_stack_elt): Delete. 12443 (Fdbstack): Don't push dummy stack elt. Use nskip instead of 12444 nframes, and curr_frame instead of idx. Pass curr_frame to 12445 octave_call_stack::backtrace. 12446 12447 * ls-mat5.cc (read_mat5_binary_element): Explicitly pass 0 for 12448 current_context in call to symbol_table::varref. 12449 * ov-fcn-handle.cc (octave_fcn_handle::load_ascii): Likewise. 12450 Fix test. 12451 12452 * mex.cc (mexGetVariable, mexPutVariable): Use octave_call_stack 12453 methods to manipulate scope and context. 12454 * parse.y (source_file, Fassignin, Fevalin): Likewise. 12455 12456 * ov-usr-fcn.cc (octave_user_function::do_multi_index_op): 12457 Call octave_call_stack::push after call to symbol_table::push_scope. 12458 Call unwind_protect::add with octave_call_stack::unwind_pop 12459 immediately after call to octave_call_stack::push. 12460 12461 * symtab.cc (symbol_table::xcurrent_caller_scope): Delete definition. 12462 * symtab.h (symbol_table::xcurrent_caller_scope): Delete decl. 12463 Delete all uses. 12464 (xcurrent_context_this_table): Delete. Delete all uses. 12465 (symbol_table::current_caller_scope): Delete. 12466 12467 * toplev.cc (octave_call_stack::do_num_user_code_frames): 12468 New function. 12469 (octave_call_stack::do_backtrace): New arg, curr_user_frame. 12470 Rename nframes arg to nskip. Correctly handle curr_frame not at 12471 end of stack. 12472 (octave_call_stack::do_goto_frame_relative): Rename n arg to nskip. 12473 Correctly handle curr_frame not at end of stack. 12474 (octave_call_stack::do_goto_caller_frame): New function. 12475 (octave_call_stack::do_goto_base_frame): New function. 12476 * toplev.h: Provide decls for new functions. 12477 (octave_call_stack::call_stack_elt::prev): New data member. 12478 Initialize it in constructor. 12479 (octave_call_stack::const_reverse_iterator, 12480 octave_call_stack::reverse_iterator): New typedefs. 12481 (octave_call_stack::symbol_table::scope_id current_scope, 12482 octave_call_stack::symbol_table::context_id current_context, 12483 octave_call_stack::num_user_code_frames, 12484 octave_call_stack::goto_caller_frame, 12485 octave_call_stack::goto_base_frame, 12486 octave_call_stack::do_num_user_code_frames, 12487 octave_call_stack::do_current_scope, 12488 octave_call_stack::do_current_context): New functions. 12489 12490 (octave_call_stack::push): Default value for context arg is 12491 symbol_table::current_context, not 0. 12492 (octave_call_stack::do_push): Save previous frame. Always push 12493 new frame on back of stack. Call symbol_table::set_scope_and_context. 12494 (octave_call_stack::do_pop): Restore previous frame. Always pop 12495 frame from back of stack. Call symbol_table::set_scope_and_context. 12496 124972008-06-26 John W. Eaton <jwe@octave.org> 12498 12499 * token.h: Omit "class symbol_table::symbol_record" decl; 12500 12501 * lex.l (grab_block_comment): Use parens around || expression 12502 within && expression. 12503 125042008-06-23 John W. Eaton <jwe@octave.org> 12505 12506 * debug.cc (Fdbstack): Avoid shadowed variable warning. 12507 125082008-06-23 Jaroslav Hajek <highegg@gmail.com> 12509 12510 * genprops.awk (emit_source): Avoid gensub for portability. 12511 (BEGIN): Ditto. 12512 125132008-06-20 Jaroslav Hajek <highegg@gmail.com> 12514 12515 * DLD-FUNCTIONS/regexp.cc (octregexp_list): Make "once" an output 12516 argument. 12517 (octregexp): Do not use cell arrays when "once" is requested. 12518 12519 * ov.cc (make_vector_dims): New function. 12520 (vector_value, complex_vector_value, float_vector_value, 12521 float_complex_vector_value): Query N-d array values and simplify, 12522 avoid copying. 12523 (column_vector_value, complex_column_vector_value, 12524 float_column_vector_value, float_complex_column_vector_value, 12525 row_vector_value, complex_row_vector_value, 12526 float_row_vector_value, float_complex_row_vector_value): 12527 Simplify to trivial wrappers. 12528 (int_vector_value): Avoid conversions if integer type, query N-d array 12529 value, simplify. 12530 125312008-06-17 John W. Eaton <jwe@octave.org> 12532 12533 * toplev.h, toplev.cc (class octave_call_stack): 12534 Push elements on and pop from back of queue. 12535 (octave_call_stack::do_push, octave_call_stack::do_pop): 12536 Always adjust curr_frame. 12537 (octave_call_stack::size, octave_call_stack::do_size): New functions. 12538 * pt-stmt.cc (tree_statement::eval): 12539 Also call octave_call_stack::set_statement when debugging. 12540 * debug.cc (push_dummy_call_stack_elt): New function. 12541 (Fdbstack): Omit dbstack from call stack by popping element rather 12542 than adjusting frame number. Correctly handle arg. 12543 125442008-06-12 David Bateman <dbateman@free.fr> 12545 12546 * DLD-FUNCTIONS/qr.cc (Fqrupdate, Fqrinsert, Fqrshift, Fqrdelete): 12547 Allow single precision arguments, add tests for single precision. 12548 125492008-06-11 John W. Eaton <jwe@octave.org> 12550 12551 * ov-base.cc (octave_base_value::streamoff_value, 12552 octave_base_value::streamoff_array_value): Delete. 12553 * ov-base.h: Delete decls. 12554 (octave_base_value::is_streamoff): Delete. 12555 * ov-float.cc (octave_float_scalar::streamoff_value, 12556 octave_float_scalar::streamoff_array_value): Delete. 12557 * ov-float.h: Delete decls. 12558 * ov-flt-re-mat.cc (octave_float_matrix::streamoff_array_value): Delete. 12559 * ov-flt-re-mat.h: Delete decl. 12560 * ov-re-mat.cc (octave_matrix::streamoff_array_value): Delete. 12561 * ov-re-mat.h: Delete decl. 12562 * ov-re-sparse.cc (octave_sparse_matrix::streamoff_array_value): Delete. 12563 * ov-re-sparse.h: Delete decl. 12564 * ov-scalar.cc (octave_scalar::streamoff_value, 12565 octave_scalar::streamoff_array_value): Delete. 12566 * ov-scalar.h: Delete decls. 12567 * ov.cc (octave_value::octave_value (const streamoff_array&), 12568 octave_value::octave_value (const ArrayN<std::streamoff>&), 12569 octave_value::streamoff_value (void) const, 12570 octave_value::streamoff_array_value (void) const): Delete. 12571 * ov.h: Delete decls. 12572 (octave_value::is_streamoff): Delete. 12573 * ov.cc (install_types): Don't register streamoff type. 12574 * ov-streamoff.h, ov-streamoff.cc, OPERATORS/op-streamoff.cc: Delete. 12575 * Makefile.in: Delete them from the lists. 12576 12577 * error.cc (verror): Restore newline in msg_string. Stripping 12578 "error: " prefix when buffering error messages is no longer neeed. 12579 125802008-06-25 David Bateman <dbateman@free.fr> 12581 12582 * pr-output.cc (Frats): Print usage if nargin == 0. 12583 125842008-06-10 John W. Eaton <jwe@octave.org> 12585 12586 * mexproto.h (mxCreateLogicalScalar): Declar arg as mxLogical, not int. 12587 125882008-06-09 John W. Eaton <jwe@octave.org> 12589 12590 * graphics.cc (execute_callback): Pass CB by const reference and 12591 explicitly make a copy. 12592 (xget_ancestor): Pass GO by const reference and explicitly make a copy. 12593 12594 * error.cc (verror): Omit "name: " and "\a" from Vlast_error_msg. 12595 Save line and column information from user code. 12596 * toplev.cc (octave_call_stack::do_caller_user_code_line, 12597 octave_call_stack::do_caller_user_code_column): New functions. 12598 * toplev.h: Provide decls. 12599 (octave_call_stack::caller_user_code_line, 12600 octave_call_stack::caller_user_code_column): New functions. 12601 (octave_call_stack::current_line, octave_call_stack::current_column): 12602 Default return value is -1, not 0. 12603 126042008-06-06 John W. Eaton <jwe@octave.org> 12605 12606 * ov.h (octave_value::erase_subfunctions): 12607 New function. 12608 * ov-base.h (octave_base_value::erase_subfunctions): 12609 New virtual function. 12610 * ov-usr-fcn.h (octave_user_function::erase_subfunctions): 12611 New function. 12612 * symtab.h (symbol_table::fcn_info::::erase_subfunction, 12613 symbol_table::fcn_info::fcn_info_rep::erase_subfunction, 12614 symbol_table::erase_subfunctions_in_scope): 12615 New functions. 12616 (symbol_table::fcn_info::fcn_info_rep::clear_user_function): 12617 Erase subfunctions here. 12618 12619 * variables.cc (Fmlock): Doc fix. 12620 126212008-06-05 John W. Eaton <jwe@octave.org> 12622 12623 * gl-render.cc (opengl_renderer::draw): Correctly avoid shadow 12624 warnings from gcc for xmin, xmax, ymin, ymax, zmin, and zmax. 12625 12626 * graphics/ChangeLog, graphics/Makefile.in, graphics/Makerules.in, 12627 graphics/fltk_backend/Makefile.in, graphics/opengl/Makefile.in: 12628 Delete. 12629 12630 * gl-render.cc, gl-render.h: Move here from graphics/opengl. 12631 * Makefile.in: Add them to the appropriate lists. 12632 (octave$(EXEEXT)): Also link with $(OPENGL_LIBS) 12633 12634 * fltk_backend.cc: Move here from graphics/fltk_backend. 12635 * Makefile.in (DLD_XSRC): Add it to the list 12636 (fltk_backend.oct): Include special rules for linking with 12637 $(GRAPHICS_LIBS) and $(FT2_LIBS). 12638 12639 * dynamic-ld.cc (octave_dynamic_loader::mex_mangler, 12640 octave_dynamic_loader::mex_uscore_mangler, 12641 octave_dynamic_loader::mex_f77_mangler): New functions. 12642 (octave_dynamic_loader::do_load_mex): Use them. 12643 (octave_dynamic_loader::do_remove_oct): Rename from 12644 octave_dynamic_loader::do_remove. 12645 (octave_dynamic_loader::do_remove_mex): New function. 12646 * dynamic-ld.h: Provide/fix decls. 12647 12648 * graphics.cc (properties::update_normals): Style fixes. 12649 * graphics.h.in: Style fixes. 12650 12651 ChangeLog entries for gl-render.h, gl-render.cc, and 12652 fltk_backend.cc before the move: 12653 12654 2008-06-05 John W. Eaton <jwe@octave.org> 12655 12656 * opengl/gl-render.cc (xmin): New static function. 12657 12658 * opengl/gl-render.h (opengl_renderer): Style fixes. 12659 * fltk_backend/fltk_backend.cc: Style fixes. 12660 12661 2008-04-26 Michael Goffioul <michael.goffioul@gmail.com> 12662 12663 * opengl/gl-render.h (opengl_renderer::draw(hggroup)): New method. 12664 * opengl/gl-render.cc (opengl_renderer::draw(hggroup)): Likewise. 12665 (opengl_renderer::draw(graphics_object)): Call it. 12666 12667 2008-03-17 Shai Ayal <shaiay@users.sourceforge.net> 12668 12669 * fltk_backend/fltk_backend.cc (plot_window::resize, 12670 plot_window::draw): make canvas the size of figure.position 12671 12672 2008-03-09 Shai Ayal <shaiay@users.sourceforge.net> 12673 12674 * fltk_backend/fltk_backend.cc (plot_window::handle): add zoom 12675 stack 12676 12677 2008-03-06 Shai Ayal <shaiay@users.sourceforge.net> 12678 12679 * fltk_backend/fltk_backend.cc (plot_window::handle): Add handling 12680 of the 'a' and 'g' keys 12681 (plot_window: toggle_grid): New helper function 12682 (plot_window): Add new togglegrid button 12683 12684 2008-03-01 Shai Ayal <shaiay@users.sourceforge.net> 12685 12686 * fltk_backend/fltk_backend.cc (OpenGL_fltk::draw_overlay, 12687 OpenGL_fltk::zoom, OpenGL_fltk::set_zoom_box): Added to support 12688 zoom box 12689 (plot_window::handle): Added zoom box code, B-3 now does autoscale 12690 (plot_window::axis_auto): New utility function to call axis("auto") 12691 (plot_window::button_press): "A" button now does autoscale 12692 12693 * opengl/gl-render.cc (make_marker_list): Add the "+x*.^v><" 12694 markers 12695 12696 2008-02-27 Michael Goffioul <michael.goffioul@gmail.com> 12697 12698 * opengl/gl-render.cc (opengl_renderer::draw(patch), 12699 opengl_renderer::draw(surface)): Adapt to type change of facealpha and 12700 edgealpha, using double_radio_property class. 12701 12702 2008-02-26 Michael Goffioul <michael.goffioul@gmail.com> 12703 12704 * opengl/gl-render.h: Make sure windows.h is included before OpenGL 12705 headers. 12706 * fltk_backend/Makefile.in (FLTK_EXTRA_CXXFLAGS): Use $(srcdir) for 12707 includesion of OpenGL renderer headers. 12708 (Makeconf): Move inclusion of Makeconf later on, to avoid freezing 12709 MinGW make. 12710 12711 * fltk_backend/Makefile.in (GRAPHICS_CFLAGS): New substituted 12712 variable. 12713 12714 2008-02-25 Shai Ayal <shaiay@users.sourceforge.net> 12715 12716 * fltk_backend/fltk_backend.cc (class plot_window): Many changes 12717 to use figure::properties instead of figure handle to reference 12718 the figure 12719 (class figure_manager): ditto 12720 (__fltk_redraw__): moved most of functionality into the 12721 figure_manager class 12722 (plot_window::pixel2pos): Modified to use axes::pixel2coord 12723 (plot_window::pixel2staus): Modified to use pixel2pos 12724 (plot_window::handle): Added zoom with mouse 12725 12726 2008-02-24 Shai Ayal <shaiay@users.sourceforge.net> 12727 12728 * fltk_backend/fltk_backend.cc (OpenGL_fltk::Draw): removed double 12729 buffer switch 12730 (OpenGL_fltk::setup_viewport): removed call to glOrtho -- 12731 gl-render takes care of all the transformations 12732 12733 2008-02-23 Shai Ayal <shaiay@users.sourceforge.net> 12734 12735 * fltk_backend/fltk_backend.cc (plot_window::mark_modifed): mark 12736 the whole window as damaged (otherwise changing figure.postion 12737 does not have immediate effect) 12738 (plot_window::draw): New function, checks for window size 12739 (__fltk_maxtime__): New DEFUN to allow tweaking of fltk timeout 12740 (__fltk_redraw__): Use fltk_maxtime as timeout 12741 12742 2008-02-21 Michael Goffioul <michael.goffioul@gmail.com> 12743 12744 * opengl/gl-render.cc (opengl_renderer::patch_tesselator::combine): 12745 Protect against NULL vertex data. 12746 12747 * opengl/gl-render.cc (opengl_renderer::draw(patch)): Add marker 12748 rendering of patch objects. 12749 12750 2008-02-21 Shai Ayal <shaiay@users.sourceforge.net> 12751 12752 * opengl/gl-render.cc: remove OpenGL includes 12753 * opengl/gl-render.h: add OpenGL includes 12754 * fltk_backend/fltk_backend.cc: remove OpenGL includes 12755 (__fltk_redraw__): put figure handle into the figure's 12756 __plot_stream__ property for later 12757 (fltk_backend::close_figure): use argument as figure handle to 12758 close 12759 12760 2008-02-20 Shai Ayal <shaiay@users.sourceforge.net> 12761 12762 * fltk_backend/Makefile.in: initial import 12763 12764 * fltk_backend/fltk_backend.cc: initial import 12765 12766 12767 2008-02-20 Michael Goffioul <michael.goffioul@gmail.com> 12768 12769 * opengl/gl-render.h (opengl_renderer::draw(patch)): New method to 12770 render patch objects. 12771 (class opengl_renderer::patch_tesselator): Forward declaration. 12772 * opengl/gl-render.cc (opengl_texture::create): Use RGB data format 12773 instead of RGBA. 12774 (class opengl_tesselator): New classes to abstract GLU tessellation 12775 process. 12776 (class opengl_renderer::patch_tesselator): New class to render opaque 12777 patch objects. 12778 (class vertex_data): New class to hold vertex data during tessellation 12779 of patch objects. 12780 (opengl_renderer::draw(patch)): New method to render patch objects (no 12781 transparency, no border, no marker yet). 12782 (opengl_renderer::draw(graphics_object)): Dispatch to it. 12783 12784 * opengl/gl-render.cc (opengl_renderer::draw(patch)): Use patch color 12785 data and support face/vertex single color specification. 12786 12787 * opengl/gl-render.cc (opengl_tesselator::begin_polygon): Set 12788 tessellation property also for non-filled polygons. 12789 (opengl_renderer::patch_tesselator::vertex): Protect against empty 12790 color matrices. 12791 (opengl_renderer::draw(patch)): Render patch border (no transparency 12792 yet). 12793 12794 2008-02-19 Michael Goffioul <michael.goffioul@gmail.com> 12795 12796 * opengl/gl-render.cc (opengl_texture::texture_rep::tex_coord, 12797 opengl_texture::tex_coord): New wrapper around glTexCoord2d. 12798 (opengl_renderer::draw(surface)): Use it for texturemap 12799 implementation. 12800 (opengl_renderer::draw(surface)): Fix indexing bug when creating clip 12801 matrix. 12802 (opengl_texture::operator=): Add assignment operator. 12803 (opengl_texture::create): New static opengl_texture creator. 12804 (opengl_texture::is_valid): New accessor. 12805 12806 2008-02-18 Michael Goffioul <michael.goffioul@gmail.com> 12807 12808 * opengl/gl-render.cc (class opengl_texture): New class to wrap 12809 texture operations in OpenGL. 12810 12811 2008-02-17 Michael Goffioul <michael.goffioul@gmail.com> 12812 12813 * opengl/gl-render.cc (opengl_renderer::draw(surface)): Set material 12814 color when rendering surface facets. 12815 12816 * opengl/gl-render.cc (opengl_renderer::draw(surface)): Add rendering 12817 of mesh and markers. 12818 12819 2008-02-16 Michael Goffioul <michael.goffioul@gmail.com> 12820 12821 * opengl/gl-render.cc (opengl_renderer::draw(figure)): Initialize the 12822 OpenGL context correctly. 12823 (opengl_renderer::draw(surface)): Add missing glEnd call. 12824 12825 2008-02-14 Michael Goffioul <michael.goffioul@gmail.com> 12826 12827 * opengl/gl-render.h opengl/gl-render.cc: Add rendering 12828 interface for surface objects (actual implement still 12829 missing). 12830 12831 2008-02-14 Michael Goffioul <michael.goffioul@gmail.com> 12832 12833 * Makefile.in Makerules.in: Initial import 12834 * opengl/Makefile.in: Likewise. 12835 * opengl/gl-render.h opengl/gl-render.cc: Likewise. 12836 128372008-06-04 Shai Ayal <shaiay@users.sourceforge.net> 12838 12839 * graphics.cc (axes::properties::set_defaults): Preserve position 12840 if mode is replace. 12841 (axes::properties::sync_positions): Use default_axes_postion for 12842 consistency. 12843 12844 * graphics.h.in (axes::properties::sync_positions, 12845 axes::properties::update_position, 12846 axes::properties::update_outerposition): New functions to sync 12847 outerposition and position. 12848 12849 * graphics.h.in (axes::properties::update_xlim, 12850 axes::properties::update_ylim, axes::properties::update_zlim): 12851 pass is_logscale flag to axes::properties::calc_ticks_and_lims 12852 * graphics.cc (axes::properties::calc_ticks_and_lims): Added 12853 support for log scale 12854 12855 * graphics.h.in (axes::properities::fix_limits) : New method. 12856 (axes::properties::update_xlim, axes::properties::update_ylim, 12857 axes::properties::update_zlim): Use fix_limits. 12858 12859 * graphics.cc (axes::properties::calc_ticks_and_lims): Make sure 12860 that lo <= hi. 12861 12862 * graphics.h.in (axes::pixel2coord, axes::coord2pixel): New functions. 12863 12864 * graphics.cc (convert_position): No longer static. 12865 * graphics.h.in: Provide decl. 12866 12867 * graphics.cc (Favailable_backends): New function. 12868 * graphics.h.in (base_graphics_backend::available_backends_list): 12869 New function. 12870 12871 * graphics.cc (axes::properties::calc_ticks_and_lims): Refactor. 12872 Adjust axes limits & tics together so that the result is consistent. 12873 (axes::properties::calc_tick_sep): Ditto. 12874 (axes::properties::get_axis_limits): Ditto. Now a member of 12875 axes::properties 12876 (magform): Now file-scope static function instead of 12877 axes::properties member function. 12878 12879 * graphics.h.in (axes::properties::update_xlim): call the new 12880 axes::properties::calc_ticks_and_lims method 12881 (axes::properties::update_ylim): ditto 12882 (axes::properties::update_zlim): ditto 12883 128842008-06-04 Michael Goffioul <michael.goffioul@gmail.com> 12885 12886 * ov-fcn-inline.h (class octave_fcn_inline): Mark with OCTINTERP_API. 12887 * ov-fcn-handle.h (class Octave_fcn_handle): Likewise. 12888 * ls-oct-binary.h (save_binary_data, read_binary_data): Likewise. 12889 12890 * genprops.awk (emit_source): Fix if-then-else statement generation 12891 when the first property is hidden. 12892 * graphics.h.in (base_properties::adopt): Call mark_modified. 12893 (class hggroup): New graphics object class. 12894 * graphics.cc (lookup_object_name, make_graphics_object_from_type, 12895 property_list::lookup, property_list::set, 12896 root_figure::init_factory_properties): Support hggroup as possible 12897 object type. 12898 (hggroup::update_axis_limits): New graphics object class. 12899 (make_graphics_object): Look for "parent" property in the arguments 12900 and use it as actual parent for the created object. 12901 (F__go_hggroup__): New function. 12902 (F__go_delete__): Set Vdrawnow_requested to true. 12903 12904 * graphics.h.in (base_property::clone, string_property::clone, 12905 radio_property::clone, color_property::clone, double_property::clone, 12906 double_radio_property::clone, array_property::clone, 12907 row_vector_property::clone, bool_property::clone, 12908 handle_property::clone, callback_property::clone, any_property::clone, 12909 property::clone): New virtual method. 12910 (property::create): New static method to create dynamic properties. 12911 (base_properties::has_property): New method to check the existence of 12912 a property. 12913 (any_property::any_property, row_vector_property::row_vector_property, 12914 double_radio_property::double_radio_property): New copy constructors. 12915 * graphics.cc (lookup_object_name): New static utility function. 12916 (make_graphics_object_from_type): Likewise. 12917 (gh_manager::do_make_graphics_handle): Use it. 12918 (dprop_obj_map): New static map used for chaching purpose in dynamic 12919 property creation. 12920 (property::create): New static method to create dynamic properties. 12921 (base_properties::has_property): New method to check the existence of 12922 a property. 12923 (base_properties::override_defaults): Check parent validity. 12924 (Faddlistener): Documentation fix. 12925 (Faddproperty): New function to create dynamic properties. 12926 12927 * genprops.awk (emit_get_array): Don't produce get_xxx_property 12928 accessors. 12929 * graphics.h.in (array_property::get_limits): New method to return the 12930 array limits. 12931 (base_properties::get_xdata_property, 12932 base_properties::get_ydata_property, 12933 base_properties::get_zdata_property, 12934 base_properties::get_ldata_property, 12935 base_properties::get_udata_property, 12936 base_properties::get_xldata_property, 12937 base_properties::get_xudata_property, 12938 base_properties::get_cdata_property): Remove methods, replaced with 12939 limit-based equivalent. 12940 (base_graphics_object::get_xdata_property, 12941 base_graphics_object::get_ydata_property, 12942 base_graphics_object::get_zdata_property, 12943 base_graphics_object::get_ldata_property, 12944 base_graphics_object::get_udata_property, 12945 base_graphics_object::get_xldata_property, 12946 base_graphics_object::get_xudata_property, 12947 base_graphics_object::get_cdata_property): Likewise. 12948 (graphics_object::get_xdata_property, 12949 graphics_object::get_ydata_property, 12950 graphics_object::get_zdata_property, 12951 graphics_object::get_ldata_property, 12952 graphics_object::get_udata_property, 12953 graphics_object::get_xldata_property, 12954 graphics_object::get_xudata_property, 12955 graphics_object::get_cdata_property): Likewise. 12956 (base_properties::get_xlim, base_properties::get_ylim, 12957 base_properties::get_zlim, base_properties::get_clim, 12958 base_properties::get_alim, base_properties::is_xliminclude, 12959 base_properties::is_yliminclude, base_properties::is_zliminclude, 12960 base_properties::is_climinclude, base_properties::is_aliminclude): 12961 New methods. 12962 (base_graphics_object::get_xlim, base_graphics_object::get_ylim, 12963 base_graphics_object::get_zlim, base_graphics_object::get_clim, 12964 base_graphics_object::get_alim, base_graphics_object::is_xliminclude, 12965 base_graphics_object::is_yliminclude, 12966 base_graphics_object::is_zliminclude, 12967 base_graphics_object::is_climinclude, 12968 base_graphics_object::is_aliminclude): Likewise. 12969 (graphics_object::get_xlim, graphics_object::get_ylim, 12970 graphics_object::get_zlim, graphics_object::get_clim, 12971 graphics_object::get_alim, graphics_object::is_xliminclude, 12972 graphics_object::is_yliminclude, graphics_object::is_zliminclude, 12973 graphics_object::is_climinclude, graphics_object::is_aliminclude): 12974 Likewise. 12975 (base_graphics_object::update_axis_limits): Provide default behavior 12976 by passing the call to the parent object. 12977 (line::properties::xdata, line::properties::ydata, 12978 line::properties::zdata, line::properties::ldata, 12979 line::properties::udata, line::properties::xldata, 12980 line::properties::xudata): Replace 'l' modifier with 'u'. 12981 (line::properties::xlim, line::properties::ylim, 12982 line::properties::zlim, line::properties::xliminclude, 12983 line::properties::yliminclude, line::properties::zliminclude): New 12984 hidden properties. 12985 (line::properties::update_xdata, line::properties::update_ydata, 12986 line::properties::update_zdata, line::properties::update_xldata, 12987 line::properties::update_xudata, line::properties::update_ldata, 12988 line::properties::update_udata): New updaters that update limit 12989 properties. 12990 (line::properties::compute_xlim, line::properties::compute_ylim): New 12991 method to compute actual limits taking into account x/y data and 12992 upper/lower bounds. 12993 (text::properties::position): Add 'u' modifier. 12994 (text::properties::xlim, text::properties::ylim, 12995 text::properties::zlim, text::properties::xliminclude, 12996 text::properties::yliminclude, text::properties::zliminclude): New 12997 hidden properties. 12998 (text::properties::update_position): New updater that updates limit 12999 properties. 13000 (image::properties::xdata, image::properties::ydata, 13001 image::properties::cdata): Replace 'l' modifier with 'u'. 13002 (image::properties::cdatamapping): Add 'l' modifier. 13003 (image::properties::xlim, image::properties::ylim, 13004 image::properties::clim, image::properties::xliminclude, 13005 image::properties::yliminclude, image::properties::climinclude): New 13006 hidden properties. 13007 (image::properties::get_climinclude, 13008 image::properties::is_climinclude): Provide specialized inline 13009 accessors. 13010 (image::properties::update_xdata, image::properties::update_ydata, 13011 image::properties::update_cdata): New updaters that update limit 13012 properties. 13013 (patch::properties::xdata, patch::properties::ydata, 13014 patch::properties::zdata, patch::properties::cdata): Replace 'l' 13015 modifier with 'u'. 13016 (patch::properties::cdatamapping): Add 'l' modifier. 13017 (patch::properties::alphadatamapping): New property. 13018 (patch::properties::xlim, patch::properties::ylim, 13019 patch::properties::zlim, patch::properties::clim, 13020 patch::properties::alim, patch::properties::xliminclude, 13021 patch::properties::yliminclude, patch::properties::zliminclude, 13022 patch::properties::climinclude, patch::properties::aliminclude: New 13023 hidden properties. 13024 (patch::properties::get_climinclude, 13025 patch::properties::is_climinclude, patch::properties::get_aliminclude, 13026 patch::properties::is_aliminclude): Provide specialized inline 13027 accessors. 13028 (patch::properties::update_xdata, patch::properties::update_ydata, 13029 patch::properties::update_zdata, patch::properties::update_cdata): New 13030 updaters that update limit properties. 13031 (surface::properties::xdata, surface::properties::ydata, 13032 surface::properties::zdata, surface::properties::cdata, 13033 surface::properties::alphadata): Replace 'l' modifier with 'u'. 13034 (surface::properties::cdatamapping, 13035 surface::properties::alphadatamapping): Add 'l' modifier. 13036 (surface::properties::xlim, surface::properties::ylim, 13037 surface::properties::zlim, surface::properties::clim, 13038 surface::properties::alim, surface::properties::xliminclude, 13039 surface::properties::yliminclude, surface::properties::zliminclude, 13040 surface::properties::climinclude, surface::properties::aliminclude: New 13041 hidden properties. 13042 (surface::properties::get_climinclude, 13043 surface::properties::is_climinclude, 13044 surface::properties::get_aliminclude, 13045 surface::properties::is_aliminclude): Provide specialized inline 13046 accessors. 13047 (surface::properties::update_xdata, surface::properties::update_ydata, 13048 surface::properties::update_zdata): Update limit properties. 13049 (surface::properties::update_cdata, 13050 surface::properties::update_alphadata): New updaters that update limit 13051 properties. 13052 * graphics.cc (base_properties::update_axis_limits): Simply call 13053 update_axis_limits in owning graphics_object. 13054 (base_graphics_object::update_axis_limits): Provide default behavior 13055 by passing the call to the parent object. 13056 (check_limits_vals(double&,double&,double&,const octave_value&)): New 13057 static method to work with new limit properties in graphics objects. 13058 (get_children_limits): New static method to compute the raw limits of 13059 a set of children, based on the new limit properties. 13060 (axes::update_axis_limits): Simplify and call get_children_limits. Add 13061 handling of alpha limits. 13062 (line::properties::compute_xlim, line::properties::compute_ylim): New 13063 methods to compute line limits taking into account upper/lower bounds. 13064 13065 * graphics.cc (axes::properties::sync_positions): Update 13066 transformation data. 13067 13068 * graphics.cc (Faddlistener): Rename from Fadd_listener. 13069 13070 * graphics.h.in (axes::properties::pixel2coord): Center Z coordinate 13071 on x_zlim instead of 0. 13072 (axes::properties::zoom, axes::properties::unzoom, 13073 axes::properties::clear_zoom_stack): New methods to handle zoom stack. 13074 (axes::properties::zoom_stack): New field to hold zoom stack. 13075 (axes::properties::update_xlim, axes::properites::update_ylim): 13076 Additional do_clr_zoom argument to control whether the zoom stack will 13077 be cleared. 13078 (axes::properties::update_zlim): Clear zoom stack. 13079 * graphics.cc (axes::properties::zoom, axes::properties::unzoom, 13080 axes::properties::clear_zoom_stack): New methods to handle zoom stack. 13081 13082 * genprops.awk (emit_source): Use all properties in factory defaults. 13083 13084 * graphics.h.in (base_property::base_property): Set internal counter 13085 to 1 by default. 13086 (property::property): Adapt constructors to default counter value in 13087 base_property. 13088 13089 * graphics.h.in (base_properties::get_property): Make virtual and 13090 remove const modifier. 13091 * graphics.cc (base_properties::get_property): Can return built-in 13092 properties. Generate an error if the property does not exist. 13093 (base_properties::add_listener): Use get_property. 13094 (Fadd_listener): Add documentation. 13095 * genprops.awk (emit_common_declarations, emit_source): Emit code for 13096 overloaded get_property method. 13097 13098 * genprops.awk (emit_declarations): Run listeners in the property 13099 setter methods. 13100 * graphics.h.in (enum listener_mode): New enum type for listeners. 13101 (base_property::set): Make non-virtual and handle listeners execution. 13102 (base_property::listeners): New field holding a map of listeners. 13103 (base_property::add_listener, base_property::run_listeners, 13104 base_property::do_set): New methods to handle listeners. 13105 (property::add_listener, property::run_listeners): Likewise. 13106 (base_properties::add_listener): Likewise. 13107 (base_graphics_object::add_property_listener, 13108 graphics_object::add_property_listener): Likewise. 13109 (all property classes): Rename set to do_set and make it protected. 13110 * graphics.cc (base_property::run_listeners): New method to execute 13111 listeners. 13112 (color_property::set, double_radio_property::set, 13113 handle_property::set): Rename to do_set. 13114 (base_properties::add_listener): New method to handle listener 13115 additio. Only handle dynamic properties. 13116 (Fadd_listener): New octave interface to add property listeners to 13117 graphics object. 13118 13119 * genprops.awk (emit_get_data): Remove. 13120 (emit_declarations): Treat row_vector_property as array_property and 13121 remove data_property references. 13122 * graphics.h.in (array_property::array_property(array_property)): Add 13123 copy constructor. 13124 (class data_property): Remove (replaced by array_property). 13125 (class base_graphics_backend, class graphics_backend): Replace 13126 data_property references with array_property. 13127 (line::properties::xdata, line::properties::ydata, 13128 line::properties::zdata, line::properties::ldata, 13129 line::properties::udata, line::properties::xldata, 13130 line::properties::xudata): Turn into row_vector_property. 13131 (image::properties::xdata, image::properties::ydata): Likewise. 13132 (image::properties::init): Add length constraints for xdata and ydata. 13133 (patch::properties::xdata, patch::properties::ydata, 13134 patch::properties::zdata, patch::properties::facevertexalphadata): 13135 Turn into array_property. 13136 (surface::properties::xdata, surface::properties::ydata, 13137 surface::properties::zdata): Likewise. 13138 (patch::properties::init): Add size constraints for xdata, ydata, 13139 zdata and facevertexalphadata. 13140 (surface::properties::init): Add size constraints for xdata, ydata and 13141 zdata. 13142 * graphics.cc (check_limit_vals): Remove override with data_property. 13143 (axes::update_axis_limits): Replace data_property references with 13144 array_property. 13145 13146 * graphics.h.in (root_figure::get_default): Use factory defaults when 13147 no explicit default value exists. 13148 (figure::properties::set___backend__): Reset __plot_stream__ to empty 13149 value. 13150 * graphics.cc (gh_manager::gh_manager): Call 13151 graphics_backend::default_backend to make sure the default backend is 13152 initialized. 13153 13154 * graphics.h.in (patch::properties::edgealpha, 13155 surface::properties::facealpha, surface::properties::edgealpha): Fix 13156 typos in property names. 13157 13158 * graphics.h.in (class double_radio_property): New property class for 13159 holding face/edge alpha values. 13160 (patch::properties::facealpha, patch::properties::edgealpha, 13161 surface::properties::facealpha, surface::properties::edgealpha): Use 13162 double_radio_property class. 13163 * graphics.cc (double_radio_property::set): Implement new property 13164 class. 13165 * genprops.awk (emit_get_double_radio): New function to emit code for 13166 double_radio_property. 13167 (emit_declarations): Use it. 13168 13169 * graphics.h.in (array_property::array_property(void)): New default 13170 constructor. 13171 (array_property::xmin, array_property:xmax, array_property::xminp, 13172 array_property::min_val, array_property::max_val, 13173 array_property::min_pos): New fields and accessors to hold min/max 13174 values of the array data. 13175 (array_property::get_data_limits): New method to compute min/max 13176 values of the array data. 13177 (base_properties::get_cdata_property, 13178 graphics_object::get_cdata_property): Return array_property. 13179 (image::properties::cdata, surface::properties::cdata, 13180 patch::properties::cdata, patch::properties::facevertexcdata): Turn 13181 into array_property type. 13182 (image::properties::init, surface::properties::init, 13183 patch::properties::init): Add constraint initialization for cdata and 13184 facevertexcdata (patch only). 13185 * genprops.awk (emit_get_array): New function to emit accessor for 13186 array_property. 13187 (emit_declarations): Use it. 13188 * graphics.cc (get_array_limits): New template function to compute 13189 min/max values of an Array<T> object. 13190 (array_property::get_data_limits): New method to compute min/max 13191 values of the array data, using get_array_limits. 13192 (check_limit_vals): Overridden function with array_property. 13193 (axes::update_axis_limits): Turn cdata property into array_property. 13194 13195 * graphics.h.in (patch::properties::get_color_data): New utility 13196 function to retrieve actual color data. 13197 * graphics.cc (patch::properties::get_color_data): Likewise. 13198 13199 * graphics.h.in (base_scaler::is_linear, lin_scaler::is_linear, 13200 scaler::is_linear): New method to detect linear scales. 13201 (graphics_xform::scale(Matrix)): New method to scale 2D/3D coordinates 13202 directly. 13203 (patch::properties::facelighting): Set default value to "none". 13204 13205 * graphics.h.in (axes::axes): Be sure to initialize transformation 13206 data correctly. 13207 13208 * graphics.cc (xget_ancestor): Pass graphics_object argument by value 13209 instead of by reference. 13210 13211 * graphics.h.in (surface::properties::xdata, 13212 surface::properties::ydata, surface::properties::zdata, 13213 surface::properties::normalmode, surface::properties::vertexnormals): 13214 Add 'u' modifier. 13215 (surface::properties::update_normals): New method to compute normals 13216 automatically. 13217 (surface::properties::update_xdata, surface::properties::update_ydata, 13218 surface::properties::update_zdata, 13219 surface::properties::update_normalmode, 13220 surface::properties::update_vertexnormals): New updaters to update 13221 normals automatically. 13222 * graphics.cc (surface::properties::update_normals): Likewise. 13223 (cross_product): New inlined utility function for cross product 13224 computation adn accumulation. 13225 13226 * graphics.h.in (class base_scaler, class lin_scaler, class 13227 log_scaler, class scaler): Add scale method for NDArray. 13228 (log_scaler::do_scale): Factorize scaling code. 13229 13230 * graphics.h.in (figure::properties::update_position): Re-remove. 13231 (figure::properties::facecolor): Re-add 'texturemap' value. 13232 (surface::properties::get_color_data): New method to compute actual 13233 surface color data from cdata. 13234 * graphics.cc (surface::properties::get_color_data): Likewise. 13235 (xget_ancestor): New utility function to retrieve an ancestor of a 13236 given type. 13237 (convert_cdata): New utility function to convert cdata property into 13238 actual color data. 13239 13240 * graphics.h.in (surface::properties::facecolor): Add "texturemap" 13241 as possible value. 13242 (class surface::properties): New properties alphadata, 13243 alphadatmapping, ambientstrength, backfacelighting, diffusestrength, 13244 edgealpha, edgelighting, erasemode, facelighting, meshstyle, 13245 normalmode, specularcolorreflectance, specularexponent, 13246 specularstrength, vertexnormals. 13247 (surface::properties::init): Add constraints for alphadata, 13248 vertexnormals and cdata (the latter are commented until cdata 13249 has changed type). 13250 13251 * graphics.h.in (base_properties::update_boundingbox): New method 13252 to handle object resize. 13253 (figure::properties::set_boundingbox): New method to set figure 13254 position from backend. 13255 (figure::properties::update_position): Remove method. 13256 (figure::properties::position): Remove 'u' modifier and add 'S' 13257 modifier. 13258 (axes::properties::update_boundingbox): Overload to recompute 13259 transformation when axes size changed. 13260 * graphics.cc (base_properties::update_boundingbox): New method. 13261 (figure::properties::set_boundingbox, 13262 figure::properties::set_position): Likewise. 13263 13264 * genprops.awk: Add 'U' modifier to support extern updaters. 13265 * graphics.h.in (base_graphics_backend::gripe_invalid): New method 13266 to simplify error reporting. 13267 (class base_graphics_backend): Use it. 13268 (base_graphics_backend::set_figure_position): New backend method. 13269 (graphics_backend::set_figure_position): Likewise. 13270 (figure::properties::position): Mark property with updater. 13271 (figure::properties::update_position): New updater. 13272 13273 * graphics.h.in (root_figure::properties::callbackobject): 13274 New root property. 13275 (root_figure::properties::cbo_stack): New field. 13276 * graphics.cc (xset_gcbo, xreset_gcbo): New utility functions. 13277 (execute_callback): Set callbackobject property in root object 13278 before executing a callback. 13279 (root_figure::properties::set_callbackobject): Implement accessor. 13280 13281 * graphics.h.in (root_figure::properties::callbackobject): 13282 New root property. 13283 (root_figure::properties::cbo_stack): New field. 13284 * graphics.cc (xset_gcbo, xreset_gcbo): New utility functions. 13285 (execute_callback): Set callbackobject property in root object 13286 before executing a callback. 13287 (root_figure::properties::set_callbackobject): Implement accessor. 13288 13289 * graphics.h.in (class root_figure::properties, 13290 class line::properties, class text::properties, 13291 class image::properties, class patch::properties, 13292 class surface::properties): Export classes with 13293 OCTINTERP_API. 13294 13295 * graphics.cc (axes::properties::set_defaults): Use correct 13296 default values for gridlinestyle and minorgridlinestyle. 13297 132982008-06-03 Jaroslav Hajek <highegg@gmail.com> 13299 13300 * load-save.cc (Fload): Fix "-7" option. 13301 133022008-06-02 David Bateman <dbateman@free.fr> 13303 13304 * pt.cc (tree:last_break_function): Next pointer to last function 13305 with a breakpoint. 13306 * pt.h (tree:last_break_function): ditto. 13307 * debug.cc (Fdbstep): Use tree::break_function value of zero to 13308 signal to step into the next function. Set tree::last_break_function 13309 to indicate position of last breakpoint. 13310 (Fdbnext): Set tree::last_break_function to indicate position of 13311 last breakpoint. 13312 * pt-bp.h (MAYBE_DO_BREAKPOINT): Check tree::break_function value 13313 of zero as well. Only check tree::last_line if we are in teh same 13314 function as the last breakpoint. 13315 * input.cc (char Vfilemarker): New global variable. 13316 (Ffilemarker): New function to query and set Vfilemarker. 13317 * input.h (extern char Vfilemarker): Make Vfilemarker available. 13318 * util.cc (fcn_file_in_path): If the input argument contains 13319 Vfilemarker, strip the trailing part of string from this point 13320 when looking for function file. 13321 * toplev.cc (octave_call_stack::fo_backtrace): Mark subfunctions 13322 with the name of the parent function and Vfilemarker. 13323 * symtab.cc (symbol_table::find_function (const std::string&, 13324 tree_argument_list *, const string_vector&, octave_value_list*, 13325 bool&): If function name contains Vfilemarker, check in scope of 13326 specified parent function. 13327 13328 * DLD-FUNCTIONS/betainc.cc: Move test code here. Add test code for 13329 single precision type. 13330 * DLD-FUNCTIONS/gammainc.cc: Ditto. 13331 * DLD-FUNCTIONS/gcd.cc (Fgcd): Support single precision. Move test 13332 code here. Add test code for single precision type. 13333 * data.cc: Move test code here and add tests for single precision 13334 type. Add tests for Fislogical. 13335 (NATIVE_REDUCTION): Support the 'double' argument. 13336 * mapper.cc: Move test code here and add tests for single precision 13337 type. 13338 * ov-float.cc (CD_SCALAR_MAPPER): Replace Complex with 13339 FloatComplex. 13340 (erf, erfc, abs, acos, asin, asinh, atan, atanh, ceil, cos, cosh, 13341 exp, expm1, floor, log10, log1p, sin, sinh, sqrt, tan, tanh): Use 13342 float version of base functions (ie. ::sinf and not ::sin) 13343 (lgamma, acosh, log, log2, log10, log1p): Use single precision 13344 infinity value. 13345 * ov-flt-complex.cc (erf, erfc, expm1, log1p): Use the float 13346 version of base functions. 13347 * ov-flt-cx-mat.cc (DARRY_MAPPER): Replace NDArray with FloatNDArray. 13348 (erf, erdc, gamma): Use FloatNDArray::dmapper and not 13349 NDArray::dmapper. 13350 * ov-flt-cx-mat.h (is_double_type): Delete. 13351 (is_single_type): New method. 13352 * ov-flt-re-mat.cc (lgamma, acosh, log, log2, log10, log1p, 13353 sqrt): Use single precision infinity value. 13354 13355 * chol.cc (Fcholinv, Fchol2inv, Fcholupdate, Fcholinsert, 13356 Fcholdelete, Fcholshift): Allow single precision arguments. 13357 (Fchol): Move test code here. Add test code for single precision. 13358 (Fcholupdate, Fcholinsert, Fcholdelete, Fcholshift): Add test code 13359 for single precision. 13360 * conv2.cc (Fconv2): Add single precision test code. 13361 * det.cc (Fdet): For single values or empty matrices, return 13362 single precision arg for single precion input. Move test code 13363 here. Add single precision test code. 13364 * fft.cc (do_fft): For empty single precision arguments return a 13365 single precision value. Add single precision test code. Remove 13366 fft2 test code. 13367 * fft2.cc (do_fft2): For empty single precision arguments return a 13368 single precision value. Add single precision test code. Move fft2 13369 test code here. 13370 * fftn.cc (do_fftn): For empty single precision arguments return a 13371 single precision value. 13372 * eig.cc (Feig): Move test code here. Add single precision test 13373 code. 13374 * expm.cc (Fexpm): Ditto. 13375 * find.cc (Ffind): Ditto. 13376 * hess.cc (Fhess): Ditto. 13377 * inv.cc (Finc): Ditto. 13378 * lu.cc (Flu): Ditto. 13379 * qr.cc (Fqr): Ditto. 13380 * schur.cc (Fschur): Ditto. 13381 * svd.cc (Fsvd): Ditto. 13382 * syl.cc (Fsyl): Ditto. 13383 13384 * op-fcm-fcm.cc, op-fcm-fcs.cc, op-fcm-fm.cc, op-fcm-fs.cc, 13385 op-fcs-fcm.cc, op-fcs-fcs.cc, op-fcs-fm.cc, op-fcs-fs.cc, 13386 op-fm-fcm.cc, op-fm-fcs.cc, op-fm-fm.cc, op-fm-fs.cc, 13387 op-fs-fcm.cc, op-fs-fcs.cc, op-fs-fm.cc, op-fs-fs.cc: Add mixed 13388 double, single precision concatenation operators. 13389 13390 * data.cc (Fall, Fany, Fdiag, Fcat, Fismatrix, Fones, Fzeros, 13391 Finf, FNaN, FNA, Feye, Flinspace, Freshape, Ftranspose, 13392 Fctranspose, Fsort). Move tests here. Add single precision tests. 13393 * mappers.cc (Ffinite, Fisinf, Fisna, Fisnan): Ditto. 13394 * ov-float.cc (octave_float_scalar:resize): single precision 13395 return value. 13396 * ov.cc (octave_value::octave_value (const 13397 FloatComplexDiagMatrix&)): Ditto. 13398 * data.cc (Fnorm): Add single precision. 13399 (do_cat): Disable fast return and skipping empty matrices, as they 13400 play a part in determining the return type. 13401 * ov.cc (octave_value do_cat_op (const octave_value&, const 13402 octave_value&, const Array<octave_idx_type>&)): ditto. 13403 134042008-06-02 Jaroslav Hajek <highegg@gmail.com> 13405 13406 * ov-cell.cc (Fcellstr): For compatibility with Matlab, return {''} 13407 when given ''. 13408 134092008-05-26 Jaroslav Hajek <highegg@gmail.com> 13410 13411 * DLD-FUNCTIONS/fsolve.cc (fsolve_user_function, 13412 fsolve_user_jacobian): Reshape argument to original dims before 13413 passing. 13414 (Ffsolve): Save original dimensions of the starting guess and reshape 13415 on return. Fix tests. 13416 134172008-05-21 David Bateman <dbateman@free.fr> 13418 13419 * DLD-FUNCTIONS/quad.cc (quad_float_user_function): New function. 13420 (Fquad): Handle float type. 13421 New tests. 13422 134232008-05-21 Jaroslav Hajek <highegg@gmail.com> 13424 13425 * OPERATORS/op-fcm-fcm.cc (trans_mul, mul_trans, herm_mul, mul_herm): 13426 New functions. 13427 (install_fcm_fcm_ops): Install them. 13428 * OPERATORS/op-fm-fm.cc (trans_mul, mul_trans): New functions. 13429 (install_fm_fm_ops): Install them. 13430 13431 * OPERATORS/op-sm-m.cc (trans_mul): New function. 13432 (install_sm_m_ops): Register it. 13433 * OPERATORS/op-m-sm.cc (mul_trans): New function. 13434 (install_m_sm_ops): Register it. 13435 * OPERATORS/op-scm-cm.cc (trans_mul, herm_mul): New function. 13436 (install_scm_cm_ops): Register it. 13437 * OPERATORS/op-cm-scm.cc (mul_trans, mul_herm): New function. 13438 (install_cm_scm_ops): Register it. 13439 13440 * dMatrix.cc: Declare DSYRK. 13441 (xgemm): Call DSYRK if symmetric case detected. 13442 * CMatrix.cc: Declare ZSYRK, ZHERK. 13443 (xgemm): Call ZSYRK/ZHERK if symmetric/hermitian case detected. 13444 13445 * ov.h (octave_value::compound_binary_op): New enum. 13446 (do_binary_op (octave_value::compound_binary_op, ...), 13447 octave_value::binary_op_fcn_name (compound_binary_op), 13448 octave_value::do_binary_op (compound_binary_op, ...)): 13449 New declarations. 13450 (OV_COMP_BINOP_FN): New macro (+ several expansions). 13451 * ov.cc (octave_value::binary_op_fcn_name (compound_binary_op), 13452 decompose_binary_op, do_binary_op (compound_binary_op, ...)): 13453 New functions. 13454 * ov-typeinfo.h (octave_value_typeinfo::register_binary_class_op 13455 (octave_value::compound_binary_op, ...), 13456 octave_value_typeinfo::register_binary_op 13457 (octave_value::compound_binary_op, ...), 13458 octave_value_typeinfo::do_register_binary_class_op 13459 (octave_value::compound_binary_op, ...), 13460 octave_value_typeinfo::do_register_binary_op 13461 (octave_value::compound_binary_op, ...), 13462 octave_value_typeinfo::do_lookup_binary_class_op 13463 (octave_value::compound_binary_op), 13464 octave_value_typeinfo::do_lookup_binary_op 13465 (octave_value::compound_binary_op, ...)): 13466 New declarations. 13467 (octave_value_typeinfo::lookup_binary_class_op 13468 (octave_value::compound_binary_op), 13469 (octave_value_typeinfo::lookup_binary_op 13470 (octave_value::compound_binary_op, ...)): 13471 New functions. 13472 (octave_value_typeinfo::compound_binary_class_ops, 13473 octave_value_typeinfo::compound_binary_ops): 13474 New fields. 13475 * ov-typeinfo.cc (octave_value_typeinfo::register_binary_class_op 13476 (octave_value::compound_binary_op, ...), 13477 octave_value_typeinfo::register_binary_op 13478 (octave_value::compound_binary_op, ...), 13479 octave_value_typeinfo::do_register_binary_class_op 13480 (octave_value::compound_binary_op, ...), 13481 octave_value_typeinfo::do_register_binary_op 13482 (octave_value::compound_binary_op, ...), 13483 octave_value_typeinfo::do_lookup_binary_class_op 13484 (octave_value::compound_binary_op), 13485 octave_value_typeinfo::do_lookup_binary_op 13486 (octave_value::compound_binary_op, ...)): 13487 New functions. 13488 (octave_value::do_register_type): Resize also compound_binary_ops 13489 field. 13490 * pt-exp.h (tree_expression::is_unary_expression): New virtual 13491 function. 13492 * pt-unop.h (tree_unary_expression::is_unary_expression): New virtual 13493 override. 13494 * pt-cbinop.h, pt-cbinop.cc: New files (implement 13495 tree_compound_binary_expression class). 13496 * pt-all.h: Include pt-cbinop.h. 13497 * Makefile.in (PT_INCLUDES, PT_SRC): Include them in the lists. 13498 * parse.y (make_binary_op): Call maybe_compound_binary_expression. 13499 * OPERATORS/op-m-m.cc (trans_mul, mul_trans): New operator handlers. 13500 (install_m_m_ops): Register them. 13501 * OPERATORS/op-cm-cm.cc (trans_mul, mul_trans, herm_mul, mul_herm): 13502 New operator handlers. 13503 (install_cm_cm_ops): Register them. 13504 13505 * DLD-FUNCTIONS/matrix_type.cc: Fix tests relying on the 13506 older more optimistic hermitian check. 13507 135082008-05-21 David Bateman <dbateman@free.fr> 13509 13510 * DLD-FUNCTIONS/rcond.cc (Frcond): Add support for single precision. 13511 13512 * DLD-FUNCTIONS/sqrt.m: Replace DBL_* with FLT_* for single 13513 precision types. 13514 * data.cc (static octave_value fill_matrix (const 13515 octave_value_list&, double, float, const char *)): Add function 13516 with additional argument to allow for different valid for double 13517 and single precision. 13518 (Finf, FNaN, FNA, Frealmax, Frealmin): Use it here. 13519 (Feps): Modify behavior for a single numerical argument to give 13520 difference to next largest value in the class of the type passed. 13521 135222008-05-21 John W. Eaton <jwe@octave.org> 13523 13524 * pt-idx.h (tree_index_expression::tree_index_expression (int, int)): 13525 Delete default argument values. 13526 135272008-05-20 David Bateman <dbateman@free.fr> 13528 13529 * data.cc (Flog2): Handle single precision. 13530 * ov-float.h, ov.float.cc, ov-flt-complex.h, ov-flt-complex.cc, 13531 ov-flt-re-mat.h, ov-flt-re-mat.cc, ov-flt-cx-mat.h, 13532 ov-flt-cx-mat.cc: Provide single precision version of log2 mapper 13533 function. 13534 13535 * DLD-FUNCTIONS/__convn__.cc, DLD-FUNCTIONS/__pchip_deriv__.cc, 13536 DLD-FUNCTIONS/besselj.cc, DLD-FUNCTIONS/betainc.cc, 13537 DLD-FUNCTIONS/conv2.cc, DLD-FUNCTIONS/gammainc.cc, 13538 DLD-FUNCTIONS/givens.cc, DLD-FUNCTIONS/kron.cc, 13539 DLD-FUNCTIONS/lookup.cc, DLD-FUNCTIONS/syl.cc, data.cc: 13540 Prefer demotion to single precision rather than promotion to double. 13541 13542 * ov-float.cc, ov-float.h, ov-flt-complex.cc, ov-flt-complex.h, 13543 ov-flt-cx-mat.cc, ov-flt-cx-mat.h, ov-flt-re-mat.cc, 13544 ov-flt-re-mat.h (numeric_conversion_function (void) const): 13545 Remove method. 13546 13547 * ov-complex.cc, ov-complex.h, ov-cx-mat.cc, ov-cx-mat.h, 13548 ov-re-mat.cc, ov-re-mat.h, ov-scalar.cc, ov-scalar.h 13549 (numeric_conversion_function (void) const): Add method for 13550 conversion to single precision. 13551 13552 * DLD-FUNCTIONS/conv2.cc (Fconv2): Don't access third arg if we 13553 don't have one. 13554 13555 * DLD-FUNCTIONS/balance.cc, DLD-FUNCTIONS/expm.cc, 13556 DLD-FUNCTIONS/find.cc, DLD-FUNCTIONS/hess.cc, 13557 DLD-FUNCTIONS/qr.cc: COnvert for use with single precision. 13558 13559 * OPERATORS/op-int.h, OPERATORS/op-int-conv.cc, 13560 OPERATORS/op-int-concat.cc: Adapt for single precision. 13561 13562 * OPERATORS/op-i8-i8.cc, OPERATORS/op-i16-i16.cc, 13563 OPERATORS/op-i32-i32.cc, OPERATORS/op-i64-i64.cc, 13564 OPERATORS/op-ui8-ui8.cc, OPERATORS/op-ui16-ui16.cc, 13565 OPERATORS/op-ui32-ui32.cc, OPERATORS/op-ui64-ui64.cc: 13566 Add includes for single precision types. 13567 13568 * OPERATORS/op-b-b.cc, OPERATORS/op-b-bm.cc, OPERATORS/op-bm-b.cc, 13569 OPERATORS/op-fcm-fs.cc, OPERATORS/op-fcs-fs.cc, 13570 OPERATORS/op-fm-fs.cc, OPERATORS/op-fs-fcm.cc, 13571 OPERATORS/op-fs-fcs.cc, OPERATORS/op-fs-fm.cc, 13572 OPERATORS/op-fs-fs.cc, OPERATORS/op-int.h, ov.cc, ov-scalar.cc, 13573 ov-float.h, ov-flt-complex.cc, ov-float.cc, ov-flt-re-mat.cc, 13574 ov-flt-cx-mat.cc: Replace octave_float with octave_scalar_float 13575 13576 * OPERATORS/op-fm-fm.cc, OPERATORS/op-fm-fs.cc, 13577 OPERATORS/op-fm-fcm.cc, OPERATORS/op-fm-fcs.cc, 13578 OPERATORS/op-fs-fm.cc, OPERATORS/op-fs-fs.cc, 13579 OPERATORS/op-fs-fcm.cc, OPERATORS/op-fs-fcs.cc, 13580 OPERATORS/op-fcm-fm.cc, OPERATORS/op-fcm-fs.cc, 13581 OPERATORS/op-fcm-fcm.cc, OPERATORS/op-fcm-fcs.cc, 13582 OPERATORS/op-fcs-fm.cc, OPERATORS/op-fcs-fs.cc, 13583 OPERATORS/op-fcs-fcm.cc, OPERATORS/op-fcs-fcs.cc, 13584 OPERATORS/op-m-m.cc, OPERATORS/op-m-s.cc, 13585 OPERATORS/op-m-cm.cc, OPERATORS/op-m-cs.cc, 13586 OPERATORS/op-s-m.cc, OPERATORS/op-s-s.cc, 13587 OPERATORS/op-s-cm.cc, OPERATORS/op-s-cs.cc, 13588 OPERATORS/op-cm-m.cc, OPERATORS/op-cm-s.cc, 13589 OPERATORS/op-cm-cm.cc, OPERATORS/op-cm-cs.cc, 13590 OPERATORS/op-cs-m.cc, OPERATORS/op-cs-s.cc, 13591 OPERATORS/op-cs-cm.cc, OPERATORS/op-cs-cs.cc: 13592 Add mixed single/double assign operators. 13593 13594 * ov.h (numeric_demotion_function): New method for double to 13595 single demotion. 13596 * ov-base.h (numeric_demotion_function): Declare virtual version. 13597 13598 * ov-complex.cc, ov-complex.h, ov-cx-mat.cc, ov-cx-mat.h, 13599 ov-re-mat.cc, ov-re-mat.h, ov-scalar.cc, ov-scalar.h 13600 (numeric_cdemote_function (void) const): Add method for 13601 conversion to single precision renamed from the method 13602 numeric_conversion_function 13603 13604 * ov.cc (do_binary_op): Use demotion function seperately than the 13605 numeric conversion function so as to avoid isses like 13606 a=zeros(2,2);a(1,:)=1:2. 13607 13608 * OPERATORS/op-fcm-fcm.cc, OPERATORS/op-fcm-fcs.cc, 13609 OPERATORS/op-fcm-fm.cc, OPERATORS/op-fcm-fs.cc, 13610 OPERATORS/op-fcs-fcm.cc, OPERATORS/op-fcs-fcs.cc, 13611 OPERATORS/op-fcs-fm.cc, OPERATORS/op-fcs-fs.cc, 13612 OPERATORS/op-fm-fcm.cc, OPERATORS/op-fm-fcs.cc, 13613 OPERATORS/op-fm-fm.cc, OPERATORS/op-fm-fs.cc, 13614 OPERATORS/op-fs-fcm.cc, OPERATORS/op-fs-fcs.cc, 13615 OPERATORS/op-fs-fm.cc, OPERATORS/op-fs-fs.cc, ov-float.cc, 13616 ov-float.h, ov-flt-complex.cc, ov-flt-complex.h, ov-flt-cx-mat.cc, 13617 ov-flt-cx-mat.h, ov-flt-re-mat.cc, ov-flt-re-mat.h: New files. 13618 * Makefile.in (OV_INCLUDES, OV_SRC, OP_XSRC. FLOAT_OP_XSRC, 13619 DOUBLE_OP_XSRC): Add them here. 13620 13621 * DLD-FUNCTIONS/__convn__.cc, DLD-FUNCTIONS/__lin_interpn__.cc, 13622 DLD-FUNCTIONS/__pchip_deriv__.cc, DLD-FUNCTIONS/besselj.cc, 13623 DLD-FUNCTIONS/betainc.cc, DLD-FUNCTIONS/bsxfun.cc, 13624 DLD-FUNCTIONS/chol.cc, DLD-FUNCTIONS/conv2.cc, 13625 DLD-FUNCTIONS/det.cc, DLD-FUNCTIONS/eig.cc, DLD-FUNCTIONS/fft.cc, 13626 DLD-FUNCTIONS/fft2.cc, DLD-FUNCTIONS/fftn.cc, 13627 DLD-FUNCTIONS/fftw.cc, DLD-FUNCTIONS/filter.cc, 13628 DLD-FUNCTIONS/gammainc.cc, DLD-FUNCTIONS/givens.cc, 13629 DLD-FUNCTIONS/inv.cc, DLD-FUNCTIONS/kron.cc, 13630 DLD-FUNCTIONS/lookup.cc, DLD-FUNCTIONS/lu.cc, 13631 DLD-FUNCTIONS/matrix_type.cc, DLD-FUNCTIONS/max.cc, 13632 DLD-FUNCTIONS/pinv.cc, DLD-FUNCTIONS/schur.cc, 13633 DLD-FUNCTIONS/sqrtm.cc, DLD-FUNCTIONS/svd.cc, 13634 DLD-FUNCTIONS/syl.cc, DLD-FUNCTIONS/symbfact.cc, 13635 DLD-FUNCTIONS/typecast.cc, OPERATORS/op-b-b.cc, 13636 OPERATORS/op-b-bm.cc, OPERATORS/op-bm-b.cc, OPERATORS/op-bm-bm.cc, 13637 OPERATORS/op-cm-cm.cc, OPERATORS/op-cs-cs.cc, OPERATORS/op-m-m.cc, 13638 OPERATORS/op-range.cc, OPERATORS/op-s-s.cc, bitfcns.cc, data.cc, 13639 oct-stream.cc, ov-base.cc, ov-base.h, ov-bool-mat.cc, 13640 ov-bool-mat.h, ov-bool.h, ov-ch-mat.cc, ov-ch-mat.h, 13641 ov-complex.cc, ov-complex.h, ov-cx-mat.cc, ov-cx-mat.h, ov-intx.h, 13642 ov-range.cc, ov-range.h, ov-re-mat.cc, ov-re-mat.h, ov-scalar.h, 13643 ov.cc, ov.h, pr-output.cc, pr-output.h, pt-mat.cc, utils.cc, 13644 utils.h, xdiv.cc, xdiv.h, xpow.cc, xpow.h: 13645 Allow single precision types. 13646 136472008-05-20 David Bateman <dbateman@free.fr> 13648 13649 * DLD-FUNCTIONS/rcond.cc: New function. 13650 * Makefile.in (DLD_XSRC): Add it here. 13651 13652 * debug.cc (Fdbstop): If no line specified assume line 1. 13653 (Fdbstep, Fdbcont, Fdbnext): Move debugging functions 13654 to normal commands. 13655 (Fdbquit): New command to quit debugging mode and return to the 13656 prompt. 13657 (Fdbstep): Modify the dbstep command for compatibility. 13658 * input.cc (Vdebugging_current_line): Store current line being 13659 debugged for use in DEFCMD versions of debug commands. 13660 (match_sans_spaces_semi): Delete. 13661 (static void get_debug_input (const std;string&)): New function to 13662 parse input in debug mode using standard Octave parser. 13663 (static octave_value_list get_user_input (const 13664 octave_value_list&, int)): Remove debugging specialization. 13665 * input.h (Vdebugging_current_line): Store current line being 13666 debugged for use in DEFCMD versions of debug commands. 13667 * parse.y (make_return_command): Special handling in debug mode. 13668 * pt-bp.h (MAYBE_DO_BREAKPOINT): Support break in n lines needed 13669 to support "dbstep N". 13670 * pt.cc (tree::break_next): Convert to a down counter to support 13671 break in N lines. Breakpoint occure when tree::break_next is zero. 13672 * toplev.cc (octave_user_script * 13673 octave_call_stack::do_caller_user_script (difference_type) const): 13674 Support skipping the first N functions to support "dbstep out". 13675 (octave_user_function * octave_call_stack::do_caller_user_function 13676 (difference_type) const): Ditto. 13677 (octave_user_code * octave_call_stack::do_caller_user_code 13678 (difference_type) const): Ditto. 13679 * toplev.h (octave_user_script * 13680 octave_call_stack::do_caller_user_script (difference_type) const): 13681 Add difference_type argument. 13682 (octave_user_function * octave_call_stack::do_caller_user_function 13683 (difference_type) const): Ditto. 13684 (octave_user_code * octave_call_stack::do_caller_user_code 13685 (difference_type) const): Ditto. 13686 (static octave_user_script *caller_script (difference_type)): 13687 Ditto. 13688 (static octave_user_function *caller_user_function 13689 (difference_type q)): Ditto. 13690 (static octave_user_code *caller_user_code (difference_type q)): 13691 Ditto. 13692 136932008-05-20 Kim Hansen <kimhanse@gmail.com> 13694 13695 * load-path.cc (load_path::do_initialize): 13696 Include separator when appending sys_path. 13697 136982008-05-20 Bill Denney <bill@denney.ws> 13699 13700 * file-io.cc (Ffgets, Fgets, Ffputs, Ffscanf): Doc fix (seealso). 13701 137022008-05-20 Thomas Weber <thomas.weber.mail@gmail.com> 13703 13704 * DLD-FUNCTIONS/rand.cc (Frandn): Doc fix. 13705 137062008-05-20 David Bateman <dbateman@free.fr> 13707 13708 * load-save.cc (do_load): Treat non verbose list_only output in 13709 the same manner as Fwho. 13710 * symtab.h (static void clear_variable_regexp (const 13711 std::string&): New method. 13712 (static std::list<symbol_record> regexp (const std::string&)): Ditto. 13713 (static std::list<symbol_record> regexp_variables (const 13714 std::string&)): Ditto. 13715 (static std::list<symbol_record> regexp_global_variables (const 13716 std::string&)): Ditto, 13717 (static std::list<symbol_record> regexp_variables (const 13718 string_vector&)): Ditto. 13719 (void do_clear_variable_regexp (const std::string&)): Ditto. 13720 (std::list<symbol_record> do_regexp (const std::string&, bool) 13721 const): Ditto. 13722 (do_who): Accept the "-regexp" option. Use regexp versions of 13723 symbol table functions. 13724 (static inline bool name_match_any_pattern (const string_vector&, 13725 int, int, bool): Add regexp argument, and use regexp matching if 13726 true. 13727 (do_clear_variables): Add regexp option and pass to 13728 name_match_any_pattern. 13729 (Fclear): Accept the -regexp option. 13730 137312008-05-07 John W. Eaton <jwe@octave.org> 13732 13733 * pt-arg-list.cc, pt-arg-list.h (tree_argument_list::dup): 13734 New arg, context. 13735 * pt-assign.cc, pt-assign.h (tree_simple_assignment::dup, 13736 tree_multi_assignment::dup): Likewise. 13737 * pt-binop.cc, pt-binop.h (tree_binary_expression::dup, 13738 tree_boolean_expression::dup): Likewise. 13739 * pt-cell.cc, pt-cell.h (tree_cell::dup): Likewise. 13740 * pt-cmd.cc, pt-cmd.h (tree_no_op_command::dup, 13741 tree_function_def::dup): Likewise. 13742 * pt-colon.cc, pt-colon.h (tree_colon_expression::dup): Likewise. 13743 * pt-const.cc, pt-const.h (tree_constant::dup): Likewise. 13744 * pt-decl.cc, pt-decl.h (tree_decl_elt::dup, tree_decl_init_list::dup, 13745 tree_global_command::dup, tree_static_command::dup): Likewise. 13746 * pt-except.cc, pt-except.h (tree_try_catch_command::dup, 13747 tree_unwind_protect_command::dup): Likewise. 13748 * pt-exp.h (tree_expression:dup): Likewise. 13749 * pt-fcn-handle.cc, pt-exp.h (tree_expression:dup): Likewise. 13750 * pt-fcn-handle.h (tree_fcn_handle::dup, 13751 tree_anon_fcn_handle::dup): Likewise. 13752 * pt-id.cc, pt-id.h (tree_identifier::dup): Likewise. 13753 * pt-idx.cc, pt-idx.h (tree_index_expression::dup): Likewise. 13754 * pt-jump.cc, pt-jump.h (tree_break_command::dup, 13755 tree_continue_command::dup, tree_return_command::dup): Likewise. 13756 * pt-loop.cc, pt-loop.h (tree_while_command::dup, 13757 tree_do_until_command::dup, tree_simple_for_command::dup, 13758 tree_complex_for_command::dup): Likewise. 13759 * pt-mat.cc, pt-mat.h (tree_matrix::dup): Likewise. 13760 * pt-misc.cc, pt-misc.h (tree_parameter_list::dup, 13761 tree_return_list::dup): Likewise. 13762 * pt-select.cc, pt-select.h (tree_if_clause::dup, 13763 tree_if_command_list::dup, tree_if_command::dup, 13764 tree_switch_case::dup, tree_switch_case_list::dup, 13765 tree_switch_command::dup, tree_statement::dup, 13766 tree_statement_list::dup, tree_prefix_expression::dup, 13767 tree_postfix_expression::dup): Likewise. 13768 13769 * ov-fcn-handle.cc (octave_fcn_handle::save_ascii, 13770 octave_fcn_handle::save_binary, octave_fcn_handle::save_hdf5): 13771 Pass context to symbol_table::all_variables. 13772 * load-save.cc (dump_octave_core): Likewise. 13773 * ov-fcn-handle.cc (Ffunctions): Don't skip anonymous functions 13774 with the name set to the text of the function body. 13775 Pass context to symbol_table::all_variables and 13776 symbol_table::symbol_record::varval. 13777 13778 * symtab.h (symbol_table::varref, symbol_table::do_varref, 13779 symbol_table::varval, symbol_table::do_varval, 13780 symbol_table::all_variables, symbol_table::do_all_variables, 13781 symbol_table::symbol_record::varref, 13782 symbol_table::symbol_record::varval, 13783 symbol_table::symbol_record::is_defined, 13784 symbol_table::symbol_record::is_variable, 13785 symbol_table::symbol_record::symbol_record_rep::varref, 13786 symbol_table::symbol_record::symbol_record_rep::varval, 13787 symbol_table::symbol_record::symbol_record_rep::is_defined, 13788 symbol_table::symbol_record::symbol_record_rep::is_variable, 13789 ): 13790 * symtab.h (symbol_table::do_inherit): New arg, donor_context. 13791 Look for value in donor_contxt. Set value in base context. 13792 * symtab.cc (symbol_table::symbol_record::symbol_record_rep::dump): 13793 Pass xcurrent_context to varval. 13794 137952008-05-06 David Bateman <dbateman@free.fr> 13796 13797 * ov-fcn-inline.cc (Finline): Also ignore NaN, Inf, pi, NA and eps. 13798 13799 * bitfcns.cc (BITOP): Treat octave_bool types and octave_scalar. 13800 138012008-05-06 John W. Eaton <jwe@octave.org> 13802 13803 * symtab.h (symbol_table::scope_id_cache): New class. Use it to 13804 replace scope_ids_in_use and scope_ids_free_list. 13805 (symbol_table::erase_scope): Call free_scope. 13806 (symbol_table::free_scope): Call scope_id_cache::free. 13807 13808 * ov-fcn.h (octave_function::lock_subfunctions, 13809 octave_function::unlock_subfunctions): New virtual functions. 13810 (octave_function::lock_subfunctions): Call lock_subfunctions here. 13811 (octave_function::unlock_subfunctions): Call unlock_subfunctions here. 13812 * ov-usr-fcn.h (octave_user_function::lock_subfunctions, 13813 octave_user_function::unlock_subfunctions): New functions. 13814 13815 * symtab.h (symbol_table::lock_subfunctions, 13816 symbol_table::lock_subfunctions, 13817 symbol_table::fcn_info::lock_subfunction, 13818 symbol_table::fcn_info::unlock_subfunction, 13819 symbol_table::fcn_info::fcn_info_rep::lock_subfunction, 13820 symbol_table::fcn_info::fcn_info_rep::unlock_subfunction): 13821 New functions. 13822 13823 * symtab.h (symbol_table::set_scope, symbol_table::get_instance): 13824 Don't set instance unless allocation succeeds. 13825 (symbol_table::print_scope, symbol_table::do_print_scope): Delete. 13826 (symbol_table::free_scope): Avoid using invalid iterator. 13827 (symbol_table::erase_scope): Call free_scope here. 13828 13829 * ov-fcn-handle.cc (octave_fcn_handle::load_ascii, 13830 octave_fcn_handle::load_binary, octave_fcn_handle::load_hdf5): 13831 Cache anonymous name here. 13832 (octave_fcn_handle::octave_fcn_handle): Move here from 13833 ov-fcn-handle.h. Cache name if function is user-defined. 13834 13835 * pt-id.cc (tree_identifier::dup): Avoid shadow warning. 13836 13837 * symtab.h (symbol_table::cache_name, symbol_table::do_cache_name): 13838 New functions. 13839 (symbol_table::get_instance): Cache top-level name here. 13840 * parse.y (finish_function): Call symbol_table::cache_name here. 13841 13842 * symtab.cc (F__dump_symtab_info__): New function. 13843 13844 * symtab.cc (symbol_table::dump, symbol_table::dump_global, 13845 symbol_table::dump_functions, symbol_table::do_dump, 13846 symbol_table::symbol_record::symbol_record_rep::dump, 13847 symobl_table::fcn_info::fcn_info_rep::dump): New functions. 13848 * symtab.h: Provide decls. 13849 (symtab::scopes, symbol_table::symbol_record::dump, 13850 symbol_table::fcn_info::dump): New functions. 13851 (symtab::get_instance): New arg, create; if false throw error if 13852 instance for given scope is not found. 13853 13854 * ov-base.cc (octave_base_value::dump): New virtual function. 13855 * ov-base.h: Proivde decl. 13856 * ov.h (octave_value::dump): New function. 13857 13858 * ov.h, ov.c (octave_value::function_value): New const version. 13859 * ov-base.h, ov-base.cc (octave_base_value::function_value): Likewise. 13860 * ov-builtin.h (octave_builtin::function_value): Likewise. 13861 * ov-fcn-handle.h (octave_fcn_handle::function_value): Likewise. 13862 * ov-mex-fcn.h (octave_mex_function::function_value): Likewise. 13863 * ov-usr-fcn.h (octave_user_script::function_value, 13864 octave_user_function): Likewise. 13865 13866 * symtab.h, symtab.cc: Use consistent naming scheme for iterator 13867 typedefs. Change all uses. 13868 13869 * variables.cc (F__print_symtab_info__, F__print_symbol_info__): 13870 Delete. 13871 13872 * ov-cell.cc (Fstruct2cell): Handle structure arrays properly. 13873 138742008-05-05 David Bateman <dbateman@free.fr> 13875 13876 * sysdep.cc (Fputenv): Allow single arg. Alias to setenv. 13877 138782008-05-05 John W. Eaton <jwe@octave.org> 13879 13880 * input.cc (Fre_read_readline_init_file): New function. 13881 138822008-05-04 John W. Eaton <jwe@octave.org> 13883 13884 * ov-fcn-handle.cc (Ffunctions): Pass octave_value object instead 13885 of Cell in structure field assignment. 13886 13887 * parse.y (frob_function): Don't install subfunctions here. 13888 (finish_function): Handle subfunctions here. 13889 Conditionally define tree_function_def object here. 13890 13891 * symtab.h (symbol_table::fcn_info::fcn_info_rep::find_function): 13892 Initialize args_evaluated. 13893 * pt-id.cc (tree_identifier::rvalue): Likewise. 13894 * variables.cc (symbol_exist): Likewise. 13895 13896 * pt-id.h (tree_identifier::tree_identifer): Delete useless statement. 13897 13898 * variables.cc (get_global_value): Use symbol_table::global_varval 13899 instead of passing scope to symbol_table::varval. 13900 (set_global_value): Use symbol_table::global_varref 13901 instead of passing scope to symbol_table::varref. 13902 (do_who): Use symbol_table::glob_global_variables 13903 instead of passing scope to symbol_table::glob_variables. 13904 (do_clear_globals): 13905 Use symbol_table::global_variable_names and 13906 symbol_table::clear_global instead of passing scope to 13907 symbol_table::clear_variables. 13908 Use symbol_table::global_variable_names instead of passing scope 13909 to symbol_table::variable_names. 13910 13911 * unwind-prot.cc (unwind_protect::save_size_t): New function. 13912 (saved_variable::restore_value): Handle size_t values. 13913 (saved_variable::saved_variable): New size_t constructor. 13914 (saved_variable::size_type): New var_type enum value. 13915 (saved_variable::ptr_to_size_t, saved_variable::size_t_value): 13916 New union elements. 13917 * unwind-prot.h (unwind_protect::save_size_t): Provide decl 13918 (unwind_protect_size_t): New macro. 13919 13920 * toplev.cc (octave_call_stack::do_goto_frame, 13921 octave_call_stack::do_goto_frame_relative): New functions. 13922 (octave_call_stack::do_backtrace): Also return scope and context ids. 13923 * toplev.h (octave_call_stack::do_goto_frame, 13924 octave_call_stack::do_goto_frame_relative): Provide decls. 13925 (octave_call_stack::curr_frame): New data member. 13926 (octave_call_stack::octave_call_stack): Initialize it. 13927 (octave_call_stack::call_stack_elt::scope, 13928 (octave_call_stack::call_stack_elt::context): New data members., 13929 (octave_call_stack::current_frame, 13930 (octave_call_stack::do_current_frame 13931 octave_call_stack::do_goto_frame, 13932 octave_call_stack::do_goto_frame_relative): New functions. 13933 (octave_call_stack::push, octave_call_stack::do_push): 13934 New args, scope and context. 13935 (octave_call_stack::do_push, octave_call_stack::do_pop): Update 13936 curr_frame if debugging. 13937 13938 * symtab.cc (symbol_table::global_table): New map for global values. 13939 (symbol_table::xcurrent_context): New variable for context info. 13940 * symtab.h: Provide decls. 13941 (symbol_table::global_varref, symbol_table::global_varval, 13942 symbol_table::current_context, 13943 symbol_table::set_scope_and_context, 13944 symbol_table::glob_global_variables, 13945 symbol_table::global_variable_names, 13946 symbol_table::top_leve_variable_names): 13947 New functions. 13948 (symbol_table::context_id, const_global_table_iterator, 13949 global_table_iterator): New typedefs. 13950 (symbol_table::xcurrent_context_this_table): New variable. 13951 (symbol_table::symbol_table): Initialize it. 13952 (symbol_table::set_scope): Use it. 13953 (symbol_table::symbol_record::find, symbol_table::do_find): 13954 Use symbol_table::global_varref instead of passing scope to 13955 symbol_table::varref. 13956 (symbol_table::symbol_record::symbol_record_rep::value_stack): 13957 Now a std::deque instead of a std::stack. 13958 (symbol_table::symbol_record::symbol_record_rep::push_context, 13959 symbol_table::symbol_record::symbol_record_rep::pop_context): 13960 Don't push or pop persistent of global variables. 13961 (symbol_table::symbol_record::symbol_record_rep::varval, 13962 Handle context here. Call symbol_table::global_varval instead of 13963 passing scope to symbol_table::varval. 13964 (symbol_table::symbol_record::symbol_record_rep::varref): 13965 Handle context here. Call symbol_table::global_varref instead of 13966 passing scope to symbol_table::varref. 13967 (symbol_table::symbol_record::varref, 13968 symbol_table::symbol_record::varval): No need to handle global 13969 values specially here. 13970 (symbol_table::symbol_record::push_context 13971 symbol_table::symbol_record::pop_context: No need to handle global 13972 or persistent values specially here. 13973 (symbol_table::get_instance): Don't return global scope. 13974 (symbol_table::do_push_context, symbol_table::do_pop_context): 13975 Increment/decrement xcurrent_context. 13976 (symbol_table::do_clear_global, symbol_table::do_clear_global_pattern): 13977 Use global_table instead of separate scope. 13978 13979 * symtab.h, symtab.cc (symbol_table::fcn_info::fcn_info_rep::find, 13980 symbol_table::fcn_info::fcn_info_rep::find_function, 13981 symbol_table::fcn_info::find, symbol_table::fcn_info::find_function, 13982 symbol_table::find, symbol_table::find_function, 13983 symbol_table::do_find, symbol_table::insert, symbol_table::varref, 13984 symbol_table::varval, symbol_table::persistent_varref, 13985 symbol_table::persistent_varval, symbol_table::erase_persistent, 13986 symbol_table::is_variable, symbol_table::clear, 13987 symbol_table::clear_variables, symbol_table::clear_global, 13988 symbol_table::clear_variable, symbol_table::clear_global_pattern, 13989 symbol_table::clear_variable_pattern, symbol_table::push_context, 13990 symbol_table::pop_context, symbol_table::mark_hidden, 13991 symbol_table::mark_global, symbol_table::glob, 13992 symbol_table::glob_variables, symbol_table::variable_names, 13993 symbol_table::is_local_variable, symbol_table::is_global): 13994 Eliminate scope arg. Change all uses. 13995 (symbol_table::erase_scope, symbol_table::dup_scope): 13996 Require scope arg. 13997 13998 * pt-stmt.cc (tree_statement::eval): Don't update statement info 13999 in octave_call_stack if debugging. 14000 14001 * pt-id.h (tree_identifier::xsym): New function. 14002 (tree_identifier::rvalue, tree_identifier::lvalue, 14003 tree_identifier::dup, tree_identifier::is_defined, 14004 tree_identifier::is_variable, tree_identifier::mark_global, 14005 tree_identifier::mark_as_static, tree_identifier::do_lookup, 14006 tree_identifier::mark_as_formal_parameter): 14007 Use xsym to access symbol. 14008 (tree_identifier::scope): New data member. 14009 (tree_identifier::tree_identifier): Initialize it. 14010 14011 * ov-usr-fcn.cc (octave_user_script::octave_user_script, 14012 octave_user_function::octave_user_function): 14013 Initialize call_depth to -1. 14014 (octave_user_script::do_multi_index_op): Fix comparison of 14015 call_depth with Vmax_recursion_depth. 14016 (octave_user_function::do_multi_index_op): 14017 Compare call depth > 0, instead of > 1. 14018 * ov-usr-fcn.h (octave_user_function::save_args_passed): 14019 Compare call depth > 0, instead of > 1. 14020 14021 * input.cc (Vdebugging): New variable. 14022 (get_user_input): Eliminate DEBUG argument. Use global Vdebugging 14023 variable instead. Change all callers. 14024 (saved_frame): New static variable. 14025 (restore_frame): New function. 14026 (do_keyboard): Unwind-protect Vdebugging here and set it to TRUE. 14027 Save current frame. Use unwind_protect to restore it. 14028 (Fkeyboard): Save current frame. Use unwind_protect to restore it. 14029 Move up the call stack one frame before calling do_keyboard. 14030 * input.h (Vdebugging): Provide decl. 14031 14032 * mex.cc (mexGetVariable): Handle global vars with get_global_value. 14033 (mexPutVariable): Likewise, with set_global_value. 14034 14035 * octave.cc (intern_argv): Assert that we are at the top level. 14036 Don't pass scope to symbol_table::varref or symbol_table::mark_hidden. 14037 14038 * load-save.cc (install_loaded_variable): Use 14039 symbol_table::global_varref instead of passing global scope to 14040 symbol_table::varref. 14041 14042 * help.cc (make_name_list): Call symbol_table::global_variable_names 14043 and symbol_table::top_level_variable_names instead of passing 14044 scope to symbol_table::variable_names. 14045 14046 * debug.cc (do_dbupdown, Fdbup, Fdbdown): New functions. 14047 (current_stack_frame): Delete static variable. 14048 (Fdbstack): Rename from F__dbstack__. Implement all of dbstack 14049 here instead of partially in dbstack.m. 14050 140512008-05-03 John W. Eaton <jwe@octave.org> 14052 14053 * pt-arg-list.cc (F__end__): If there are more dimensions than 14054 indices, smash extra dimensions first. 14055 (num_indices): New static variable. 14056 (tree_argument_list::convert_to_const_vector): Save and set it. 14057 14058 * parse.y (parse_fcn_file): Also temporarily set parser_end_of_input 14059 and get_input_from_eval_string to false while reading script files. 14060 140612008-05-01 John W. Eaton <jwe@octave.org> 14062 14063 * parse.y (load_fcn_from_file): Expect 14064 * dynamic-ld.cc (octave_dynamic_loader::do_load_oct): 14065 Search currently loaded .oct files by file name. Don't search 14066 currently loaded files for functions. 14067 (octave_shlib_list::find_file, octave_shlib_list::do_find_file): 14068 New functions. 14069 (octave_shlib_list::search, octave_shlib_list::do_search): Delete. 14070 14071 * dynamic-ld.cc (octave_dynamic_loader::do_load_oct): No need to 14072 do load_path lookups here. 14073 (octave_shlib_list::iterator, octave_shlib_list::const_iterator): 14074 New typedefs. 14075 (octave_shlib_list::do_remove, octave_shlib_list::do_search, 14076 octave_shlib_list::do_display): Use them. 14077 (octave_mex_file_list::iterator, octave_mex_file_list::const_iterator): 14078 New typedefs. 14079 (octave_mex_file_list::do_remove): Use them. 14080 140812008-05-03 Rafael Laboissiere <rafael@debian.org> 14082 14083 * DLD-FUNCTIONS/time.cc, file_io.cc: Use ischar instead of 14084 deprecated isstr. 14085 140862008-04-30 John W. Eaton <jwe@octave.org> 14087 14088 * dynamic-ld.cc (octave_dynamic_loader::do_load_oct): 14089 If function already exists, reload it anyway. Clear existing 14090 oct_file only if reloading a function from the same file. 14091 (octave_shlib_list::display): New static function. 14092 (octave_shlib_list::do_display): New function. 14093 14094 * symtab.cc (out_of_date_check_internal): Better handling for 14095 functions found in files by relative file names. 14096 (load_out_of_date_fcn): New function. 14097 14098 * ls-oct-ascii.cc (extract_keyword): Return early if first char is 14099 not a comment character. 14100 (read_ascii_data): Accept .nargin. and .nargout. as valid identifiers. 14101 14102 * ov-fcn-handle.cc: Combine tests. Test saving and loading 14103 handles for built-in, .oct, and .m functions. 14104 (octave_fcn_handle::save_ascii, octave_fcn_handle::save_binary, 14105 octave_fcn_handle::save_hdf5, octave_fcn_handle::print): 14106 Avoid dereferencing invalid pointer. 14107 14108 * data.cc: Fix tests. Use "%!assert", not "%! assert" for 14109 individual assert tests. 14110 141112008-04-30 Jaroslav Hajek <highegg@gmail.com> 14112 14113 * ov-base.cc, ov-base.h, ov-bool-mat.h, ov-bool-sparse.h, 14114 ov-bool.h, ov-complex.cc, ov-complex.h, ov-cx-mat.cc, ov-cx-mat.h, 14115 ov-cx-sparse.cc, ov-cx-sparse.h, ov-intx.h, ov-range.h, 14116 ov-re-mat.cc, ov-re-mat.h, ov-re-sparse.cc, ov-re-sparse.h, 14117 ov-scalar.cc, ov-scalar.h, ov.h: 14118 Provide log2 mapper function. 14119 * data.cc (Flog2): New function. 14120 141212008-04-25 John W. Eaton <jwe@octave.org> 14122 14123 * pt-stmt.h (tree_statement_list::function_body): New data member. 14124 (tree_statement_list::tree_statement_list): Initialize it. 14125 (tree_statement_list::mark_as_script_body): New function. 14126 (tree_statement::maybe_echo_code, tree_statement::eval): 14127 Rename in_function_body argument to in_function_or_script_body. 14128 * pt-stmt.cc (tree_statement::eval): Only set statement in call 14129 stack if in_function_or_script_body is true. 14130 14131 * pt-stmt.cc (tree_statement_list::eval): Call elt->eval with 14132 function_body || script_body. 14133 * ov-usr-fcn.cc (octave_user_script::octave_user_script): 14134 command list as script body here. 14135 (octave_user_function::octave_user_function): 14136 Mark command list as function body here. 14137 * parse.y (start_function, make_anon_fcn_handle): Not here. 14138 14139 * toplev.h, toplev.cc (octave_call_stack::backtrace, 14140 octave_call_stack::do_backtrace): New arg, N. Skip innermost N 14141 stack frames. 14142 14143 * debug.cc (F__dbstack__): New function. 14144 (current_stack_frame): New static variable. 14145 14146 * error.cc (verror, pr_where): Use octave_call_stack instead of 14147 tree_statement stack to get line and column information. 14148 (pr_where): Use octave_call_stack instead of tree_statement stack 14149 to get current statement. 14150 * input.cc (get_user_input): Extract current line number from 14151 octave_call_stack instead of tree_statement_stack. 14152 * pt-stmt.cc (tree_statement::eval): Put current statement on 14153 octave_call_stack instead of tree_statement_stack. 14154 * pt-stmt.h, pt-stmt.cc (class tree_statement_stack): Delete. 14155 14156 * toplev.h, toplev.cc (octave_call_stack::call_stack_elt): 14157 New nested struct. 14158 (octave_call_stack::cs): Now a deque of call_stack_elts. 14159 Change all uses. 14160 (octave_call_stack::current_statement, 14161 octave_call_stack::current_line, 14162 octave_call_stack::current_column, 14163 octave_call_stack::top_statement, 14164 octave_call_stack::set_statement, octave_call_stack::backtrace): 14165 New static functions. 14166 (octave_call_stack::do_current_line, 14167 octave_call_stack::do_current_column, 14168 octave_call_stack::do_top_statement, 14169 octave_call_stack::do_set_statement, 14170 octave_call_stack::do_backtrace): New member functions. 14171 141722008-04-24 John W. Eaton <jwe@octave.org> 14173 14174 * toplev.h, toplev.cc (octave_call_stack::unwind_pop_script): 14175 Delete unused function. 14176 14177 * ov-usr-fcn.cc: Move constructor definitions here, from ov-usr-fcn.h. 14178 * ov-usr-fcn.h (octave_user_script::octave_user_script): 14179 Also Initialize t_parsed and t_checked. 14180 141812008-04-24 Jaroslav Hajek <highegg@gmail.com> 14182 14183 * ov-usr-fcn.h (octave_user_script::octave_user_script): 14184 Initialize call_depth. 14185 141862008-04-24 John W. Eaton <jwe@octave.org> 14187 14188 * file-io.cc (do_stream_open): Return -1 for directories. 14189 141902008-04-23 John W. Eaton <jwe@octave.org> 14191 14192 * DLD-FUNCTIONS/__qp__.cc (qp): Avoid bounds error when removing 14193 constraint from active set. 14194 14195 * lex.l (text_yyinput): New function. Use it in place of yyinput. 14196 (next_token_is_sep_op, scan_for_comments, eat_whitespace, 14197 have_continuation): No need to check for CR or CRLF. 14198 * parse.y (text_getc): Also return NL for single CR. 14199 142002008-04-32 Michael Goffioul <michael.goffioul@gmail.com> 14201 14202 * input.cc (get_input_from_file): Open file in binary mode. 14203 142042008-04-20 John W. Eaton <jwe@octave.org> 14205 14206 * oct-stream.cc (octave_stream::read): Allow single data type 14207 specification but return double. 14208 142092008-04-18 John W. Eaton <jwe@octave.org> 14210 14211 * lex.l, lex.h (process_comment): New arg, start_in_block. Call 14212 grab_block_comment if start_in_block is true. Change all uses. 14213 * lex.l (grab_block_comment): New function. 14214 (grab_comment_block): New arg, at_bol. Change all uses. 14215 Call grab_block_comment if we find the start of a block comment. 14216 (block_comment_nesting_level): New static variable. 14217 (^{S}*{CCHAR}\{{S}*{NL}): New rule. 14218 (<<EOF>>): Warn about open block comments. 14219 (reset_parser): Set block_comment_nesting_level to zero. 14220 * parse.y (parse_fcn_file): Stash help text from 14221 gobble_leading_white_space after calling reset_parser. 14222 (text_getc): Keep track of input_line_number here. 14223 (skip_white_sapce): Don't increment input_line_number here. 14224 * lex.l (grab_comment_block): Or here. 14225 14226 * lex.l (Vdisplay_tokens): New static variable. 14227 (F__display_tokens__): New function. 14228 (display_token): New function. 14229 (DISPLAY_TOK_AND_RETURN): New macro. 14230 (COUNT_TOK_AND_RETURN): Use DISPLAY_TOK_AND_RETURN. 14231 (<COMMAND_START>[\"\'], "'", \"): Move handle_string outside of 14232 COUNT_TOK_AND_RETURN macro parameter list. 14233 (handle_identifier): Don't use macros to return token values here. 14234 (<MATRIX_START>{S}*{COMMENT}{SNLCMT}*|<MATRIX_START>{S}*{NL}{SNLCMT}*): 14235 Recognize block comments here. 14236 14237 * pr-output.cc (Fdisp): If nargout > 0, produce an sq-string 14238 unless arg is a dq-string. 14239 142402008-04-17 John W. Eaton <jwe@octave.org> 14241 14242 * parse.y (looks_like_copyright): Handle leading whitespace. 14243 (class stdio_stream_reader): New class. 14244 (skip_white_space): New function. 14245 (gobble_leading_white_space): New arg, EOF. Change all uses. 14246 Use skip_white_space and grab_comment_block to process comments. 14247 (process_leading_comments): Delete. 14248 (parse_fcn_file): Call gobble_leading_white_space instead of 14249 process_leading_comments. 14250 Skip parsing if gobble_leading_white_space detects EOF. 14251 * lex.l (process_comment): Delete CCHAR arg. Change all uses. 14252 ({CCHAR}): Unput comment character before calling process_comment. 14253 (grab_comment_block): Rename from grab_help_text. Don't discard 14254 spaces from comment text. Update input_line_number and 14255 current_input_column as characters are read. Warn only once about 14256 incompatible comment characters in a given block of comments. 14257 Use stream_reader class instead of accessing yyinput and yyunput 14258 directly. 14259 (class flex_stream_reader): New class. 14260 (process_comment): Use grab_comment_block to handle all comments. 14261 Don't call maybe_gripe_matlab_incompatible_comment. 14262 Always store comment text returned by grab_comment_block. 14263 * lex.h (grab_comment_block): Provide decl. 14264 (class stream_reader): New class. 14265 142662008-04-16 John W. Eaton <jwe@octave.org> 14267 14268 * parse.y (Fautoload, Fmfilename): Call 14269 octave_call_stack::caller_user_code, not 14270 octave_call_stack::caller_user_script_or_function. 14271 * toplev.cc, toplev.h (octave_call_stack::caller_user_code): 14272 Rename from octave_call_stack::caller_user_script_or_function. 14273 (octave_call_stack::do_caller_user_code): Rename from 14274 octave_call_stack::do_caller_user_script_or_function. 14275 * ov-usr-fcn.h (class octave_user_code): New class, derived from 14276 octave_fucntion. 14277 (class octave_user_function, class octave_user_script): Derive 14278 from octave_user_code, not octave_function. 14279 (octave_user_script::user_code_value, 14280 octave_user_function::user_code_value): New functions. 14281 * ov.cc (octave_value::user_script_value, 14282 octave_value::user_code_value): New functions. 14283 * ov.h: Provide decls. 14284 (octave_value::is_user_code, octave_value::is_user_script): 14285 New functions. 14286 * ov-base.cc (octave_base_value::user_script_value, 14287 octave_base_value::user_code_value): New virutal functions. 14288 * ov-base.h: Provide decls. 14289 (octave_base_value::is_user_script, octave_base_value::is_user_code): 14290 New virtual functions. 14291 * error.cc (verror, pr_where, error_2, warning_1): 14292 Call octave_call_stack::caller_user_code instead of 14293 octave_call_stack::caller_user_script_or_function 14294 * input.cc (get_user_input): Likewise. 14295 * debug.h (bp_table::breakpoint_map): Use pointer to 14296 octave_user_code instead of octave_user_function. 14297 * debug.cc (get_user_code): Rename from get_user_function. 14298 Return pointer to octave_user_code instead of octave_user_function. 14299 Change all uses. 14300 (bp_table::do_add_breakpoint, bp_table::do_remove_breakpoint, 14301 bp_table::do_remove_all_breakpoints_in_file, 14302 bp_table::do_get_breakpoint_list): 14303 Avoid dereferencing invalid pointers. 14304 (parse_dbfunction_params): Call 14305 octave_call_stack::caller_user_code, not 14306 octave_call_stack::caller_user_script_or_function. 14307 14308 * load-save.cc (Fsave): Fix continuation character in doc string. 14309 14310 * pt-walk.h (tree_walker::visit_function_def): New function. 14311 * pt-pr-code.cc (tree_print_code::visit_function_def): New function. 14312 * pt-pr-code.h: Provide decl. 14313 * pt-bp.cc (tree_breakpoint::visit_function_def): New function. 14314 * pt-bp.h: Provide decl. 14315 * pt-check.cc (tree_checker::visit_function_def): New function. 14316 * pt-check.h: Provide decl. 14317 14318 * parse.y (finish_function): Return ptr to tree_function_def object 14319 if curr_fcn_ptr is not defined. Avoid dereferencing invalid pointers. 14320 (frob_function): Set curr_fcn_ptr only when reading a function file. 14321 (function): Call finish function in both cases to generate value 14322 of production. 14323 14324 * pt-cmd.h, pt-cmd.cc (tree_function_def): New class. 14325 14326 * parse.y (parse_and_execute): Delete. 14327 * parse.h: Delete decl. 14328 14329 * pt-pb.cc (tree_breakpoint::visit_octave_user_script): New function. 14330 * pt-pb.h: Provide decl. 14331 * pt-check.cc (tree_checker::visit_octave_user_script): New function. 14332 * pt-check.h: Provide decl. 14333 * pt-pr-code.cc (tree_print_code::visit_octave_user_script): 14334 New function. 14335 * pt-pr-code.h: Provide decl. 14336 * pt-walk.h (visit_octave_user_script): New pure virtual function. 14337 14338 * parse.y (make_script, process_leading_comments, 14339 looking_at_function_keyword): New static functions. 14340 (SCRIPT): New token. 14341 (script): New non-terminal. 14342 (command): Handle script here. 14343 (parse_fcn_file): Eliminate EXEC_SCRIPT argument. Change all 14344 callers. Parse scripts and return an octave_user_script rather 14345 than executing them here. 14346 (load_fcn_from_file): Handle script and function files the same. 14347 (source_file): Call d_multi_index_op on object returned by 14348 parse_fcn_file. 14349 (is_function_file): Delete. 14350 (gobble_leading_white_space): Don't recurse. Simplify. Eliminate 14351 SKIP_CODE, IN_PARTS, and SAVE_COPYRIGHT arguments. Change all 14352 callers. 14353 (octave_function_ptr): Delete unused typedef. 14354 (get_help_from_file): If help text isn't found by 14355 gobble_leading_whitespace, parse file to find it. 14356 14357 * lex.l (SCRIPT_FILE_BEGIN): New exclusive start state. 14358 (prep_lexer_for_script): New function. 14359 (grab_help_text): New arg, EOF. 14360 (process_comment): New function. 14361 ({CCHAR}): Use it. 14362 * lex.h (prep_lexer_for_script): Provide decl. 14363 14364 * lex.h, lex.cc, parse.y (lexical_feedback::beginning_of_function): 14365 Delete data member and all uses. 14366 14367 * ov-usr-fcn.cc (octave_user_script::~octave_user_script): 14368 Move destructor here from ov-usr-fcn.h. Delete cmd_list. 14369 (octave_user_script::subsref, octave_user_script::accept, 14370 octave_user_script::traceback_error): New functions. 14371 (octave_user_script::do_multi_index_op): 14372 Execute cmd_list instead of calling source_file. 14373 * ov-usr-fcn.h (octave_usr_script::cmd_list, 14374 octave_usr_script::t_parsed, octave_usr_script::t_checked, 14375 octave_usr_script::call_depth): New data members. 14376 (octave_usr_script::octave_usr_script): Initialize all data members. 14377 (octave_usr_script::octave_usr_script (const std::string&, const 14378 std::string&, tree_statement_list *, const std::string&)): 14379 New constructor. 14380 (octave_usr_script::function_value, 14381 octave_usr_script::user_script_value, mark_fcn_file_up_to_date, 14382 octave_usr_script::stash_fcn_file_time, 14383 octave_usr_script::time_parsed, octave_usr_script::time_checked, 14384 octave_usr_script::subsref, octave_usr_script::body): New functions. 14385 (octave_user_script::subsref, octave_user_script::accept, 14386 octave_user_script::traceback_error): Provide decls. 14387 143882008-04-14 Jaroslav Hajek <highegg@gmail.com> 14389 14390 * oct-stream.cc (octave_scan_1): Ensure digit following X is hex 14391 digit before reading number as hex. 14392 143932008-04-14 John W. Eaton <jwe@octave.org> 14394 14395 * file-io.cc (Ffread): Allow SKIP arg to be omitted. 14396 (Ffwrite): Likewise. Handle args in a way consistent with Ffread. 14397 143982008-04-09 Michael Goffioul <michael.goffioul@gmail.com> 14399 14400 * DLD-FUNCTIONS/dispatch.cc: Replace system("echo '...'>...") calls 14401 with real file writing. 14402 144032008-04-07 Jaroslav Hajek <highegg@gmail.com> 14404 14405 * DLD-FUNCTIONS/qr.cc (Fqrshift): New function. 14406 * DLD-FUNCTIONS/chol.cc (Fcholinsert, Fcholdelete, Fcholshift): 14407 New functions. 14408 144092008-04-04 John W. Eaton <jwe@octave.org> 14410 14411 * parse.y (make_constant): Handle escape sequences in dq-strings. 14412 144132008-04-03 John W. Eaton <jwe@octave.org> 14414 14415 * parse.y (make_constant): Also stash original text for strings. 14416 14417 * ov-fcn-handle.cc (octave_fcn_handle::subsref): 14418 Don't call next_subsref here. 14419 144202008-04-01 John W. Eaton <jwe@octave.org> 14421 14422 * pt-id.h (do_lookup (bool&, bool)): Delete. 14423 (do_lookup (tree_argument_list *, const string_vector&, 14424 octave_value_list&, bool&)): Call MAYBE_DO_BREAKPOINT here. 14425 144262008-04-02 David Bateman <dbateman@free.fr> 14427 14428 * graphics.cc (void gnuplot_backend::close_figure (const 14429 octave_value&) const): Allow for an input and output stream. 14430 144312008-03-28 Jaroslav Hajek <highegg@gmail.com> 14432 14433 * DLD-FUNCTIONS/lookup.cc: New file. 14434 * Makefile.in (DLD_XSRC): Add it to the list. 14435 144362008-03-28 David Bateman <dbateman@free.fr> 14437 14438 * ov-complex.cc (SCALAR_MAPPER, CD_SCALAR_MAPPER): New macro for 14439 complex values with zero imaginary part. 14440 (erf, erfc, gamma, lgamma): Use the new mappers to define these 14441 mapper functions. 14442 * ov-complex.h (erf, erfc, gamma, lgamma): Declare them. 14443 * ov-cx-mat.cc (any_element_less_than, any_element_greater_than): 14444 New static functions 14445 (DARRAY_MAPPER, CD_ARRAY_MAPPER): New macro for complex values 14446 with zero imaginary part. 14447 (erf, erfc, gamma, lgamma): Use the new mappers to define these 14448 mapper functions. 14449 * ov-cx-mat.h (erf, erfc, gamma, lgamma): Declare them. 14450 * ov-cx-sparse.cc (any_element_less_than, any_element_greater_than): 14451 New static functions 14452 (DSPARSE_MAPPER, CD_SPARSE_MAPPER): New macro for complex values 14453 with zero imaginary part. 14454 (erf, erfc, gamma, lgamma): Use the new mappers to define these 14455 mapper functions. 14456 * ov-cx-sparse.h (erf, erfc, gamma, lgamma): Declare them. 14457 * ov-re-sparse.cc (CD_SPARSE_MAPPER): Use correct mapper functors. 14458 * mapper.cc: Add tests for the above cases. 14459 144602008-03-27 John W. Eaton <jwe@octave.org> 14461 14462 * DLD-FUNCTIONS/max.cc: Rename from minmax.cc. 14463 * Makefile.in (DLD_XSRC): Rename minmax.cc to max.cc. 14464 14465 * DLD-FUNCTIONS/__convn__.cc (convn): Use traits class and 14466 typedefs to allow all types to be deduced from argument types. 14467 144682008-03-27 Søren Hauberg <hauberg@gmail.com> 14469 14470 * DLD-FUNCTIONS/__convn__.cc (Fconvn): Allow convolving real data with 14471 complex data. 14472 144732008-03-26 John W. Eaton <jwe@octave.org> 14474 14475 * ov-range.h (octave_range::subsref (const std::string&, 14476 const std::list<octave_value_list>&, int)): 14477 Forward to simple subsref. 14478 * ov-base-sparse.h (octave_base_sparse<T>::subsref (const std::string&, 14479 const std::list<octave_value_list>&, int)): Likewise. 14480 * ov-base-scalar.h (octave_base_sparse<T>::subsref (const std::string&, 14481 const std::list<octave_value_list>&, int)): Likewise. 14482 * ov-base-matrix.h (octave_base_matrix<T>::subsref (const std::string&, 14483 const std::list<octave_value_list>&, int)): Likewise. 14484 14485 * ov-struct.cc, ov-cell.h (octave_cell::subsref (const 14486 std::string&, const std::list<octave_value_list>&, int)): 14487 Define nargout version of subsref instead of simple version. 14488 * ov-struct.cc, ov-struct.h (octave_struct::subsref (const 14489 std::string&, const std::list<octave_value_list>&, int)): 14490 Define nargout version of subsref instead of simple version. 14491 14492 * ov-builtin.h (octave_builtin::subsref (const std::string&, 14493 const std::list<octave_value_list>&): Forward to nargout subsref. 14494 * ov-cell.h (octave_cell::subsref (const std::string&, 14495 const std::list<octave_value_list>&)): 14496 * ov-class.h (octave_class::subsref (const std::string&, 14497 const std::list<octave_value_list>&): Likewise. 14498 * ov-fcn-handle.h (octave_fcn_handle::subsref (const std::string&, 14499 const std::list<octave_value_list>&): Likewise. 14500 * ov-list.h (octave_list::subsref (const std::string&, 14501 const std::list<octave_value_list>&): Likewise. 14502 * ov-mex-fcn.h (octave_mex_function::subsref (const std::string&, 14503 const std::list<octave_value_list>&): Likewise. 14504 * ov-struct.h (octave_struct::subsref (const std::string&, 14505 const std::list<octave_value_list>&)): 14506 * ov-usr-fcn.h (octave_user_function::subsref (const std::string&, 14507 const std::list<octave_value_list>&): Likewise. 14508 14509 * ov.cc (octave_value::subsref): Use value of nargout instead of 14510 is_constant method to decide which type of subsref method to call. 14511 (octave_value::assign): Always call simple subref method here. 14512 14513 * DLD-FUNCTIONS/chol.cc, DLD-FUNCTIONS/det.cc, 14514 DLD-FUNCTIONS/getpwent.cc, DLD-FUNCTIONS/inv.cc, 14515 DLD-FUNCTIONS/qr.cc, DLD-FUNCTIONS/symrcm.cc, file-io.cc): 14516 Texinfo fixes. 14517 145182008-03-26 Søren Hauberg <hauberg@gmail.com> 14519 14520 * DLD-FUNCTIONS/__convn__.cc (Fconvn): 14521 Call complex_array_value to extract N-d array. 14522 145232008-03-26 John W. Eaton <jwe@octave.org> 14524 14525 * ov-base-sparse.cc (octave_base_sparse<T>::print_raw): 14526 Also display percentage of elements that are nonzero. 14527 145282008-03-25 Søren Hauberg <hauberg@gmail.com> 14529 14530 * DLD-FUNCTIONS/__convn__.cc: New file. 14531 * Makefile.in: Add __convn__.cc 14532 145332008-03-25 David Bateman <dbateman@free.fr> 14534 14535 * DLD-FUNCTIONS/hex2num.cc: New function 14536 * Makefile.in (DLD_XSRC): Add hex2num.cc. 14537 145382008-03-25 Jaroslav Hajek <highegg@gmail.com> 14539 14540 * mappers.cc (Fexpm1, Flog1p): New functions. 14541 * ov-base.cc, ov-base.h, ov-bool-mat.h, ov-bool-sparse.h, 14542 ov-bool.h, ov-complex.cc, ov-complex.h, ov-cx-mat.cc, ov-cx-mat.h, 14543 ov-cx-sparse.cc, ov-cx-sparse.h, ov-range.h, ov-re-mat.cc, 14544 ov-re-mat.h, ov-re-sparse.cc, ov-re-sparse.h, ov-scalar.cc, 14545 ov-scalar.h, ov.h: 14546 Provide expm1 and log1p functions. 14547 14548 * mappers.cc (Froundb): New functions 14549 * ov-base.cc, ov-base.h, ov-bool-mat.h, ov-bool-sparse.h, 14550 ov-bool.h, ov-complex.cc, ov-complex.h, ov-cx-mat.cc, ov-cx-mat.h, 14551 ov-cx-sparse.cc, ov-cx-sparse.h, ov-intx.h, ov-range.h, 14552 ov-re-mat.cc, ov-re-mat.h, ov-re-sparse.cc, ov-re-sparse.h, 14553 ov-scalar.cc, ov-scalar.h, ov.h: 14554 Provide roundb mapper function. 14555 145562008-03-25 Jaroslav Hajek <highegg@gmail.com> 14557 14558 * load-save.cc (save_vars): Handle -struct modifier. 14559 (save_fields): New function. 14560 (Fsave): Document new feature. 14561 145622008-03-25 John W. Eaton <jwe@octave.org> 14563 14564 * lex.h (lexical_feedback::looking_at_initializer_expression): 14565 New data member. 14566 * lex.l (lexical_feedback::init): Initialize it. 14567 (handle_identifier): Don't unconditionally force identifiers to be 14568 variables in the current scope. Don't call force_local_variable 14569 for symbols that appear in parameter initializer expressions. 14570 * parse.y (decl_param_init): New parser "subroutine". 14571 (decl2): Use it. Set lexer_flags.looking_at_initializer_expression 14572 to false after parsing initializer. 14573 145742008-03-24 David Bateman <dbateman@free.fr> 14575 14576 * data.cc (map_s_s): Fix for sparse/sparse mappers that resulted 14577 in an empty sparse matrix being returned. 14578 (Fhypot): New function based on the libm hypot function. 14579 145802008-03-24 Primozz Peterlin <primozz.peterlin@gmail.com> 14581 14582 * variables.cc (Fexist): Doc fix. 14583 145842008-03-23 David Bateman <dbateman@free.fr> 14585 14586 * OPERATORS/op-int.h: Add el_div and el_ldiv operators to the 14587 binops that were missing them. Added elem_pow functions for mixed 14588 integer floating point cases. Initialize the mixed integer 14589 floating point cases. 14590 145912008-03-21 John W. Eaton <jwe@octave.org> 14592 14593 * ov-cell.h (octave_cell::is_constant): Return true. 14594 * ov-cell.h, ov-cell.cc (octave_cell::subsref (const std::string&, 14595 const std::list<octave_value_list>&)): Define. 14596 (octave_cell::subsref (const std::string&, 14597 const std::list<octave_value_list>&, int)): Call panic_impossible. 14598 14599 * ov-struct.h (octave_struct::is_constant): New function. 14600 * ov-struct.h, ov-struct.cc (octave_struct::subsref (const std::string&, 14601 const std::list<octave_value_list>&)): Define. 14602 (octave_struct::subsref (const std::string&, 14603 const std::list<octave_value_list>&, int)): Call panic_impossible. 14604 146052008-03-21 David Bateman <dbateman@free.fr> 14606 14607 * DLD-FUNCTIONS/amd.cc: New file. 14608 * Makefile.in (DLD_XSRC): Add amd.cc. 14609 146102008-03-20 David Bateman <dbateman@free.fr> 14611 14612 * Cell.cc (Cell Cell::diag (void) const): delete. 14613 (Cell Cell::diag (octave__idx_type) const):Rewrite in terms of 14614 template classes function. 14615 * Cell.h (Cell diag (void) const): delete. 14616 14617 * ov.h (octave_value diag (octave_idx_type) const): New method. 14618 * ov-base.h (virtual octave_value diag (octave_idx_type) const): 14619 New virtual method. 14620 * ov-base.cc (octave_value octave_base_value::diag 14621 (octave_idx_type) const): New default method. 14622 14623 * ov-base-mat.h (octave_value diag (octave_idx_type) const): New 14624 method. 14625 * ov-base-sparse.h (octave_value diag (octave_idx_type) const): New 14626 method. 14627 * ov-base-scalar.h (octave_value diag (octave_idx_type) const): New 14628 method. 14629 * ov-range.h (octave_value diag (octave_idx_type) const): New 14630 method. 14631 14632 * data.cc (make_diag, make_spdiag): Delete. 14633 (Fdiag): Rewrite in terms of octave_value diag function. 14634 14635 * data.cc (static octave_value make_diag (const Cell&, 14636 octave_idx_type)): New instantiation of template function. 14637 (static octave_value make_diag (const octave_value&, 14638 octave_idx_type)): Allow cell arrays. 14639 14640 * Cell.cc (Cell Cell::diag (void) const, Cell Cell::diag 14641 (octave__idx_type)): New methods for diagonal matrices. 14642 * Cell.h (Cell Cell::diag (void) const, Cell Cell::diag 14643 (octave__idx_type)): Declare them. 14644 146452008-03-18 David Bateman <dbateman@free.fr> 14646 14647 * ov-re-mat.cc (lgamma): Convert to a allow negative arguments. 14648 * ov-re-sparse.cc (lgamma): ditto. 14649 * ov-scalar.cc (lgamma): ditto. 14650 14651 * DLD-FUNCTIONS/minmax.cc: 64-bit indexing fix. 14652 146532008-03-13 John W. Eaton <jwe@octave.org> 14654 14655 * ov-usr-fcn.cc (octave_user_function::octave_user_function): 14656 Handle num_named_args in initialization list instead of functinon body. 14657 14658 * octave.gperf: Eliminate varargin and varargout keywords. 14659 * lex.l (is_keyword_token): Eliminate varargin_kw and varargout_kw 14660 from switch statement. 14661 * parse.y (return_list): Eliminate special cases for VARARGOUT. 14662 Call validate on tree_parameter_list object. 14663 (param_list1): Likewise, for VARARGIN. 14664 * pt-misc.cc (tree_parameter_list::validate): New function. 14665 (tree_parameter_list::mark_varargs_only): Now private. 14666 (tree_parameter_list::mark_varargs): Now private. 14667 * pt-misc.h (tree_parameter_list::validate): Provide decl. 14668 146692008-03-12 John W. Eaton <jwe@octave.org> 14670 14671 * variables.cc (Vwhos_line_format): Omit print_dims parameter. 14672 Fix doc string in Vwhos_line_format DEVAR. 14673 (symbol_record_name_compare): Delete unused function. 14674 (whos_parameter::dimensions): Delete struct field. 14675 (symbol_info_list): New class. 14676 (dimensions_string_req_first_space, make_dimensions_string, 14677 dimensions_string_req_total_space): Delete. 14678 (parse_whos_line_format): Move functionality to new 14679 symbol_info_list class. 14680 (print_symbol_info_line): Move functionality to new 14681 symbol_info_list::struct symbol_info::displaly_line method. 14682 (do_who): Simplify with new symbol_info_list class. 14683 Handle index expressions in addition to symbol names. 14684 14685 * DLD-FUNCTIONS/dlmread.cc (Fdlmread): Fix separator detection. 14686 146872008-03-11 John W. Eaton <jwe@octave.org> 14688 14689 * DLD-FUNCTIONS/eig.cc (Feig): Handle possible error from EIG. 14690 * DLD-FUNCTIONS/qp.cc (qp, Fqp): Likewise. 14691 * xpow.cc (xpow): Likewise. 14692 146932008-03-11 John W. Eaton <jwe@octave.org> 14694 14695 * DLD-FUNCTIONS/dlmread.cc: Style fixes. 14696 146972008-03-11 David Bateman <dbateman@free.fr> 14698 14699 * DLD-FUNCTIONS/dlmread.cc: Function ported from octave forge. Add 14700 spreadsheet style ranges. 14701 * Makefile.in (DLD_XSRC): Add dlmread.cc. 14702 147032008-03-10 John W. Eaton <jwe@octave.org> 14704 14705 * mex.cc (mxCreateLogicalScalar): Argument is now mxLogical. 14706 14707 * data.cc (Fisfloat): New function. 14708 * ov.h (octave_value::is_float_type): Ditto. 14709 * ov-base.h (octave_base_value::is_float_type): Ditto. 14710 * ov-complex.h (octave_complex): Ditto. 14711 * ov-cx-mat.h (octave_complex_matrix): Ditto. 14712 * ov-cx-sparse.h (octave_sparse_complex_matrix): Ditto. 14713 * ov-range.h (octave_range): Ditto. 14714 * ov-re-mat.h (octave_matrix): Ditto. 14715 * ov-re-sparse.h (octave_sparse_matrix): Ditto. 14716 * ov-scalar.h (octave_scalar): Ditto. 14717 14718 * mxarray.h.in (mxLogical): Use unsigned char instead of int. 14719 From Antwerpen, G. (Gert) van <gert.vanantwerpen@tno.nl>. 14720 147212008-03-07 John W. Eaton <jwe@octave.org> 14722 14723 * ov-struct.cc (octave_struct::print_raw): Don't print contents fo 14724 struct arrays that have more than one element. 14725 147262008-03-06 David Bateman <dbateman@free.fr> 14727 14728 * DLD-FUNCTIONS/matrix_type.cc (Fmatrix_type): Document that 14729 the initial interpretation of a positive definite return from 14730 matrix_type is that the matrix is "probably" positive definite and 14731 not certainly so. 14732 147332008-03-06 John W. Eaton <jwe@octave.org> 14734 14735 * parse.y: Move tests here from test/test_eval.m. 14736 * DLD-FUNCTIONS/fft.cc: Move tests here from test/test_signal.m. 14737 * DLD-FUNCTIONS/dassl.cc: Move tests here from test/test_diffeq.m. 14738 * DLD-FUNCTIONS/lsode.cc: Move tests here from test/test_diffeq.m. 14739 * DLD-FUNCTIONS/quad.cc: Move tests here from test/test_quad.m. 14740 * DLD-FUNCTIONS/time.cc: Move tests here from test/test_system.m. 14741 147422008-03-06 Alexander Barth <barth.alexander@gmail.com> 14743 14744 * DLD-FUNCTIONS/__lin_interpn__.cc (lookup): 14745 Handle decreasing coordinate values. 14746 147472008-03-05 Jaroslav Hajek <highegg@gmail.com> 14748 14749 * DLD-FUNCTIONS/chol.cc (Fcholupdate): Adjust code to meet 14750 Octave's coding guidelines. 14751 14752 * DLD-FUNCTIONS/qr.cc (Fqrupdate, Fqrinsert, Fqrdelete): Adjust 14753 code to meet Octave's coding guidelines. 14754 * DLD-FUNCTIONS/qr.cc (Fqrdelete): Fix incorrect test. 14755 14756 * DLD-FUNCTIONS/qr.cc (Fqrinsert, Fqrdelete): Modify to use 14757 0-based indexing in liboctave's QR classes. 14758 147592008-03-04 Jaroslav Hajek <highegg@gmail.com> 14760 14761 * DLD-FUNCTIONS/chol.cc (Fcholupdate): New function. 14762 14763 * DLD-FUNCTIONS/qr.cc (Fqrupdate, Fqrinsert, Fqrdelete): 14764 New functions. 14765 147662008-03-04 Ryan Rusaw <rrusaw@gmail.com> 14767 14768 * toplev.h (octave_call_stack::element): New static function. 14769 (octave_call_stack::cs): Now std::deque instead of std::list. 14770 14771 * pt-stmt.cc (curr_statement, curr_caller_statement): Delete. 14772 * pt-stmt.h: Delete decls. 14773 14774 * pt-stmt.h, pt-stmt.cc (tree_statement_stack): New class. 14775 14776 * pt-stmt.cc (tree_statement::eval): Use tree_statement_stack 14777 instead of curr_statement variable. 14778 14779 * ov-usr-func.cc (octave_user_function::do_multi_index_op): 14780 Don't set curr_caller_statement. 14781 14782 * error.cc (verror, pr_where): Call tree_statement_stack::current_line 14783 and tree_statement_stack::current_column instead of 14784 instead of curr_statement->line and curr_statement->column. 14785 * input.cc (get_user_input): Likewise. 14786 147872008-02-27 John P. Swensen <jpswensen@gmail.com> 14788 14789 * debug.cc (get_user_function): Call symtab::find_function instead 14790 of symtab::find_user_function. 14791 147922008-02-27 John W. Eaton <jwe@octave.org> 14793 14794 * oct-stream.cc (do_read): Stop reading if seek fails. 14795 147962008-02-26 John W. Eaton <jwe@octave.org> 14797 14798 * ov-base-int.cc (octave_base_int_helper, 14799 octave_base_int_helper_traits): New templates and specializations. 14800 (octave_base_int_matrix<T>::convert_to_str_internal, 14801 octave_base_int_matrix<T>::convert_to_str_internal): Use them. 14802 14803 * DLD-FUNCTIONS/rand.cc (do_rand): Pass name of calling function 14804 to octave_rand::state. 14805 14806 * variables.cc (bind_ans): Handle cs-lists recursively. 14807 14808 * ov-cs-list.h, ov-cs-list.cc (octave_cs_list::print, 14809 octave_cs_list::print_raw): Delete. 14810 148112008-02-25 John W. Eaton <jwe@octave.org> 14812 14813 * Cell.cc (Cell::map): New function. 14814 * Cell.h (Cell::map): Declare. 14815 (xisalnum, xisalpha, xisascii, xiscntrl, xisdigit, 14816 xisgraph, xislower, xisprint, xispunct, xisspace, xisupper, 14817 xisxdigit, xtoascii, xtolower, xtoupper): New mapper functions. 14818 (ctype_mapper): New private typedef. 14819 14820 * ov-cell.h (xisalnum, xisalpha, xisascii, xiscntrl, xisdigit, 14821 xisgraph, xislower, xisprint, xispunct, xisspace, xisupper, 14822 xisxdigit, xtoascii, xtolower, xtoupper): New mapper functions. 14823 148242008-02-25 Michael Goffioul <michael.goffioul@gmail.com> 14825 14826 * ov-scalar.cc (octave_scalar::round): Use xround instead of ::round 14827 in mapper implementation. 14828 148292008-02-25 John W. Eaton <jwe@octave.org> 14830 14831 * ov-base.cc (UNDEFINED_MAPPER, STRING_MAPPER): New macros. Use 14832 them to define mapper functions. 14833 14834 * mappers.cc (Fisalnum, Fisalpha, Fisascii, Fiscntrl, Fisdigit, 14835 Fisgraph, Fislower, Fisprint, Fispunct, Fisspace, Fisupper, 14836 Fisxdigit, Ftoascii, Ftolower, Ftoupper): 14837 Use DEFUNX to define ctype mapper functions. 14838 Use new function names. 14839 14840 * ov-base.h, ov-base.cc, ov-str-mat.h, ov-str-mat.cc: 14841 Prepend x to ctype mapper function names. 14842 14843 * graphics.h.in (row_vector_property::row_vector_property): 14844 Set default constraints here. 14845 (row_vector_property::add_constraint): New function. 14846 (row_vector_property::validate): Delete decl. 14847 (axes::properties::init): Use single-arg add_constraint function 14848 for xlim, ylim, zlim, clim, and alim properties. 14849 14850 * graphics.cc (row_vector_property::validate): Delete. 14851 14852 * graphics.cc (axes::properties::update_camera, 14853 axes::properties::update_aspectratios): 14854 Avoid shadow warnings from GCC. 14855 14856 * graphics.h.in (base_properties::get_bounding_box): 14857 Avoid unused argument warning from GCC. 14858 14859 * graphics.h.in (array_property::add_constraint): Arg is now const 14860 reference, not value. 14861 14862 * graphics.h.in, graphics.cc (class row_vector_property): New class. 14863 (axes::properties): xlim, ylim, zlim, clim, alim, xtick, ytick, 14864 ztick properties are now row_vector_property objects instead of 14865 array_property objects. 14866 14867 * genprops.awk: Special case row_vector_property in the same way 14868 as array_property. 14869 148702008-02-22 John W. Eaton <jwe@octave.org> 14871 14872 * DLD-FUNCTIONS/ccolamd.cc, DLD-FUNCTIONS/colamd.cc, 14873 DLD-FUNCTIONS/convhulln.cc, DLD-FUNCTIONS/dmperm.cc, 14874 DLD-FUNCTIONS/qz.cc, DLD-FUNCTIONS/regexp.cc, 14875 DLD-FUNCTIONS/symbfact.cc, zfstream.h, zfstream.cc: 14876 Use 0 instead of NULL. 14877 148782008-02-22 David Bateman <dbateman@free.fr> 14879 14880 * DLD-FUNCTIONS/chol.c (Fchol, Fcholinv, Fchol2iinv): Treat 14881 sparse matrices. Add the "lower" and "vector" flags. 14882 * DLD-FUNCTIONS/inv.c (Finv): Treat sparse matrices. 14883 * DLD-FUNCTION/sparse.cc (static bool is_sparse (const 14884 octave_value&)): Remove and use arg.is_sparse_type () instead. 14885 (Fspcumprod, Fspcumsum, Fspprod, spsum, spsumsq, spdiag): Remove. 14886 * DLD-FUNCTIONS/splu.cc: Remove. 14887 * DLD-FUNCTIONS/lu.cc: Treat sparse matrices, Add "vector" flag. 14888 * DLD-FUNCTIONS/spchol.cc: Move to symbfact.cc 14889 * DLD-FUNCTIONS/symbfact.cc: Remove cholesky functions Fspchol, 14890 Fspcholinv, Fspchol2inv. 14891 * DLD-FUNCTIONS/luinc.cc: Modify for new sparse LU 14892 constructors. Ass the 'vector' flag. 14893 * DLD-FUNCTIONS/spparms.cc: Add the sum_tol flag. 14894 14895 * Makifile.in (DLD_XSRC): Remove spchol.cc, splu.cc and add 14896 symbfact.cc 14897 * data.cc (NATIVE_REDUCTION): Treat sparse matrices 14898 (DATA_REDUCTION): Ditto. 14899 (template <class T> static octave_value make_spdiag (const T&, 14900 octave_idx_type)): New template function for sparse diag 14901 function. Instantiate it. 14902 (static octave_value make_diag (const octave_value&, 14903 octave_idx_type): Use make_spdiag for sparse matrice. 14904 (Fatan2): Compatibility fixes for mixed full/sparse matrices. 14905 149062008-02-21 John W. Eaton <jwe@octave.org> 14907 14908 * DLD-FUNCTIONS/fsolve.cc (fsolve_user_jacobian): 14909 Check dimensions of user-supplied Jacobian matrix. 14910 (fsolve_user_function): Check for non-square systems. 14911 149122008-02-20 John W. Eaton <jwe@octave.org> 14913 14914 * data.cc (map_d_m, map_m_d, map_m_m, Fatan2, Ffmod): 14915 Handle N-d arrays. 14916 14917 * ov-bool-mat.h (octave_bool_matrix (const Array2<bool>&)): Delete. 14918 149192008-02-20 David Bateman <dbateman@free.fr> 14920 14921 * DLD-FUNCTIONS/det.cc, DLD-FUNCTIONS/find.cc, 14922 * DLD-FUNCTIONS/minmax.cc, DLD-FUNCTIONS/qr.cc: 14923 Treat sparse matrices. 14924 14925 * DLD-FUNCTIONS/sparse.cc (Fspmin, Fspmax, Fatan2): Remove functions. 14926 14927 * DLD-FUNCTIONS/dmperm.cc: Rename from spqr.cc. 14928 (Fspqr): Delete function. 14929 14930 * DLD-FUNCTIONS/spqr.cc, DLD-FUNCTIONS/spdet.cc, 14931 DLD-FUNCTIONS/spfind.cc: Remove. 14932 14933 * Makefile.in (DLD_XSRC): Add dmperm.cc to the list. 14934 Delete det.cc, find.cc, minmax.cc, and qr.cc from the list. 14935 14936 * Makefile.in (OV_SRC): Remove ov-mapper.cc. 14937 (OV_INCLUDES): Remove ov-mapper.h. 14938 (DEFUN_PATTERN): No longer accept DEFUN_MAPPER as valid. 14939 * ov-mapper.cc, ov-mapepr.h: Delete, remove all includes of 14940 ov-mapper.h from all files. 14941 14942 * op-b-sbm.cc, op-bm-sbm.cc, op-smb-b.cc, op-sbm-bm.cc: Include 14943 ov-bool-sparse.h. 14944 14945 * defun-int.h (DEFUN_MAPPER_INTERNAL, install_builtin_mapper): 14946 Remove. 14947 * defun.cc (install_builtin_mapper): Ditto. 14948 * defun.h (DEFUN_MAPPER): Remove. 14949 14950 * mappers.cc: Rewrite all mapper function using DEFUN and newly 14951 introduced octave_value mapper functions. 14952 (dummyp, xabs, xisalnum, xisascii, xiscntrl, xisdigit, 14953 xisgraph, xislower, xisprint, xispunct, xisspace, xisupper, 14954 xtoascii, xtolower, xtoupper, xconj, ximag, xreal): Remove 14955 static wrapper functions. 14956 14957 * mkbuiltins (XDEFUN_MAPPER_INTERNAL, install_builtin_functions): 14958 Remove. 14959 * mkgendoc (XDEFUN_MAPPER_INTERNAL): Remove. 14960 14961 * ov.cc (octave_mapper::register_type): Remove. 14962 14963 * ov.h (abs, acos, acosh, angle, arg, asin, asinh, atan, atanh, 14964 ceil, conj, cos, cosh, erf, erfc, exp, finite, fix, floor, gamma, 14965 imag, isinf, isna, isnan, lgamma, log, log10, real, round, signum, 14966 sin, sinh, sqrt, tan, tanh, isalnum, isalpha, isascii, iscntrl, 14967 isdigit, isgraph, islower, isprint, ispunct, isspace, isupper, 14968 isxdigit, toascii, tolower, toupper): 14969 New octave_value mapper functions. 14970 14971 * ov-base.h (abs, acos, acosh, angle, arg, asin, asinh, atan, 14972 atanh, ceil, conj, cos, cosh, erf, erfc, exp, finite, fix, floor, 14973 gamma, imag, isinf, isna, isnan, lgamma, log, log10, real, round, 14974 signum, sin, sinh, sqrt, tan, tanh, isalnum, isalpha, isascii, 14975 iscntrl, isdigit, isgraph, slower, isprint, ispunct, isspace, 14976 isupper, isxdigit, toascii, tolower, toupper): 14977 New virtual mapper functions. 14978 * ov-base.cc (abs, acos, acosh, angle, arg, asin, asinh, atan, 14979 atanh, ceil, conj, cos, cosh, erf, erfc, exp, finite, fix, floor, 14980 gamma, imag, isinf, isna, isnan, lgamma, log, log10, real, round, 14981 signum, sin, sinh, sqrt, tan, tanh, isalnum, isalpha, isascii, 14982 iscntrl, isdigit, isgraph, slower, isprint, ispunct, isspace, 14983 isupper, isxdigit, toascii, tolower, toupper): 14984 Base versions of mapper functions. 14985 14986 * ov-bool-mat.h (abs, acos, acosh, angle, arg, asin, asinh, atan, 14987 atanh, ceil, conj, cos, cosh, erf, erfc, exp, finite, fix, floor, 14988 gamma, imag, isinf, isna, isnan, lgamma, log, log10, real, round, 14989 signum, sin, sinh, sqrt, tan, tanh): 14990 Mapper function recast boolen matrix as double. 14991 * ov-bool.h (abs, acos, acosh, angle, arg, asin, asinh, atan, 14992 atanh, ceil, conj, cos, cosh, erf, erfc, exp, finite, fix, floor, 14993 gamma, imag, isinf, isna, isnan, lgamma, log, log10, real, round, 14994 signum, sin, sinh, sqrt, tan, tanh): Ditto. 14995 * ov-bool-sparse.h (abs, acos, acosh, angle, arg, asin, asinh, 14996 atan, atanh, ceil, conj, cos, cosh, erf, erfc, exp, finite, fix, 14997 floor, gamma, imag, isinf, isna, isnan, lgamma, log, log10, real, 14998 round, signum, sin, sinh, sqrt, tan, tanh): Ditto. 14999 (char_array_value): New method to convert to charNDArray. 15000 * ov-bool-sparse.cc (char_array_value): New method to convert to 15001 charNDArray. 15002 * ov-complex.cc (char_array_value): ditto. 15003 (xabs, ximag, xreal): Static wrapper functions. 15004 (abs, acos, acosh, angle, arg, asin, asinh, atan, atanh, ceil, 15005 conj, cos, cosh, exp, finite, fix, floor, imag, isinf, isna, 15006 isnan, log, log10, real, round, signum, sin, sinh, sqrt, tan, 15007 tanh): New mapper methods. 15008 * ov-complex.h: Provide decls. 15009 15010 * ov-cx-mat.cc (char_array_value): New method to convert to 15011 charNDArray. 15012 (xabs, ximag, xreal): Static wrapper functions. 15013 (abs, acos, acosh, angle, arg, asin, asinh, atan, atanh, ceil, 15014 conj, cos, cosh, exp, finite, fix, floor, imag, isinf, isna, 15015 isnan, log, log10, real, round, signum, sin, sinh, sqrt, tan, 15016 tanh): New mapper methods. 15017 * ov-cx-mat.h: Provide decls. 15018 15019 * ov-cx-sparse.cc (char_array_value): New method to convert to 15020 charNDArray. 15021 (xabs, ximag, xreal): Static wrapper functions. 15022 (abs, acos, acosh, angle, arg, asin, asinh, atan, atanh, ceil, 15023 conj, cos, cosh, exp, finite, fix, floor, imag, isinf, isna, 15024 isnan, log, log10, real, round, signum, sin, sinh, sqrt, tan, 15025 tanh): New mapper methods. 15026 * ov-cx-sparse.h: Provide decls. 15027 15028 * ov-intx.h (abs, signum, imag, ceil, conj, fix, floor, real, 15029 round, finite, isinf, isna, isnan): Define for both matrix and 15030 scalar classes. 15031 15032 * ov-range.h (abs, acos, acosh, angle, arg, asin, asinh, atan, 15033 atanh, ceil, conj, cos, cosh, erf, erfc, exp, finite, fix, floor, 15034 gamma, imag, isinf, isna, isnan, lgamma, log, log10, real, round, 15035 signum, sin, sinh, sqrt, tan, tanh): New mapper functions. 15036 15037 * ov-re-mat.cc (any_element_less_than): Static function to check if 15038 any elemet was less than a value, 15039 (any_element_greater_than): Ditto with greater than. 15040 (abs, acos, acosh, angle, arg, asin, asinh, atan, atanh, ceil, 15041 conj, cos, cosh, erf, erfc, exp, finite, fix, floor, gamma, imag, 15042 isinf, isna, isnan, lgamma, log, log10, real, round, signum, sin, 15043 sinh, sqrt, tan, tanh): New mapper functions. 15044 * ov-re-mat.h: Provide decls. 15045 15046 * ov-scalar.cc (any_element_less_than): Static function to check if 15047 any elemet was less than a value, 15048 (any_element_greater_than): ditto with greater than. 15049 (abs acos acosh angle arg asin asinh atan atanh 15050 ceil conj cos cosh erf erfc exp finite fix floor gamma imag 15051 isinf isna isnan lgamma log log10 real round signum sin sinh 15052 sqrt tan tanh): New mapper functions. 15053 * ov-scalar.h: Provide decls. 15054 15055 * ov-str-mat.cc (xisalnum, xisascii, xiscntrl, xisdigit, 15056 xisgraph, xislower, xisprint, xispunct, xisspace, xisupper, 15057 xtoascii, xtolower, xtoupper): New static wrapper functions. 15058 (isalnum, isalpha, isascii, iscntrl, isdigit, isgraph, islower, 15059 isprint, ispunct, isspace, isupper, isxdigit, toascii, tolower, 15060 toupper): New mapper methods. 15061 * ov-str-mat.h: Provide decls. 15062 150632008-02-18 David Bateman <dbateman@free.fr> 15064 15065 * data.cc (Fatan2): Reject arguments that are integer types. 15066 150672008-02-19 Jaroslav Hajek <highegg@gmail.com> 15068 15069 * DLD-FUNCTIONS/qr.cc: Doc fix. 15070 150712008-02-18 John W. Eaton <jwe@octave.org> 15072 15073 * symtab.h 15074 (symbol_table::fcn_info::fcn_info_rep::clear_unlocked_functions): 15075 symbol_table::fcn_info::fcn_info_rep::clear_cmdline_function, 15076 symbol_table::fcn_info::fcn_info_rep::clear_autoload_function): 15077 New functions. 15078 (symbol_table::fcn_info::fcn_info_rep::clear_user_function): 15079 Don't clear locked functions. 15080 (symbol_table::fcn_info::fcn_info_rep::clear_mex_function): 15081 Call clear_user_function instead of setting function_on_path directly. 15082 (symbol_table::fcn_info::fcn_info_rep::clear): 15083 Use new functions to do the real work. 15084 15085 * ov.h (octave_value::lock, octave_value::unlock, 15086 octave_value::islocked): New functions. 15087 * ov-base.cc (octave_base_value::lock, octave_base_value::unlock): 15088 New functions. 15089 * ov-base.h Provide decls. 15090 (octave_base_value::islocked): New function. 15091 * ov-fcn.h (octave_function::islocked): Now const. 15092 150932008-02-15 John W. Eaton <jwe@octave.org> 15094 15095 * ov-builtin.cc (octave_builtin::do_multi_index_op): 15096 Catch possible octave_execution_exception. 15097 * ov-mex-fcn.cc (octave_mex_function::do_multi_index_op): Likewise. 15098 * ov.cc (do_binary_op, do_cat_op, do_unary_op, 15099 octave_value::do_non_const_unary_op): Likewise. 15100 151012008-02-14 John W. Eaton <jwe@octave.org> 15102 15103 * DLD-FUNCTIONS/balance.cc, DLD-FUNCTIONS/qz.cc: 15104 Don't check f77_exception_encountered. 15105 15106 * sighandlers.cc (user_abort): If interrupting immediately, set 15107 octave_interrupt_state if it is not already set. 15108 15109 * pt-stmt.cc (tree_statement::eval): Catch execution exceptions. 15110 15111 * octave.cc (lo_error_handler): New static function. 15112 (initialize_error_handlers): Set liboctave_error_handler to 15113 lo_error_handler, not error. 15114 15115 * DLD-FUNCTIONS/urlwrite.cc (urlget): Call octave_rethrow_exception 15116 instead of octave_throw_interrupt_exception. 15117 * utils.cc (BEGIN_INTERRUPT_IMMEDIATELY_IN_FOREIGN_CODE_FOR_VSNPRINTF): 15118 Likewise. 15119 151202008-02-12 David Bateman <dbateman@free.fr> 15121 15122 * graphics.h.in: Implement the cdatamapping property in patch and 15123 image objects. 15124 151252008-02-12 John W. Eaton <jwe@octave.org> 15126 15127 * pt-loop.cc (tree_simple_for_command::eval): Compute range 15128 element with multiplication. 15129 151302008-02-11 John W. Eaton <jwe@octave.org> 15131 15132 * Makefile.in ($(MAKEDEPS)): Skip dependencies if omit_deps is defined. 15133 151342008-02-09 John W. Eaton <jwe@octave.org> 15135 15136 * pr-output.cc (set_range_format): Eliminate sign arg. 15137 Change all callers. 15138 151392008-02-08 John W. Eaton <jwe@octave.org> 15140 15141 * ov-struct.cc (octave_struct::subsref): Allow Cell::index to resize. 15142 15143 * input.cc (interactive_input): Eliminate debug arg. Change All uses. 15144 (get_user_input): Don't process input_buf if there is an error. 15145 Call reset_error_handler instead of setting error_state to 0. 15146 151472008-02-08 Michael Goffioul <michael.goffioul@gmail.com> 15148 15149 * graphics.h.in (callback_property::execute): New static 15150 helper method (useful to execute callbacks by name). 15151 * graphics.cc (callback_property::execute): Likewise. 15152 (execute_callback): Avoid undefined argument when executing 15153 callback. Do not use arguments when the callback is a string. 15154 151552008-02-07 John W. Eaton <jwe@octave.org> 15156 15157 * ov-range.h (octave_range::sort): New functions. 15158 151592008-02-07 David Bateman <dbateman@free.fr> 15160 15161 * Makefile.in (DLD_XSRC): Delete spkron.cc. 15162 * DLD-FUNCTIONS/spkron.cc: Delete. 15163 * DLD-FUNCTIONS/kron.cc: Include here and dispatch to the sparse 15164 version if either argument is sparse. 15165 151662008-02-06 John W. Eaton <jwe@octave.org> 15167 15168 * Makefile.in (parse.cc): Also use --defines option for bison. 15169 151702008-02-06 Michael Goffioul <michael.goffioul@gmail.com> 15171 15172 * graphics.cc (axes::properties::set_defaults): Set default axes 15173 color to white. 15174 151752008-02-06 John W. Eaton <jwe@octave.org> 15176 15177 * Makefile.in (parse.cc): Use "-o $@" instead of renaming y.tab.c. 15178 (maintainer-clean): Don't remove y.tab.c. 15179 15180 * Makefile.in (parse.cc : parse.y): Use mv instead of move-if-change. 15181 (stamp-prereq, stamp-liboctave-prereq): Eliminate. 15182 (clean): Don't remove stamp-prereq and stamp-liboctave-prereq. 15183 (OPT_BASE, OPT_IN, OPT_INC): New macros. 15184 (OPT_HANDLERS): Define in terms of OPT_BASE. 15185 ($(OPT_INC) : %.h : %.in): New pattern rule. 15186 (PREREQ): New macro. 15187 ($(MAKEDEPS)): Simplify with $(PREREQ). 15188 151892008-02-05 John W. Eaton <jwe@octave.org> 15190 15191 * Makefile.in: Unconditionally include $(MAKEDEPS). 15192 Mark $(MAKEDEPS) as .PHONY targets if omit_deps is true. 15193 151942008-02-05 Michael Goffioul <michael.goffioul@gmail.com> 15195 15196 * graphics.h.in (base_properties::get_boundingbox): New method. 15197 (figure::properties::get_boundingbox): Overload method. 15198 (axes::properties::get_boundingbox): Likewise. 15199 * graphics.cc (figure::properties::get_boundingbox): Return a 15200 left-to-right/top-to-bottom bounding box rectangle. 15201 (axes::properties::get_boundingbox): Likewise. 15202 (axes::properties::update_camera): Remove backend access and 15203 use the new axes bounding box. 15204 152052008-02-04 Shai Ayal <shaiay@users.sourceforge.net> 15206 15207 * graphics.h.in (axes::properties::update_xlim, 15208 axes::properties::update_ylim, axes::properties::update_zlim): 15209 New update methods. 15210 15211 * graphics.cc (axes::properties::calc_ticks): New function. 15212 (axes::properties::magform): New function. 15213 (axes::update_axis_limits): Call update_{x,y,z}lims if 15214 appropriate. 15215 152162008-02-04 Michael Goffioul <michael.goffioul@gmail.com> 15217 15218 * graphics.h.in (base_graphics_backend::get_screen_size, 15219 graphics_backend::get_screen_size): New methods. 15220 (graphics_backend::available_backends): Export symbol. 15221 (class figure::properties, class axes::properties): Export classes. 15222 (figure::properties::get_boundingbox): New utility method. 15223 (figure::properties::position): Use valid default position. 15224 (axes::properties::gridlinestyle, 15225 axes::properties::minorgridlinestyle): 15226 Use dotted line style as default. 15227 * graphics.cc (default_figure_position): New static function. 15228 (gnuplot_backend::get_screen_size): New method. 15229 (figure::properties::get_boundingbox): New utility method. 15230 152312008-02-02 Shai Ayal <shaiay@users.sourceforge.org> 15232 15233 * graphics.h.in (base_scaler::~base_scalar): New virtual destructor. 15234 * graphics.cc (axes::properties::update_camera): Tag abs with std. 15235 15236 * graphics.h.in (graphics_backend::find_backend): New function. 15237 (class figure): Add __backend__ property and set method. 15238 152392008-02-02 John W. Eaton <jwe@octave.org> 15240 15241 * help.cc (do_type): Don't print dyamically loaded function files. 15242 15243 * ov-fcn.h (octave_function::is_dynamically_loaded_function): Delete. 15244 152452008-02-01 John W. Eaton <jwe@octave.org> 15246 15247 * symtab.cc (Fset_variable, Fvariable_value): 15248 New functions, but commented out for now. 15249 152502008-01-30 Michael Goffioul <michael.goffioul@gmail.com> 15251 15252 * graphics.h.in (axes::properties::get_transform_matrix, 15253 axes::properties::get_inverse_transform_matrix, 15254 axes::properties::get_opengl_matrix_1, 15255 axes::properties::get_opengl_matrix_2, 15256 axes::properties::get_transform_zlim): New accessors. 15257 (base_properties::is_clipping): New accessor. 15258 (class graphics_xform): New class encapsulating axes transformation. 15259 (axes::properties::get_transform): New method returning a 15260 graphics_xform object. 15261 * graphics.cc (class graphics_xform): New class. 15262 152632008-01-31 David Bateman <dbateman@free.fr> 15264 15265 * ov.cc (octave_value::octave_value (const ArrayN<bool>&), 15266 octave_value::octave_value (const Sparse<bool>&, const MatrixType &), 15267 octave_value::octave_value (const ArrayN<std::streamoff>&)): New 15268 constructors. 15269 * ov.h: (octave_value (const ArrayN<bool>&), 15270 octave_value (const Sparse<bool>&, const MatrixType &), 15271 octave_value (const ArrayN<std::streamoff>&)): Declare them. 15272 (octave_value sort (octave_idx_type, sortmode) const, octave_value 15273 sort (Array<octave_idx_type> &, octave_idx_type, sortmode) const): 15274 octave_value sort method. 15275 15276 15277 * ov-base.cc (sort): Base versions of teh octave_value sort methods. 15278 * ov-base.h (sort): Declare the octave_value sort methods 15279 * ov-base-scalar.h (sort): Simple sort methods for scalars. 15280 * ov-base-mat.h, ov-base-sparse.h (sort): Sort methods calling 15281 underlying array or sparse sort methods. 15282 * ov-str-mat.h (sort): String specific sort methods. 15283 15284 * TEMPLATE-INST/Array-tc.cc: Instantiate the array sort methods. 15285 * ov-streamoff.h (sort): Sort versions returning and error. 15286 * oct-stream.cc, ov-typeinfo.cc, Array-os.cc: Null instantiation 15287 of array sort methods. 15288 15289 * Makefile.in (DLD_XSRC): Remove sort.cc 15290 * DLD-FUNCTIONS/sort.cc: Remove 15291 * data.cc (Fsort): New function using octave_value sort methods 15292 for the sorting. Add tests. 15293 152942008-01-30 Thomas Weber <thomas.weber.mail@gmail.com> 15295 15296 * pager.cc (Fmore): Doc fix. 15297 152982008-01-28 Michael Goffioul <michael.goffioul@gmail.com> 15299 15300 * genprops.awk: Add update ('u') modifier and document the 15301 readonly ('r') modifier. 15302 * graphics.h.in (class base_scaler, class lin_scaler, class 15303 log_scaler, class scaler): New classes to make abstraction of the 15304 axis scale. 15305 (base_graphics_backend::get_screen_resolution, 15306 graphics_backend::get_screen_resolution): New methods. 15307 (axes::properties::sx, axes::properties::sy, 15308 axes::properties::sz): New scaler fields. 15309 (axes::properties::get_x_scaler, axes::properties::get_y_scaler, 15310 axes::properties::get_z_scaler): New accessors. 15311 (axes::properties::x_render, axes::properties::x_render_inv, 15312 axes::properties::x_gl_mat1, axes::properties::x_gl_mat2, 15313 axes::properties::x_zlim): New utility Matrix fields. 15314 (axes::properties::get_boundingbox, 15315 axes::properties::update_camera, 15316 axes::properites::update_aspectratios, 15317 axes::properties::update_transform, 15318 axes::properties::update_xscale, axes::properties::update_yscale, 15319 axes::properties::update_zscale, axes::properties::update_view, 15320 axes::properties::update_xdir, axes::properties::update_ydir, 15321 axes::properties::update_zdir): New updater methods. 15322 (axes::properties::init): Initialize sx, sy, sz and x_zlim correctly. 15323 (axes::properties::position): Use valid default position value. 15324 (axes::properties::xscale, axes::properties::yscale, 15325 axes::properties::zscale, axes::properties::xdir, 15326 axes::properties::ydir, axes::properties::zdir, 15327 axes::properties::view): Add updater ('u') property modifier. 15328 * graphics.cc (default_axes_position, default_axes_outerposition): 15329 New initializers. 15330 (convert_position): New utility function to convert position 15331 according to specified units. 15332 (gnuplot_backend::get_screen_resolution): New method. 15333 (axes::properties::set_defaults): Initilize recently added properties. 15334 (xform_matrix, xform_vector, transform, xform_scale, 15335 xform_translate, scale, translate, xform, normalize, dot, cross, 15336 unit_cube, cam2xform, xform2cam): New inline transformation 15337 utility functions. 15338 (axes::properties::update_camera, 15339 axes::properties::update_aspectratios, 15340 axes::properties::get_boundingbox): New updater methods for 15341 computing transformation matrices. 15342 (axes::update_axis_limits): Update transformation data. 15343 153442008-01-28 John W. Eaton <jwe@octave.org> 15345 15346 * oct-stream.cc (BEGIN_CHAR_CLASS_CONVERSION): Handle width properly. 15347 (OCTAVE_SCAN) [__GNUG__ && ! CXX_ISO_COMPLIANT_LIBRARY]: 15348 Delete special case. 15349 153502008-01-25 David Bateman <dbateman@free.fr> 15351 15352 * DLD-FUNCTIONS/rand.cc (Frandp): Relax relative error on randp 15353 tests. 15354 153552008-01-25 Michael Goffioul <michael.goffioul@gmail.com> 15356 15357 * graphics.h.in (base_properties::get_backend, 15358 base_graphics_object::get_backend, graphics_backend::get_backend): 15359 New methods for convenient access to the backend. 15360 (figure::get_backend, figure::set_backend): Remove. 15361 * graphics.cc (base_properties::get_backend): New method. 15362 (Fdrawnow): Use graphics_object::get_backend to simplify code. 15363 153642008-01-24 Pascal Dupuis <Pascal.Dupuis@worldonline.be> 15365 15366 * mxarray.h.in: Include <cstring>. 15367 153682008-01-22 John W. Eaton <jwe@octave.org> 15369 15370 * graphics.cc (clear_drawnow_request): New function. 15371 (Fdrawnow): Add it to the unwind_protect stack. 15372 15373 * input.cc (Vdrawnow_requested): No longer static. 15374 * input.h: Provide decl. 15375 * graphics.cc (Fdrawnow, Fset, make_graphics_object): 15376 Use Vdrawnow_requested directly. 15377 15378 * toplev.cc (octave_add_atexit_function, 15379 octave_remove_atexit_function): New functions. 15380 (Fatexit): Use them. 15381 * graphics.cc (Fdrawnow): Call octave_add_atexit_function instead 15382 of using eval. 15383 * toplev.h (octave_add_atexit_function, 15384 octave_remove_atexit_function): Provide decls. 15385 153862008-01-22 Michael Goffioul <michael.goffioul@gmail.com> 15387 15388 * graphics.h.in (base_properties::is_visible, 15389 base_properties::set_modified): New accessors. 15390 (class base_graphics_backend, class graphics_backend): New classes 15391 for handling octave/backend interaction. 15392 (figure::properties::close): Add "pop" argument controlling 15393 whether the figure should be popped from the list of existing figures. 15394 (class figure::properties): New backend field and accessors, holding 15395 the graphics backend associated with the figure. 15396 * graphics.cc (class gnuplot_backend): New class for the default 15397 gnuplot backend. 15398 (figure::properties::close): Add "pop" argument and transfer the 15399 figure closing to the associated backend. 15400 (Fdrawnow): New builtin function, converted from drawnow.m. 15401 154022008-01-19 John W. Eaton <jwe@octave.org> 15403 15404 * genprops.awk (emit_source): Use "pname" for property name argument. 15405 154062008-01-19 Shai Ayal <shaiay@users.sourceforge.net> 15407 15408 * graphics.h.in (class figure::properties): New properties: 15409 alphamap, currentcharacter, currentobject, current_point, 15410 dockcontrols, doublebuffer, filename, integerhandle, 15411 inverthardcopy, keypressfcn, keyreleasefcn, menubar, mincolormap, 15412 name, numbertitle, paperunits, paperposition, paperpositionmode, 15413 papersize, papertype, pointer, pointershapecdata, 15414 pointershapehotspot, position, renderer, renderermode, resize, 15415 resizefcn, selectiontype, toolbar, units, windowbuttondownfcn, 15416 windowbuttonmotionfcn, windowbuttonupfcn, windowbuttonwheelfcn, 15417 windowstyle, wvisual, wvisualmode, xdisplay, xvisual, xvisualmode, 15418 buttondownfcn. 15419 154202008-01-19 Michael Goffioul <michael.goffioul@gmail.com> 15421 15422 * graphics.h.in (base_properties::beingdeleted, 15423 base_properties::is_beingdeleted, 15424 base_properties::get_beingdeleted, 15425 base_properties::set_beingdeleted): 15426 Add beingdeleted property and accessors. 15427 * graphics.cc (base_properties::get): Likewise. 15428 (gh_manager::free): Set beingdeleted to "on" when freeing an object. 15429 * genprops.awk: Skip C++-style comments in property declaration. 15430 15431 * graphics.h.in (class axes::properties): New properties: alim, 15432 alimmode, xminortick, yminortick, zminortick, ambientlightcolor, 15433 cameraposition, cameratarget, cameraupvector, cameraviewangle, 15434 camerapositionmode, cameratargetmode, cameraupvectormode, 15435 cameraviewanglemode, currentpoint, drawmode, fontangle, fontname, 15436 fontsize, fontweight, fontunits, gridlinestyle, 15437 minorgridlinestyle, linestyleorder, linewidth, plotboxaspectratio, 15438 plotboxaspectratiomode, projection, tickdir, tickdirmode, 15439 ticklength, tightinset, units, x_viewtransform, 15440 x_projectiontransform, x_viewporttransform, x_normrendertransform, 15441 x_rendertransform. 15442 * genprops.awk: Handle new readonly modifier 'r'. 15443 154442008-01-18 Juhani Saastamoinen <juhani@cs.joensuu.fi> 15445 15446 * genprops.awk: Avoid using "default" as a variable name. 15447 154482008-01-17 Michael Goffioul <michael.goffioul@gmail.com> 15449 15450 * graphics.h.in (data_property::get_data_limits): Reset min/max values. 15451 154522008-01-17 David Bateman <dbateman@free.fr> 15453 15454 * ov-fcn-inline.cc: Add tests for Finline. 15455 154562008-01-17 Ben Abbott <bpabbott@mac.com> 15457 15458 * load-path.cc (F__pathorig__): Rename from Fpathdef. 15459 (Frestoredefaultpath): New function. 15460 154612008-01-16 John W. Eaton <jwe@octave.org> 15462 15463 * pt-assign.cc (tree_simple_assignment::rvalue, 15464 tree_multi_assignment::rvalue): Handle assignment of 15465 comma-separated lists. 15466 154672008-01-15 John W. Eaton <jwe@octave.org> 15468 15469 * mappers.cc (install_mapper_functions): Move test for asin here 15470 from test/test_arith.m. 15471 15472 * graphics.h.in (class line::properties, class text::properties): 15473 Rename erase_mode property to erasemode. 15474 154752008-01-15 Michael Goffioul <michael.goffioul@gmail.com> 15476 15477 * graphics.h.in (base_properties::remove_child, 15478 base_properties::adopt, base_properties::update_axis_limits): 15479 Make virtual. 15480 (base_graphics_object::mark_modified, 15481 base_graphics_object::override-defaults, 15482 base_graphics_object::set_from_list, base_graphics_object::set, 15483 base_graphics_object::get, base_graphics_object::get_parent, 15484 base_graphics_object::remove_child, base_graphics_object::adopt, 15485 base_graphics_object::reparent, base_graphics_object::defaults, 15486 base_graphics_object::type): Add default implementation. 15487 (class root_figure, class figure, class axes, class line, 15488 class text, class image, class patch, class surface): 15489 Remove overloaded virtual methods whose implementation is 15490 identical to the default one. 15491 15492 * genprops.awk: Handle 'h' modifier for hidden properties. 15493 Replace "get(void)" method with "get(bool all = false)" to allow 15494 access to hidden properties. 15495 15496 * graphics.h.in (base_properties::get, base_graphics_object::get, 15497 graphics_object::get, root_figure::get, figure::get, axes::get, 15498 line::get, text::get, patch::get, surface::get, image::get): 15499 New arg, ALL, to access hidden properties. 15500 (gh_manager::do_get_object): Do not look for invalid handles. 15501 (figure::properties::__plot_stream__, 15502 figure::properties::__enhanced__, axes::properties::__colorbar__): 15503 Make properties hidden. 15504 (axes::properties, line::properties, text::properties, 15505 patch::properties, surface::properties): Remove obsolete 'a' 15506 property modifier. 15507 * graphics.cc (base_properties::get): New arg ALL, to access 15508 hidden properties. 15509 (base_properties::mark_modified): Call mark_modified only on valid 15510 parent object. 15511 (__get__): New internal function returning all properties, 15512 including the hidden ones. 15513 155142008-01-15 John W. Eaton <jwe@octave.org> 15515 15516 * graphics.cc (properties::set_currentfigure, 15517 properties::set_currentaxes): Don't convert arg to double 15518 before passing to graphics_handle constructor. 15519 (base_properties::remove_child): Call mark_modified if list of 15520 children changes. 15521 155222008-01-15 Shai Ayal <shaiay@users.sourceforge.net> 15523 15524 * graphics.h.in (class line::properties): New properties: 15525 displayname, erasemode. 15526 (class text::properties) New properties: backgroundcolor, 15527 displayname, edgecolor, erase_mode, editing, fontunits, linestyle, 15528 linewidth, margin, verticalalignment. 15529 155302008-01-14 John W. Eaton <jwe@octave.org> 15531 15532 * load-path.cc (load_path::do_initialize): Start with sys_path empty. 15533 (maybe_add_path_elts): Omit path_sep_str if path is empty. 15534 15535 * symtab.h (symbol_table::do_pop_context): Remove symbol_records 15536 which have no more context. 15537 (symbol_table::symbol_record::pop_context, 15538 (symbol_table::symbol_record::symbol_record_rep::pop_context): 15539 Return size of value_stack, or 1 if variable is persistent or global. 15540 155412008-01-14 Kai Habel <kai.habel@gmx.de> 15542 15543 * graphics.h.in (class patch::properties): New properties: 15544 cdatamapping, facevertexalphadata, facevertexcdata, vertexnormals, 15545 normalmode, facelighting, edgealpha, edgelighting, 15546 backfacelighting, ambientstrength, diffusestrength, 15547 specularstrength, specularexponent, specularcolorreflectance, 15548 erasemode. 15549 155502008-01-14 Michael Goffioul <michael.goffioul@gmail.com> 15551 15552 * graphics.h.in (gh_manager::do_make_graphics_handle, 15553 gh_manager::make_graphics_handle): New boolean parameter 15554 do_createfcn. 15555 * graphics.cc (xcreatefcn): New static function. 15556 (gh_manager::do_make_graphics_handle): New boolean parameter 15557 do_createfcn. Execute createfcn callback accordingly. 15558 (make_graphics_object, F__go_figure__): Use do_createfcn 15559 parameter and call xcreatefcn 15560 15561 * genprops.awk (emit_get_callback): Pass user data to execute method. 15562 * graphics.cc (execute_callback): New static function. 15563 (callback_property::validate): Make it work. 15564 (callback_property::execute): Make it work. 15565 (gh_manager::do_free): Execute delete function here. 15566 * graphics.h.in (callback_property::execute): Fix decl. 15567 (base_properties::buttondownfcn, base_properties::createfcn, 15568 base_properties::deletefcn, base_properties::userdata): Default 15569 value is empty Matrix, not undefined octave_value object. 15570 (base_properties::execute_createfcn): New function. 15571 (base_properties::execute_deletefcn): New function. 15572 155732007-12-13 Shai Ayal <shaiay@users.sourceforge.net> 15574 15575 * graphics.h.in, graphics.cc (class base_properties): New 15576 properties: busyaction, buttondownfcn, clipping, createfcn, 15577 deletefcn, handlevisibility, hittest, interruptible, selected, 15578 selectionhighlight, uicontextmenu, userdata, visible. 15579 (class figure): Delete visible property. 15580 155812008-01-13 Michael Goffioul <michael.goffioul@gmail.com> 15582 15583 * graphics.h.in: Sprinkle with OCTINTERP_API as needed. 15584 (axes::properties::xaxislocation): Allow value of zero. 15585 (axes::properties::yaxislocation): Likewise. 15586 155872008-01-12 Michael Goffioul <michael.goffioul@gmail.com> 15588 15589 * Makefile.in (distclean): Delete graphics-props.cc. 15590 15591 * genprops.awk: Handle new graphics property classes. 15592 15593 * graphics.h.in, graphics.cc: Adapt for new specific property types. 15594 155952008-01-12 John W. Eaton <jwe@octave.org> 15596 15597 * toplev.cc (octave_config_info): Add GNUPLOT to the struct. 15598 * oct-conf.h.in (OCTAVE_CONF_GNUPLOT): New macro. 15599 156002008-01-11 John W. Eaton <jwe@octave.org> 15601 15602 * DLD-FUNCTIONS/__qp__.cc (qp): Undo part of change from 15603 2007-09-04 (compute Y at each iteration). 15604 156052008-01-10 John W. Eaton <jwe@octave.org> 15606 15607 * DLD-FUNCTIONS/fsolve.cc (Ffsolve): Doc fix. 15608 (hybrd_info_to_fsolve_info): Swap return values for -1 and -2 inputs. 15609 15610 * DLD_FUNCTIONS/__gnuplot_raw__.l: Delete. 15611 * Makefile.in (DLD_XSRC): Remove it from the list. 15612 (BUILT_DISTFILES): Remove __gnuplot_raw__.cc from the list. 15613 (stamp-prereq): Don't depend on __gnuplot_raw__.cc. 15614 (maintainer-clean): Don't remove __gnuplot_raw__.cc. 15615 (__gnuplot_raw__.cc): Delete target. 15616 (__gnuplot_raw__.o, pic/__gnuplot_raw__.o): Delete targets. 15617 15618 * mex.cc (calc_single_subscript_internal): New static function. 15619 (mxArray_octave_value::calc_single_subscript): Use it. 15620 (mxArray_matlab::calc_single_subscript): Use it. 15621 156222008-01-07 John W. Eaton <jwe@octave.org> 15623 15624 * pt-except.cc (tree_try_catch_command::eval): 15625 Set Vdebug_on_error and Vdebug_on_warning to false while executing 15626 try block. 15627 15628 * error.cc (Vdebug_on_error, Vdebug_on_warning): No longer static. 15629 * error.h: Provide decls. 15630 15631 * gripes.cc (gripe_wrong_type_arg (const std::string&, const 15632 octave_value&, bool)): New function. 15633 * gripes.h: Provide decl. 15634 15635 * oct-stream.cc (printf_value_cache::printf_value_cache): 15636 Reject structs, cells, objects, and lists. 15637 (octave_base_stream::do_printf): Quit early if printf_value_cache 15638 constructor fails. 15639 15640 * parse.y (make_anon_fcn_handle): Don't attempt to convert 15641 expression to assignment to __retval__. 15642 156432008-01-07 Michael Goffioul <michael.goffioul@gmail.com> 15644 15645 * ov-builtin.h (octave_builtin): Tag with OCTINTERP_API. 15646 * ov-dld-fcn.h (octave_dld_function): Likewise. 15647 15648 * ov-dld-fcn.cc (octave_dld_function::create): New function. 15649 * ov-dld-fcn.h: Provide decl. 15650 * defun.h (DEFINE_FUNX_INSTALLER_FUN3): Call it instead of 15651 creating a new octave_dld_function object directly. 15652 156532008-01-04 John Swensen <jpswensen@comcast.net> 15654 15655 * debug.cc (bp_table::do_remove_all_breakpoints_in_file): 15656 Avoid calling erase on invalid bp_map iterators. 15657 (bp_table::do_remove_breakpoint): Only try to delete breakpoints 15658 if some exist. Avoid calling erase on invalid bp_map iterators. 15659 (parse_dbfunction_params): Return early if ARGS is empty. 15660 New arg, WHO. Change all uses. 15661 Accept but do nothing with struct args. 15662 156632008-01-04 Thomas Weber <thomas.weber.mail@gmail.com> 15664 15665 * variables.cc (Fclear): Doc fix. 15666 156672008-01-04 John W. Eaton <jwe@octave.org> 15668 15669 * symtab.h (symbol_table:pop_scope): Avoid accessing beyond end of 15670 scope_stack. 15671 156722008-01-04 David Bateman <dbateman@free.fr> 15673 15674 * ov-mapper.cc (SPARSE_MAPPER_LOOP_2): Use data method instead of 15675 elem in the case where F(0) is non-zero. 15676 156772007-12-28 John W. Eaton <jwe@octave.org> 15678 15679 Merge changes from object branch: 15680 15681 2007-12-12 John W. Eaton <jwe@octave.org> 15682 15683 * load-path.cc (load_path::dir_info::get_file_list, 15684 load_path::move_method_map, load_path::remove_method_map, 15685 load_path::do_find_fcn, load_path::do_find_private_fcn, 15686 load_path::do_find_method, load_path::do_find_file, 15687 load_path::do_find_first_of, load_path::do_find_all_first_of, 15688 load_path::do_display, load_path::add_to_method_map, genpath, 15689 execute_pkg_add_or_del): Use file_ops::concat. 15690 15691 2007-08-24 John W. Eaton <jwe@octave.org> 15692 15693 * variables.cc (Fmislocked): return value for nargin == 0 case. 15694 15695 2007-07-27 John W. Eaton <jwe@octave.org> 15696 15697 * pt-idx.cc (tree_index_expression::rvalue): 15698 Pass substring of type to subsref when doing partial evaluation. 15699 (tree_index_expression::lvalue): Likewise. 15700 15701 2007-06-29 John W. Eaton <jwe@octave.org> 15702 15703 * ov-class.cc (is_built_in_class, set_class_relationship, 15704 Fsuperiorto, Finferiorto): New functions. 15705 (octave_class::in_class_method): New function. 15706 (octave_class::subsref, octave_class:subsasgn): Use it. 15707 15708 2007-06-28 John W. Eaton <jwe@octave.org> 15709 15710 * ov-class.cc (sanitize): New function. 15711 (make_idx_args): Use it. 15712 15713 2007-06-28 John W. Eaton <jwe@octave.org> 15714 15715 * ov-class.cc (octave_class::subsasgn): Expect and use only 15716 one return value from feval of subsasgn method. 15717 15718 * ov.cc (octave_value::assign): Don't convert to struct if 15719 indexing a class object with ".". 15720 15721 * pt-idx.cc (tree_index_expression::make_arg_struct): 15722 Use Cell instead of octave_value_list for subscripts. 15723 15724 * ov-class.cc (make_idx_args): For "." index, subs field is 15725 string, not cell. 15726 15727 2007-06-27 John W. Eaton <jwe@octave.org> 15728 15729 * ov-fcn-handle.cc (octave_fcn_handle::save_ascii, 15730 octave_fcn_handle::load_ascii, octave_fcn_handle::save_binary, 15731 octave_fcn_handle::load_binary, octave_fcn_handle::save_hdf5, 15732 octave_fcn_handle::load_hdf5): Adapt to new symbol table objects. 15733 15734 * symtab.h (symbol_table::all_variables, 15735 symbol_table::do_all_variables): New arg, defined_only. 15736 15737 2007-06-26 John W. Eaton <jwe@octave.org> 15738 15739 * ls-mat5.cc (read_mat5_binary_element): Adapt to new symbol table 15740 objects. 15741 15742 * variables.cc (Vwhos_line_format): New static variable. 15743 (Fwhos_line_format): New function. 15744 (symbol_record_name_compare): Delete function. 15745 (symbol_record_name_compare, whos_parameter): New structs. 15746 (print_descriptor, dimensions_string_req_first_space, 15747 dimensions_string_req_total_space, make_dimensions_string, 15748 parse_whos_line_format, print_symbol_info_line): New static 15749 functions, adapted from old symbol table class. 15750 (do_who): Adapt to new symbol table objects. 15751 15752 * symtab.h (symbol_table::glob_variables): New functions. 15753 (symbol_table::do_glob): New argument, vars_only. Change all uses. 15754 15755 2007-06-22 John W. Eaton <jwe@octave.org> 15756 15757 * symtab.cc (symbol_table::fcn_info::fcn_info_rep::help_for_dispatch): 15758 New function. 15759 * symtab.h: Provide decl. 15760 (symbol_table::fcn_info::help_for_dispatch, 15761 symbol_table::help_for_dispatch): New functions. 15762 15763 * help.cc (help_from_symbol_table): Call 15764 symbol_table::help_for_dispatch instead of 15765 extract_help_from_dispatch. 15766 15767 * help.cc (extract_help_from_dispatch): Delete. 15768 * help.h: Delete decl. 15769 15770 2007-06-21 John W. Eaton <jwe@octave.org> 15771 15772 * DLD-FUNCTIONS/dispatch.cc (class octave_dispatch): Delete class. 15773 (builtin, any_arg_is_magic_colon, dispatch_record): Delete functions. 15774 (Fbuiltin, Fdispatch): Adapt to new symbol table objects. 15775 15776 * symtab.cc (symbol_table::fcn_info::fcn_info_rep::print_dispatch): 15777 New function. 15778 * symtab.h: Provide decl. 15779 (symbol_table::fcn_info::print_dispatch, symbol_table::print_dispatch): 15780 New functions. 15781 15782 * symtab.h (symbol_table::fcn_info::fcn_info_rep::clear_dispatch, 15783 symbol_table::fcn_info::clear_dispatch, symbol_table::clear_dispatch): 15784 New functions. 15785 15786 * symtab.h (symbol_table::fcn_info::fcn_info_rep::get_dispatch, 15787 symbol_table::fcn_info::get_dispatch, symbol_table::get_dispatch): 15788 New functions. 15789 15790 * symtab.cc (symbol_table::fcn_info::fcn_info_rep::find): 15791 Use leftmost class argument as dispatch type, or first argument if 15792 there are no class arguments. 15793 15794 2007-06-20 John W. Eaton <jwe@octave.org> 15795 15796 * ov-base.cc (Vprint_answer_id_name, Fprint_answer_id_name): Delete. 15797 (octave_base_value::print_with_name): Always print name. 15798 15799 * ov-base.cc (Vsilent_functions): No longer static. 15800 * ov-base.h: Provide decl. 15801 15802 * ov-class.cc (Fmethods): Define as command. 15803 15804 * ov-class.cc (octave_class::print): Simply call print_raw. 15805 15806 * ov-class.cc (octave_class::print_with_name): New function. 15807 * ov-class.h: Provide decl. 15808 15809 2007-06-19 John W. Eaton <jwe@octave.org> 15810 15811 * ov.cc (octave_value::do_unary_op, octave_value::do_binary_op): 15812 Handle class methods. 15813 15814 * ov.cc (octave_value::unary_op_fcn_name, 15815 octave_value::binary_op_fcn_name): New functions. 15816 * ov.h: Provide decls. 15817 15818 * ov-typeinfo.cc (octave_value_typeinfo::register_unary_class_op, 15819 octave_value_typeinfo::register_binary_class_op, 15820 octave_value_typeinfo::do_register_unary_class_op, 15821 octave_value_typeinfo::do_register_binary_class_op, 15822 octave_value_typeinfo::do_lookup_unary_class_op, 15823 octave_value_typeinfo::do_lookup_binary_class_op): New functions. 15824 * ov-typeinfo.h: Provide decls. 15825 15826 * ov-typeinfo.h (octave_value_typeinfo::unary_class_op_fcn, 15827 octave_value_typeinfo::binary_class_op_fcn): New typedefs. 15828 (octave_value_typeinfo::unary_class_ops, 15829 octave_value_typeinfo::binary_class_ops): New data members. 15830 (octave_value_typeinfo::octave_value_typeinfo): Initialize them. 15831 (octave_value_typeinfo::lookup_unary_class_op, 15832 octave_value_typeinfo::lookup_binary_class_op): New functions. 15833 15834 * OPERATORS/op-class.cc: New file. 15835 * Makefile.in (OP_XSRC): Add it to the list. 15836 15837 * ov.cc (install_types): Call octave_class::register_type here. 15838 15839 * ov-class.h (octave_class): Implement by containing a map object 15840 instead of deriving from octave_struct. 15841 * ov-class.cc (octave_class::subsref, octave_class::subsasgn): 15842 Don't use octave_class implementation as default action. 15843 15844 * ov.h, ov.cc (octave_value::octave_value (const Octave_map&, const 15845 std::string&)): New constructor. 15846 15847 2007-06-18 John W. Eaton <jwe@octave.org> 15848 15849 * ov-class.cc (octave_class::subsref, octave_class::subsasgn): 15850 Handle dispatch to user-defined methods. 15851 15852 * parse.y (load_fcn_from_file): New arg, dispatch_type. 15853 Change all uses. 15854 15855 * ov-fcn.h (octave_function::is_class_constructor, 15856 octave_function::is_class_method, octave_function::dispatch_class): 15857 New virtual functions. 15858 15859 * ov-usr-fcn.h (octave_user_function::dispatch_class, 15860 octave_usr_function::stash_dispatch_class): New functions. 15861 (octave_usr_fucntion::xdispatch_class): New data member. 15862 * parse.y (frob_function): Call stash_dispatch_class here. 15863 15864 * ov-struct.cc (Ffieldnames): Also handle objects. 15865 15866 * ov-class.cc (Fmethods): New function. 15867 * load-path.cc (load_path::do_methods): New function. 15868 * load-path.h (load_path::methods): New function. 15869 15870 * ov.h (octave_value::is_object): New function. 15871 * ov-base.h (octave_base_value::is_object): New virtual function. 15872 * ov-class.h (octave_class::is_object): New function. 15873 * ov-class.cc (Fisobject): New function. 15874 15875 2007-06-15 John W. Eaton <jwe@octave.org> 15876 15877 * ov-class.cc (octave_class::print): Call display method if found. 15878 15879 * symtab.h (symbol_table::fcn_info::find_method): New function. 15880 (symbol_table::find_method): New function. 15881 (symbol_table::fcn_info::fcn_info_rep::find_method): Provide decl. 15882 * symtab.cc (symbol_table::fcn_info::fcn_info_rep::find_method): 15883 New function. 15884 (symbol_table::fcn_info::fcn_info_rep::find): Use it. 15885 15886 2007-06-14 John W. Eaton <jwe@octave.org> 15887 15888 * symtab.h (symbol_table::clear_mex_functions): Make it work. 15889 (symbol_table::fcn_info::fcn_info_rep::clear_mex_function, 15890 symbol_table::fcn_info::clear_mex_function): New functions. 15891 15892 2007-06-08 John W. Eaton <jwe@octave.org> 15893 15894 * defun.cc (Falias): Delete. 15895 15896 * variables.cc (load_fcn_try_ctor): New function. 15897 (lookup): call load_fcn_try_ctor instead of load_fcn_from_file. 15898 15899 * variables.cc, variables.h (at_top_level, lookup_by_name, lookup, 15900 initialize_symbol_tables, fcn_out_of_date, symbol_out_of_date, 15901 lookup_function, lookup_user_function, link_to_global_variable, 15902 link_to_builtin_or_function, force_link_to_function, Fdocument, 15903 is_local_variable, do_clear_all, do_clear_functions, 15904 do_clear_globals, do_clear_variables, do_clear_function, 15905 do_clear_global, do_clear_variable, do_clear_symbol, 15906 do_clear_function_pattern, do_clear_global_pattern, 15907 do_clear_variable_pattern, do_clear_symbol_pattern, 15908 clear_function, clear_variable, clear_symbol): 15909 Delete (some functionality moved to the new symtab.cc and some is 15910 no longer needed). 15911 (Fignore_function_time_stamp): Move to symtab.cc. 15912 15913 * lex.l (lookup_identifier): Delete. 15914 15915 * parse.y (is_function_file): New function. 15916 (load_fcn_from_file): Return pointer to octave_function, not bool. 15917 15918 * ov-usr-fcn.h, ov-usr-fcn.cc (octave_user_function::argn_sr, 15919 octave_user_function::nargin_sr, octave_user_function::nargout_sr, 15920 octave_user_function::varargin_sr): Delete data members. 15921 (octave_user_function::install_automatic_vars): Delete. 15922 (octave_user_script::do_multi_index_op): New function. 15923 15924 * ov-fcn.h (octave_function::locked, octave_function::my_dir_name): 15925 New data members. 15926 (octave_function::dir_name, octave_function::stash_dir_name, 15927 octave_function::lock, octave_function::unlock, 15928 octave_function::islocked): New functions. 15929 15930 * of-fcn-handle.h, ov-fcn-handle.cc (octave_fcn_handle::subsref): 15931 Call out_of_date_check here to simplify time stamp checking. 15932 (octave_fcn_handle::reload_warning): Delete. 15933 15934 * ov.h (octave_value::is_user_script, octave_value::is_user_function): 15935 New functions. 15936 * ov-base.h (octave_base_value::is_user_script, 15937 octave_base_value::is_user_function): New pure virtual functions. 15938 * ov-fcn.h (octave_function::is_user_script, 15939 octave_function::is_user_function): Delete. 15940 15941 * load-save.cc (install_loaded_variable): Greatly simplify. 15942 15943 * load-path.h, load-path.cc: Change private_fcn_file to private_file. 15944 (load_path::private_fcn_map): New data member. 15945 (load_path::do_add, load_path::do_remove, load_path::do_update): 15946 Also manage private_file_map here. 15947 (load_path::add_to_private_fcn_map): New function. 15948 (load_path::remove_private_fcn_map): New function. 15949 (load_path::do_find_private_fcn): Make it work. 15950 (get_file_list): New function. 15951 (load_path::do_display): Use it. Display private map. 15952 (load_path::find_method, load_path::find_fcn): Handle directory name. 15953 15954 * token.cc, token.h, toplev.cc, debug.cc, defun.cc, defun-dld.h, 15955 defun-int.h, error.cc, help.cc, load-save.h, load-save.cc, mex.cc, 15956 octave.cc, ov-fcn-handle.cc, ov-usr-fcn.cc, parse.h, parse.y, 15957 lex.l, variables.cc: Adapt to new symbol table objects (my 15958 apologies for the lack of detail). 15959 15960 * unwind-prot.h (unwind_protect::add): Set default value for ptr arg. 15961 15962 * pt-stmt.cc (tree_statement::eval): Rework method for deciding 15963 whether to assign value to ans. 15964 15965 * pt-idx.cc (tree_index_expression::rvalue): 15966 Looking up symbol may evaluaate first args now. 15967 15968 * pt-id.h, pt-id.cc (tree_identifier::document, 15969 tree_identifier::is_defined, tree_identifier::define, 15970 tree_identifier::is_function, tree_identifier::lookup, 15971 tree_identifier::link_to_global): Delete. 15972 (tree_identifier::do_lookup): Simplify. 15973 (tree_identifier::rvalue): Looking up symbol can't execute script now. 15974 15975 * pt-misc.cc (tree_parameter_list::initialize_undefined, 15976 tree_parameter_list::is_defined): Call is_variable for elt, not 15977 is_defined. 15978 15979 * pt-fcn-handle.h (tree_anon_fcn_handle::fcn): Now pointer to 15980 octave_user_function, not value. Change all uses. 15981 15982 * pt-decl.h (tree_decl_command::initialized): Delete data member. 15983 (tree_decl_elt::is_variable): New function. 15984 * pt-decl.cc: Fix all uses of tree_decl_command::initialized. 15985 15986 * ls-hdf5.cc, ls-mat-ascii.cc, ls-mat4.cc, ls-mat5.cc, 15987 ls-oct-ascii.cc, ls-oct-binary.cc, input.cc: Don't include symtab.h. 15988 15989 * dynamic-ld.h, dynamic-ld.cc (octave_dynamic_loader::load_oct, 15990 octave_dynamic_loader::load_mex, octave_dynamic_loader::do_load_oct, 15991 octave_dynamic_loader::do_load_mex): Adapt to new symbol table 15992 objects. Return pointer octave_function instead of bool. 15993 15994 * DLD-FUNCTIONS/dispatch.cc (Fbuiltin): Disable for now. 15995 Disable code that works with old symbol tables. 15996 (Fbuiltin): Simply call symbol_table::add_dispatch. 15997 15998 * pt-arg-list.cc, pt-arg-list.h, pt-assign.cc, pt-assign.h, 15999 pt-binop.cc, pt-binop.h, pt-bp.h, pt-cell.cc, pt-cell.h, 16000 pt-cmd.cc, pt-cmd.h, pt-colon.cc, pt-colon.h, pt-const.cc, 16001 pt-const.h, pt-decl.cc, pt-decl.h, pt-except.cc, pt-except.h, 16002 pt-exp.h, pt-fcn-handle.cc, pt-fcn-handle.h, pt-id.cc, pt-id.h, 16003 pt-idx.cc, pt-idx.h, pt-jump.cc, pt-jump.h, pt-loop.cc, pt-loop.h, 16004 pt-mat.cc, pt-mat.h, pt-misc.cc, pt-misc.h, pt-select.cc, 16005 pt-select.h, pt-stmt.cc, pt-stmt.h, pt-unop.cc, pt-unop.h: 16006 Adapt dup functions to use scope instead of symbol_table objects. 16007 16008 * TEMPLATE-INST/Array-sym.cc: Delete. 16009 * Makefile.in (TI_XSRC): Remove it from the list. 16010 16011 * symtab.h, symtab.cc: Replace with new versions. 16012 16013 2007-05-16 John W. Eaton <jwe@octave.org> 16014 16015 * oct-lvalue.cc, oct-lvalue.h (octave_lvalue::chg_fcn): Delete. 16016 Fix all uses. 16017 16018 2007-05-15 John W. Eaton <jwe@octave.org> 16019 16020 * load-path.cc (load_path::do_find_private_function): New function. 16021 * load-path.h (load_path::do_find_private_function): Provide decl. 16022 (load_path::find_private_function): New function. 16023 16024 2007-05-08 John W. Eaton <jwe@octave.org> 16025 16026 * pt-idx.cc (tree_index_expression::rvalue): Handle dispatch here. 16027 16028 * pt-id.cc (tree_identifier::is_variable, tree_identifier::lookup): 16029 New functions. 16030 * pt-id.cc: Provide decls. 16031 16032 * parse.y (current_class_name): New global variable. 16033 * parse.h: Provide decl. 16034 16035 * parse.y (load_fcn_from_file, parse_fcn_file): 16036 New arg, dispatch_type. 16037 (parse_fcn_file): Protect current_class_name and set it to 16038 dispatch_type before parsing function. 16039 (load_fcn_from_file): If dispatch_type is not empty, call 16040 load_path::find_method instead of load_path::find_fcn. 16041 * parse.h: Fix decls for extern functions. 16042 16043 * lex.h (lexical_feedback::parsing_class_method): New data member. 16044 * lex.l (lexical_feedback::init): Initialize it. 16045 (lookup_identifier): Check it and set sym_name accordingly. 16046 16047 * ov-usr-fcn.h (octave_user_function::mark_as_class_constructor, 16048 octave_user_function::is_class_constructor, 16049 octave_user_function::mark_as_class_method, 16050 octave_user_function::is_class_method): New functions. 16051 (octave_user_function::class_constructor, 16052 octave_user_function::class_method): New data members. 16053 * ov-usr-fcn.cc (octave_user_function::octave_user_function): 16054 Initialize them. 16055 16056 * load-path.h, load-path.cc: Use typedefs to simplify template decls. 16057 Use fcn consistently instead of function. 16058 16059 2007-05-03 John W. Eaton <jwe@octave.org> 16060 16061 * ov-class.cc (Fclass): Move here. 16062 * ov-typeinfo.cc: From here. 16063 16064 * input.cc (octave_gets): Call load_path::update if user input 16065 contains something other than one of the characters " \t\n\r". 16066 16067 * ov-class.cc, ov-class.h: New files. 16068 * Makefile.in: Add them to the appropriate lists. 16069 16070 * load-path.cc (genpath): Skip directories beginning with "@". 16071 (load_path::dir_info::get_file_list): Don't return anything. 16072 Call get_private_function_map here. 16073 (load_path::dir_info::initialize): Not here. 16074 (load_path::dir_info_::get_method_file_map): New function. 16075 (load_path::method_map): New data member. 16076 (load_path::do_clear): Also clear method_map. 16077 (load_path::do_add): Also call add_to_method_map. 16078 (load_path::do_update): Also clear method_map and call 16079 (load_path::do_find_method): New function. 16080 (load_path::do_add_to_method_map): New function. 16081 (load_path::move_fcn_map, load_path::move_method_map): New functions. 16082 (load_path::move): Use them. 16083 (load_path::remove_fcn_map, load_path::remove_method_map): 16084 New functions. 16085 (load_path::remove): Use them. 16086 * load-path.h: Provide/fix decls. 16087 (load_path::find_method): New static function. 16088 16089 * Makefile.in (%.df : %.cc): Use mv instead of 16090 $(simple-move-if-change-rule). 16091 160922007-12-21 John W. Eaton <jwe@octave.org> 16093 16094 Version 3.0.0 released. 16095 16096 * version.h (OCTAVE_VERSION): Now 3.0.0. 16097 (OCTAVE_API_VERSION): Now api-v32. 16098 (OCTAVE_RELEASE_DATE): Now 2007-12-21. 16099 161002007-12-19 Thomas Kasper <ThomasKasper@gmx.net> 16101 16102 * OPERATORS/op-scm-cs.cc (DEFBINOP (pow)): Extract complex value 16103 from second arg. 16104 161052007-12-12 David Bateman <dbateman@free.fr> 16106 16107 * DLD-FUNCTIONS/sparse.cc (Fsparse): Check for scalar arguments 16108 for 2 argument version. 16109 161102007-12-12 John W. Eaton <jwe@octave.org> 16111 16112 * graphics.h.in (class axes) Add the layer property. 16113 * graphics.cc (class axes) Ditto. 16114 16115 * graphics.cc (gh_manager::get_handle): Use ceil instead of trunc. 16116 161172007-12-11 John W. Eaton <jwe@octave.org> 16118 16119 * version.h (OCTAVE_VERSION): Now 2.9.19+. 16120 161212007-12-11 John W. Eaton <jwe@octave.org> 16122 16123 * version.h (OCTAVE_VERSION): Now 2.9.19. 16124 (OCTAVE_API_VERSION): Now api-v31. 16125 (OCTAVE_RELEASE_DATE): Now 2007-12-11. 16126 16127 * graphics.cc (make_graphics_object): 16128 If successful, call __request_drawnow__. 16129 16130 * input.cc (Vgud_mode): New static variable. 16131 (F__gud_mode__): New function. 16132 (get_user_input): If debug and Vgud_mode, print location info in 16133 format for Emacs GUD mode. 16134 161352007-12-11 David Bateman <dbateman@free.fr> 16136 16137 * OPERATORS/op-bm-sbm.cc, OPERATORS/op-b-sbm.cc, 16138 OPERATORS/op-cm-scm.cc, OPERATORS/op-cm-sm.cc, 16139 OPERATORS/op-cs-scm.cc, OPERATORS/op-cs-sm.cc, 16140 OPERATORS/op-m-scm.cc, OPERATORS/op-m-sm.cc, 16141 OPERATORS/op-s-scm.cc, OPERATORS/op-s-sm.cc: Privilege 16142 conversion to dense matrices for compatibility. 16143 16144 * DLD-FUNCTIONS/sparse.cc (FSparse): Remove the mutate flag, as 16145 default bahavior is now to keep matrix sparse always. 16146 16147 * graphics.cc (axes::properties::properties): 16148 Initialize xcolor, ycolor, and zcolor to (0, 0, 0). 16149 16150 * graphics.h.in (gh_manager::next_handle): Now double. 16151 * graphics.cc (gh_manager::get_handle, gh_manager::gh_manager): 16152 Set fractional part of next_handle to a random value. 16153 161542007-12-10 John W. Eaton <jwe@octave.org> 16155 16156 * ov-cell.cc (octave_cell::all_strings): Handle empty elements. 16157 Handle N-d cell arrays. 16158 16159 * DLD-FUNCTIONS/fsolve.cc (Ffsolve): 16160 For compatibility, return [x, fval, info] instead of [x, info, msg]. 16161 Move tests here from test/test_nonlin.m. 16162 16163 * OPERATORS/op-cm-s.cc: Define function for el_mul with 16164 DEFNDBINOP_OP, not DEFBINOP_OP. 16165 16166 * OPERATORS/op-s-cm.cc: Define functions for el_and and el_or 16167 operators with DEFNDBINOP_FN. 16168 16169 * oct-hist.cc (default_history_file): Use file_ops::concat. 16170 * load-path.cc (dir_info::initialize, dir_info::get_file_list, 16171 load_path::do_find_fcn, load_path::do_find_file, genpath, 16172 execute_pkg_add_or_del, load_path::do_find_first_of, 16173 load_path::do_find_all_first_of): Likewise. 16174 16175 * help.cc (Flookfor): Avoid doubling directory separator. 16176 * dirfns.cc (Fmkdir): Likewise. 16177 16178 * pt-mat.cc (tree_matrix::rvalue): Produce sq_string if any 16179 strings are sq_string objects. 16180 161812007-12-10 David Bateman <dbateman@free.fr> 16182 16183 * graphics.h.in (data_property::data): Declare as NDArray instead 16184 of Matrix. Change all uses. 16185 161862007-12-10 Shai Ayal <shaiay@users.sourceforge.net> 16187 16188 * graphics.h.in (class figure) Add the color property. 16189 * graphics.cc (class figure) Ditto. 16190 161912007-12-07 David Bateman <dbateman@free.fr> 16192 16193 * data.cc (Fnorm): Don't return a scalar stored as a sparse 16194 matrix. Convert it to a scalar. 16195 16196 * graphics.cc (check_limit_val): Delete. 16197 (check_limit_vals): Simplify and no longer use check_limit_val. 16198 161992007-12-05 John W. Eaton <jwe@octave.org> 16200 16201 * version.h (OCTAVE_VERSION): Now 2.9.18+. 16202 162032007-12-05 John W. Eaton <jwe@octave.org> 16204 16205 * version.h (OCTAVE_VERSION): Now 2.9.18. 16206 (OCTAVE_API_VERSION): Now api-v30. 16207 (OCTAVE_RELEASE_DATE): Now 2007-12-05. 16208 162092007-12-04 John W. Eaton <jwe@octave.org> 16210 16211 * Makefile.in (INCLUDES): Add builtins.h to the list. 16212 16213 * oct-hist.cc (default_history_file): Use += instead of 16214 push_back to append character to std::string object. 16215 16216 * Makefile.in (LIBDLFCN): Delete all uses. 16217 16218 * toplev.cc (octave_config_info): Remove LIBDLFCN and 16219 DLFCN_INCFLAGS from the list. 16220 * oct-conf.h.in (OCTAVE_CONF_DLFCN_INCFLAGS, OCTAVE_CONF_LIBDLFCN): 16221 Delete. 16222 16223 * error.cc (Ferror): Handle error id. 16224 16225 * load-save.cc (Fsave, Fload): Doc fixes. 16226 From Marco Caliari <caliari@sci.univr.it>. 16227 162282007-12-04 Shai Ayal <shaiay@users.sourceforge.net> 16229 16230 * graphics.h.in (base_properties::get_type 16231 base_properties::get___modified__, 16232 base_properties::get___myhandle__): New functions. 16233 162342007-12-04 Christoph Mayer <Christoph.Mayer@dlr.de>. 16235 16236 * toplev.h (clean_up_and_exit, recover_from_exception, 16237 do_octave_atexit, global_command, curr_parent_function): 16238 Tag with OCTINTERP_API. 16239 162402007-12-03 David Bateman <dbateman@free.fr> 16241 16242 * DLD-FUNCTIONS/luinc.cc: Make tests conditional on HAVE_UMFPACK. 16243 * DLD-FUNCTIONS/spqr.cc: Make tests conditional on HAVE_CXSPARSE. 16244 16245 * DLD-FUNCTIONS/regexp.cc: Use "%!testif" blocks for conditional 16246 tests on PCRE. 16247 16248 * graphics.cc (class axes): Add color and activepositionproperty 16249 properties to axis objects. 16250 * graphics.h.in (class axes): ditto. 16251 16252 * DLD-FUNCTIONS/regexp.cc: Also include sys/types.h for regexp. 16253 162542007-11-30 John W. Eaton <jwe@octave.org> 16255 16256 * DLD-FUNCTIONS/sort.cc (operator < (const Complex&, const Complex&), 16257 operator > (const Complex&, const Complex&)): 16258 Pass args by const reference, not value. 16259 16260 * data.cc, matherr.c, pr-output.cc, sysdep.cc, 16261 DLD-FUNCTIONS/__dsearchn__.cc, DLD-FUNCTIONS/minmax.cc, 16262 DLD-FUNCTIONS/qz.cc, DLD-FUNCTIONS/sort.cc, 16263 DLD-FUNCTIONS/tsearch.cc: Include lo-math.h instead of cmath 16264 or math.h. 16265 162662007-11-30 Moritz Borgmann <octave@moriborg.de> 16267 16268 * ls-mat5.h (mat5_data_type): Delete trailing comma in enum decl. 16269 * oct-stream.cc (octave_base_stream::do_printf): Use 16270 OCTAVE_EMPTY_CPP_ARG to avoid annoying Sun compiler warning. 16271 * OPERATORS/op-sbm-sbm.cc (DEFDBLCONVFN): Delete useless macro 16272 invocation. 16273 16274 * DLD-FUNCTIONS/typecast.cc (typecast): No longer static. 16275 162762007-11-30 John W. Eaton <jwe@octave.org> 16277 16278 * graphics.cc (updating_axis_limits): New static variable. 16279 (check_limit_val, check_limit_vals, get_axis_limits): New functions. 16280 (axes::update_axis_limits): Make it work. 16281 * graphics.h.in (base_properties::get_children): New function. 16282 (base_properties::get_xdata, base_properties::get_ydata, 16283 base_properties::get_zdata, base_properties::get_ldata, 16284 base_properties::get_udata, base_properties::get_xldata, 16285 base_properties::get_xudata, base_properties::get_cdata, 16286 base_properties::get_properties (void) const): 16287 New virtual functions. 16288 (graphics_object::get_xdata, graphics_object::get_ydata, 16289 graphics_object::get_zdata, graphics_object::get_ldata, 16290 graphics_object::get_udata, graphics_object::get_xldata, 16291 graphics_object::get_xudata, graphics_object::get_cdata, 16292 graphics_object::get_properties (void) const, 16293 root_figure::get_properties (void) const, 16294 figure::get_properties (void) const, 16295 axes::get_properties (void) const, 16296 line::get_properties (void) const, 16297 text::get_properties (void) const, 16298 image::get_properties (void) const, 16299 patch::get_properties (void) const, 16300 surface::get_properties (void) const)): New functions. 16301 (radio_property::radio_property (const radio_values&)): 16302 Provide default value for argument. 16303 (radio_property::radio_property (const radio_values&, const 16304 std::string&)): Delete. 16305 (axes::xlimmode, axes::ylimmode, axes::zlimmode, axes::climmode, 16306 axes::xscale, axes::yscale, axes::zscale): Declare as 16307 radio_property instead of octave_value values. Adjust all uses. 16308 163092007-11-29 John W. Eaton <jwe@octave.org> 16310 16311 * pr-output.cc (octave_print_internal_template (std::ostream&, 16312 const octave_int<T>&, bool)): Rename from octave_print_internal. 16313 (PRINT_INT_SCALAR_INTERNAL): New macro. Use it to define 16314 non-template functions for printing scalar octave_int values. 16315 (octave_print_internal_template (std::ostream&, const intNDArray<T>&, 16316 bool, int)): Rename from octave_print_internal. 16317 (PRINT_INT_ARRAY_INTERNAL): New macro. Use it to define 16318 non-template functions for printing scalar octave_int values. 16319 * pr-output.h: Declare non-template functions for printing 16320 octave_int scalar and array values. 16321 Delete declarations of template funtions for printing octave_int 16322 scalar and array values. 16323 163242007-11-28 John W. Eaton <jwe@octave.org> 16325 16326 * graphics.cc (base_properties::update_axis_limits, 16327 axes::update_axis_limits): New functions. 16328 * graphics.h.in (class data_property): New class. 16329 (graphics_object::update_axis_limits): New function. 16330 (base_graphics_object::update_axis_limits): New virtual function. 16331 (base_properties::update_axis_limits, axes::update_axis_limits): 16332 Provide decls. 16333 (class line, class image, class patch, class surface): Use it 16334 instead of octave_value for data properties. Tag data properties 16335 with "l" modifier. 16336 (class axes): Tag scale properties with "l" modifier. 16337 * genprops.awk: Handle "l" modifier. 16338 16339 * mkbuiltins: Emit #include "builtins.h" for the builtins.cc file. 16340 From Christoph Mayer <Christoph.Mayer@dlr.de>. 16341 16342 * TEMPLATE-INST/Array-tc.cc (resize_fill_value<octave_value>): 16343 Delete. 16344 16345 * Cell.cc (Cell::Cell (const dim_vector&, const string_vector&, bool)): 16346 Initialize undefined values to resize_fill_value (). 16347 163482007-11-27 John W. Eaton <jwe@octave.org> 16349 16350 * TEMPLATE-INST/Array-tc.cc (resize_fill_value<octave_value>): 16351 Tag inline. From Moritz Borgmann <octave@moriborg.de>. 16352 16353 * pt-bp.cc (tree_breakpoint::visit_decl_command): Also check line 16354 number of cmd. 16355 * pt-decl.cc (tree_global_command::eval, tree_static_command::eval): 16356 Insert MAYBE_DO_BREAKPOINT here. 16357 16358 * error.cc (Fwarning): If setting state "all" to "error", leave 16359 Octave:matlab-incompatible and Octave:single-quote-string warning 16360 states unchanged. 16361 (warning_enabled): Allow individual warning states to override 16362 "warning error all". 16363 16364 * octave.cc (execute_eval_option_code, execute_command_line_file): 16365 Handle interrupts. 16366 * toplev.cc (recover_from_exception): Now extern. 16367 * toplev.h (recover_from_exception): Provide decl. 16368 16369 * pt-idx.cc (tree_index_expression::lvalue): Treat object == [] 16370 the same as undefined. 16371 163722007-11-26 John W. Eaton <jwe@octave.org> 16373 16374 * oct-stream.cc (DO_DOUBLE_CONV): Always use long. 16375 16376 * oct-stream.cc (do_write): Call float_value and double_value on 16377 octave_int<T> objects instead of relying on conversion operators. 16378 16379 * ls-mat5.cc (read_mat5_binary_element, OCTAVE_MAT5_INTEGER_READ): 16380 Call double_value on octave_int<T> objects 16381 instead of relying on conversion operator. 16382 (read_mat5_binary_file_header): 16383 Call char_value on octave_int<T> objects 16384 instead of relying on conversion operator. 16385 (read_mat5_binary_element): 16386 Call bool_value on octave_int<T> objects 16387 instead of relying on conversion operator. 16388 16389 * ov-intx.h (OCTAVE_VALUE_INT_MATRIX_T::double_value, 16390 OCTAVE_VALUE_INT_MATRIX_T::scalar_value, 16391 OCTAVE_VALUE_INT_MATRIX_T::matrix_value, 16392 OCTAVE_VALUE_INT_MATRIX_T::complex_matrix_value, 16393 OCTAVE_VALUE_INT_MATRIX_T::array_value, 16394 OCTAVE_VALUE_INT_MATRIX_T::complex_array_value, 16395 OCTAVE_VALUE_INT_SCALAR_T::double_value, 16396 OCTAVE_VALUE_INT_SCALAR_T::scalar_value, 16397 OCTAVE_VALUE_INT_SCALAR_T::matrix_value, 16398 OCTAVE_VALUE_INT_SCALAR_T::complex_matrix_value, 16399 OCTAVE_VALUE_INT_SCALAR_T::array_value, 16400 OCTAVE_VALUE_INT_SCALAR_T::complex_array_value, 16401 Call double_value on octave_int<T> objects 16402 instead of relying on conversion operator. 16403 (OCTAVE_VALUE_INT_MATRIX_T::bool_array_value, 16404 OCTAVE_VALUE_INT_SCALAR_T::bool_array_value): 16405 Call bool_value on octave_int<T> objects 16406 instead of relying on conversion operator. 16407 (OCTAVE_VALUE_INT_MATRIX_T::char_array_value, 16408 OCTAVE_VALUE_INT_SCALAR_T::char_array_value): 16409 Call char_value on octave_int<T> objects 16410 instead of relying on conversion operator. 16411 164122007-11-26 David Bateman <dbateman@free.fr> 16413 16414 * Sparse-op-defs.h (SPARSE_BASE_REDUCTION_OP): Check that the fill 16415 value is not zero before creating the matrices. 16416 16417 * graphics.cc (class axes): Add the {x|y|z}color color property. 16418 * graphics.h.in (class axes): ditto. 16419 16420 * ov-base.cc (Vsparse_auto_mutate, Fsparse_auto_mutate): New 16421 internal variable and built-in function to set it. 16422 * ov-base.h (extern bool Vsparse_auto_mutate): Export internal 16423 variable to other functions. 16424 * ov-re-sparse.cc (octave_sparse_matrix::try_narrowing_conversion 16425 (void)), ov-cx-sparse.cc 16426 (octave_sparse_complex_matrix::try_narrowing_conversion (void)), 16427 ov-bool-sparse.cc 16428 (octave_sparse_bool_matrix::try_narrowing_conversion (void)): 16429 Use Vsparse_auto_mutate flag to determine whether to convert 16430 sparse matrices to full matrices if that saves space. 16431 16432 * DLD-FUNCTIONS/minmax.cc (MINMAX_DOUBLE_BODY): New version of 16433 MINMAX_BODY macro without the initialization. 16434 (MINMAX_INT_BODY): Macro for min/max for the integer types 16435 (MINMAX_BODY): New macro that calls the appropriate instantiation 16436 of the other two macros. 16437 16438 * graphics.cc (class axes): Add __colorbar__ property. 16439 * graphics.h.in (class axes): ditto. 16440 16441 * data.cc (Fnorm): Document the "inf" string argument for matrice 16442 and vectors and the "fro" argument for vectors. 16443 16444 * graphics.h.in (class figure): Add __enhanced__ property to cache 16445 whether the terminal supports enhanced mode. Add interpreter 16446 property to all text classes, to determine the renderer for the 16447 text. 16448 * graphics.cc (class figure): ditto. 16449 164502007-11-26 Shai Ayal <shaiay@users.sourceforge.net> 16451 16452 * graphics.cc (string_properties): delete class 16453 (property_name): rename class to caseless_str. 16454 (radio_values::possible_vals): change type to caseless_str. 16455 164562007-11-26 Michael Goffioul <michael.goffioul@gmail.com> 16457 16458 * builtins.h (install_builtins): Tag with OCTINTERP_API. 16459 * toplev.h (octave_interpreter_ready, octave_initialized): Likewise. 16460 164612007-11-14 John W. Eaton <jwe@octave.org> 16462 16463 * mex.cc (mex::foreign_memlist): New data member. 16464 (mex::mark_foreign, mex::unmark_foreign): New functions. 16465 (mex::free): Don't warn about pointers found in foreign_memlist. 16466 (maybe_mark_foreign): New function. 16467 (mxArray_octave_value::get_data, mxArray_octave_value::get_ir, 16468 mxArray_octave_value::get_jc): 16469 Call maybe_mark_foreign on returned pointer. 16470 164712007-11-14 David Bateman <dbateman@free.fr> 16472 16473 * mex.cc (mxArray_sparse::mxArray_sparse (const mxArray_sparse&)): 16474 Also ensure that pr and pi are correctly copied. 16475 164762007-11-14 John W. Eaton <jwe@octave.org> 16477 16478 * Makefile.in (@bsd_gcc_kluge_targets_frag@): Delete line for 16479 Makefrag.bsd substitution. 16480 16481 * graphics.h.in (base_properties::tag): New property. 16482 (base_properties::get_tag, base_properties::set_tag): New functions. 16483 (root_figure::set, root_figure::get, figure::set, figure::get, 16484 axes::set, axes::get, line::set, line::get, text::set, text::get, 16485 patch::set, patch::get, surface::set, surface::get): Handle tag. 16486 164872007-11-14 Joseph P. Skudlarek <Jskud@Jskud.com> 16488 16489 * DLD-FUNCTIONS/regexp.cc: Undo previous change. 16490 164912007-11-14 John W. Eaton <jwe@octave.org> 16492 16493 * mex.cc (mex::mark, mex::unmark): Now public. 16494 (mex::persistent): Delete. 16495 (mexMakeArrayPersistent): Call maybe_unmark_array instead of 16496 mex::persistent. 16497 (mexMakeMemoryPersistent): Call maybe_unmark instead of 16498 mex::persistent. 16499 (maybe_unmark (void *)): New function. 16500 (mxSetDimensions, mxSetPr, mxSetPi, mxSetData, mxSetImagData, 16501 mxSetIr, mxSetJc): Use it. From David Bateman. 16502 165032007-11-13 Joseph P. Skudlarek <Jskud@Jskud.com> 16504 16505 * DLD-FUNCTIONS/rand.cc (Frand): Update URL reference in doc string. 16506 165072007-11-12 David Bateman <dbateman@free.fr> 16508 16509 * graphics.h.in, graphics.cc (class text): Add the fontangle and 16510 fontweight properties. Add string_property class to handle the 16511 string radio values. 16512 165132007-11-12 John W. Eaton <jwe@octave.org> 16514 16515 * version.h (OCTAVE_VERSION): Now 2.9.17+. 16516 165172007-11-12 David Bateman <dbateman@free.fr> 16518 16519 * graphics.h.in, graphics.cc (class text): Add the fontname and 16520 fontsize properties. 16521 165222007-11-10 John W. Eaton <jwe@octave.org> 16523 16524 * version.h (OCTAVE_VERSION): Now 2.9.17. 16525 (OCTAVE_API_VERSION): Now api-v29. 16526 (OCTAVE_RELEASE_DATE): Now 2007-11-10. 16527 165282007-11-09 John W. Eaton <jwe@octave.org> 16529 16530 * DLD-FUNCTIONS/__gnuplot_raw__.l: Don't add atexit ("closeplot") 16531 to PKG_ADD file. 16532 165332007-11-09 David Bateman <dbateman@free.fr> 16534 16535 * graphics.cc, graphics.h.in (class patch): Add the field "keylabel". 16536 16537 * data.cc (Fcputime) [__WIN32__]: Correct scaling of sys and usr times. 16538 16539 * graphics.cc (is_handle): Handle must be a real scalar. 16540 165412007-11-09 Joseph P. Skudlarek <Jskud@Jskud.com> 16542 16543 * data.cc (Fislogical): Fix typo in documentation entry. 16544 165452007-11-08 John W. Eaton <jwe@octave.org> 16546 16547 * DLD-FUNCTIONS/__gnuplot_raw__.l (F__gnuplot_save_data__): 16548 Note obsolescence in doc string. 16549 (WARN_OBSOLETE): New macro 16550 (F__gnuplot_save_data__, Fgnuplot_command_plot, 16551 Fgnuplot_command_replot, Fgnuplot_command_splot, 16552 Fgnuplot_command_using, Fgnuplot_command_with, 16553 Fgnuplot_command_axes, Fgnuplot_command_title, 16554 Fgnuplot_command_end, Fgnuplot_use_title_option, 16555 F__clear_plot_window__, Fcloseplot, Fpurge_tmp_files, 16556 F__gnuplot_raw__, F__gnuplot_send_inline_data__, F__gnuplot_set__, 16557 F__gnuplot_show__, F__gnuplot_plot__, F__gnuplot_splot__, 16558 F__gnuplot_replot__): Use WARN_OBSOLETE. 16559 165602007-11-07 John W. Eaton <jwe@octave.org> 16561 16562 * DLD-FUNCTIONS/regexp.cc: Handle HAVE_PCRE_PCRE_H. Check 16563 HAVE_PCRE_H instead of HAVE_PCRE to decide whether to include pcre.h. 16564 16565 * DLD-FUNCTIONS/__gnuplot_raw__.l (Fgnuplot_command_plot, 16566 Fgnuplot_command_replot, Fgnuplot_command_splot, 16567 Fgnuplot_command_using, Fgnuplot_command_with, 16568 Fgnuplot_command_axes, Fgnuplot_command_title, 16569 Fgnuplot_command_end, Fgnuplot_use_title_option, 16570 F__clear_plot_window__, Fcloseplot, Fpurge_tmp_files, 16571 F__gnuplot_raw__, F__gnuplot_send_inline_data__, F__gnuplot_set__, 16572 F__gnuplot_show__, F__gnuplot_plot__, F__gnuplot_splot__, 16573 F__gnuplot_replot__): Note obsolescence in doc string. 16574 165752007-11-06 Kai Habel <kai.habel@gmx.de> 16576 16577 * graphics.h.in (class surface::properties): New properties, 16578 cdata, facecolor, facealpha, edgecolor, linestyle, 16579 linewidth, marker, markeredgecolor, markerfacecolor, markersize. 16580 * graphics.cc (surface::properties::properties, 16581 surface::properties::set, surface::properties::get, 16582 surface::properties::factory_defaults): Handle new properities. 16583 165842007-11-06 David Bateman <dbateman@free.fr> 16585 16586 * data.cc (DATA_REDUCTION): Handle the 'native' and 'double' 16587 arguments of the Fsum function. 16588 * OPERATORS/op-bm-bm.cc (matrix_to_bool_matrix, 16589 scalar_to_bool_matrix): New type conversion functions. 16590 (install_bm_bm_ops): Install new type conversions functions. 16591 165922007-11-06 Michael Goffioul <michael.goffioul@gmail.com> 16593 16594 * toplev.cc (Fsystem) [__WIN32__ && ! __CYGWIN__]: 16595 Quote the complete command. 16596 165972007-11-06 John W. Eaton <jwe@octave.org> 16598 16599 * data.cc (Fnorm): New tests. 16600 16601 * defun-int.h (DEFINE_FUNX_INSTALLER_FUN3): Don't install function 16602 if check_version produces an error. 16603 166042007-11-05 John W. Eaton <jwe@octave.org> 16605 16606 * pt-idx.cc (tree_index_expression::lvalue): Try to do a better 16607 job of computing the number of elements in lvalue expressions when 16608 the last indexing element is ".". 16609 166102007-11-02 John W. Eaton <jwe@octave.org> 16611 16612 * file-io.cc (fopen_mode_to_ios_mode): Use std::ios::app instead 16613 of std::ios::ate. 16614 166152007-11-02 Olli Saarela <Olli.Saarela@kcl.fi> 16616 16617 * input.cc, pr-output.cc, bitfcns.cc, DLD-FUNCTIONS/time.cc: 16618 Fix broken @examples in help texts. 16619 166202007-10-31 John W. Eaton <jwe@octave.org> 16621 16622 * data.cc (Fnorm): Avoid warning about p_val possibly being used 16623 uninitialized. 16624 16625 * version.h (OCTAVE_VERSION): Now 2.9.16+. 16626 166272007-10-31 John W. Eaton <jwe@octave.org> 16628 16629 * version.h (OCTAVE_VERSION): Now 2.9.16. 16630 (OCTAVE_API_VERSION): Now api-v28. 16631 (OCTAVE_RELEASE_DATE): Now 2007-10-31. 16632 166332007-10-31 Muthiah Annamalai <muthuspost@gmail.com> 16634 16635 * pt-assign.h (tree_simple_assignment::op_type, 16636 tree_multi_assignment::op_type): New functions. 16637 * pt-unop.h (tree_unary_expression::op_type): New function. 16638 166392007-10-31 John W. Eaton <jwe@octave.org> 16640 16641 * graphics.cc (line::properties::get): Fix property name 16642 (markerface -> markerfacecolor). 16643 16644 * Makefile.in (INCLUDES): Add debug.h to the list. 16645 166462007-10-30 John Swensen <jpswensen@comcast.net> 16647 16648 * debug.h: New file. 16649 * debug.cc (parse_dbfunction_params, do_find_bkpt_list, 16650 intmap_to_ov): New functions. 16651 (Fdbstop, Fdbclear): Use parse_dbfunction_params. 16652 Improve compatibility. 16653 (Fdbstatus): Improve compatibility. 16654 16655 * help.cc (do_which): No longer static. 16656 * help.h: Provide decl. 16657 166582007-10-30 David Bateman <dbateman@free.fr> 16659 16660 * symtab.cc: Doc fixes for small book format. 16661 166622007-10-30 John W. Eaton <jwe@octave.org> 16663 16664 * file-io.cc (fopen_mode_to_ios_mode): Handle 'W' as 'w' and 'R' 16665 as 'r', but warn about them. 16666 166672007-10-29 Thomas Treichl <Thomas.Treichl@gmx.net> 16668 16669 * data.cc: Include sytime.h, sys/types.h, and sys/resource.h. 16670 166712007-10-25 John W. Eaton <jwe@octave.org> 16672 16673 * graphics.cc (figure::properties::set_currentaxes): 16674 Allow currentfigure to be NaN. 16675 166762007-10-25 Michael Goffioul <michael.goffioul@gmail.com> 16677 16678 * DLD-FUNCTIONS/__contourc__.cc: Use unsigned int instead of uint. 16679 (drawcn): Use 1 << k instead of pow (2, k). 16680 166812007-10-25 John W. Eaton <jwe@octave.org> 16682 16683 * symtab.h (symbol_record::TYPE): Delete trailing comma in enum decl. 16684 16685 * ov-base.h (DECLARE_OV_TYPEID_FUNCTIONS_AND_DATA): Use 16686 OCTAVE_EMPTY_CPP_ARG to avoid annoying Sun compiler warning. 16687 16688 * Makefile.in (graphics.h): Use $(AWK) instead of awk. 16689 16690 * DLD-FUNCTIONS/time.cc (Ftime, Fmktime): Avoid unnecessary cast. 16691 16692 * data.cc (Ftic, Ftoc): Call double_value on octave_time objects 16693 instead of relying on conversion operator. 16694 * ov.cc (octave_value::octave_value (octave_time)): Likewise. 16695 16696 * variables.cc (symbol_out_of_date): Use explicit conversion to 16697 time_t instead of relying on conversion operator. 16698 * ov-fcn-handle.cc (octave_fcn_handle::subsref): Likewise. 16699 16700 * data.cc (tic_toc_timestamp): Rename from __tic_toc_timestamp__. 16701 Change all uses. 16702 167032007-10-24 David Bateman <dbateman@free.fr> 16704 16705 * ov-intx.h (OCTAVE_VALUE_INT_MATRIX_T::OCTAVE_VALUE_INT_MATRIX_T 16706 (const ArrayN<OCTAVE_INT_T>&)): New constructor. 16707 * ov.cc (octave_value::octave_value(const ArrayN<T>) with T being 16708 octave_int8, octave_uint8, octave_int16, octave_uint16, 16709 octave_int32, octave_uint32, octave_int64, octave_uint64): New 16710 constructors. 16711 * ov.h (octave_value::octave_value(const ArrayN<T>) with T being 16712 octave_int8, octave_uint8, octave_int16, octave_uint16, 16713 octave_int32, octave_uint32, octave_int64, octave_uint64): 16714 Declare them. 16715 * DLD-FUNCTIONS/sort.cc (template class octave_sort<T>, 16716 template class vec_index<T>, template class 16717 octave_sort<vec_index<T> *>, with T being 16718 octave_int8, octave_uint8, octave_int16, octave_uint16, 16719 octave_int32, octave_uint32, octave_int64, octave_uint64): New 16720 instantiations of sort template classes. 16721 (Fsort): Use them. 16722 167232007-10-24 John W. Eaton <jwe@octave.org> 16724 16725 * graphics.cc (root_figure::properties::set_currentfigure): 16726 Allow currentfigure to be NaN. 16727 16728 * pt-idx.cc (tree_index_expression::lvalue): Correctly compute 16729 number of elements in lvalue expression when last indexing 16730 element is ".". 16731 167322007-10-23 John W. Eaton <jwe@octave.org> 16733 16734 * graphics.cc (is_handle (const graphics_handle&)): New function. 16735 (gh_manager::do_free, reparent, base_properties::set_parent, 16736 properties::get_title, properties::get_xlabel, 16737 properties::get_ylabel, properties::get_zlabel, 16738 properties::remove_child, make_graphics_object, F__go_figure__, 16739 F__go_delete__, __go_axes_init__): Call OK on graphics handle 16740 object instead of relying on implicit conversion operator. 16741 * graphics.h.in (graphics_handle::operator double ()): Delete. 16742 (graphics_handle::operator bool ()): Delete. 16743 (gh_manager::do_handle_list, gh_manager::do_figure_handle_list, 16744 base_properties::adopt): Call VALUE on graphics handle object 16745 instead of relying on implicit conversion operator. 16746 16747 * ov-base.h (DECLARE_OV_TYPEID_FUNCTIONS_AND_DATA): Call 16748 DECLARE_OV_TYPEID_FUNCTIONS_AND_DATA2 with "( )" as arg list 16749 instead of "()". 16750 16751 * mxarray.h.in (mxClassID): Delete trailing comma in enum decl. 16752 16753 * symtab.h (symbol_table::symbol_table): Reduce default table size 16754 to 64. 16755 167562007-10-22 Kim Hansen <kimhanse@gmail.com> 16757 16758 * unwind-prot.cc: Include <cstring>. 16759 167602007-10-22 David Bateman <dbateman@free.fr> 16761 16762 * data.cc (Ftic, Ftoc, Fcputime): New builtin versions of the 16763 benchmarking functions for speed. 16764 * oct-map.cc (Octave_map::squeeze, Octave_map::permute): New methods. 16765 (Octave_map::index (const octave_value_list&, bool)): Add resize_ok 16766 argument, define as const and use const_iterator internally. 16767 (Octave_map::index (idx_vector&, ...), Octave_map::index (Array 16768 <idx_vector>&, ...)): New forms of the index function. 16769 * oct-map.h (squeeze, permute, indx (const octave_value_list&, bool), 16770 index (idx_vector&, ...), index (Array <idx_vector>&, ...)): Add 16771 or update declaration. 16772 * ov-struct.cc (octave_struct::do_index_op (const octave_value_list&, 16773 bool)): New method. 16774 * ov-struct.h (do_index_op (const octave_value_list&, bool)): Declare 16775 it. 16776 (squeeze (void), permute (const Arra<int>&, bool): New methods. 16777 167782007-10-19 Kai Habel <kai.habel@gmx.de> 16779 16780 * DLD-FUNCTIONS/__contourc__.cc (add_point): Rename from 16781 cl_add_point. Change all uses. 16782 (end_contour): Rename from cl_end_contour. Change all uses. 16783 (start_contour): Rename from cl_start_contour. Change all uses. 16784 (drawcn): Rename from cl_drawcn. New algorithm for locating contours. 16785 (mark_facets): New function. 16786 (cntr): Rename from cl_cntr. Change all uses. New algorithm for 16787 locating contours. 16788 167892007-10-19 John W. Eaton <jwe@octave.org> 16790 16791 * ov-cell.cc (octave_cell::subsasgn): If RHS is cs-list, don't 16792 fail if shape of LHS is different. 16793 * ov-struct.cc (octave_struct::subsasgn): Likewise. 16794 167952007-10-19 Olli Saarela <Olli.Saarela@kcl.fi> 16796 16797 * help.cc (Flookfor): Call print_usage instead of usage. 16798 * DLD-FUNCTIONS/cellfun.cc (Fmat2cell): Likewise. 16799 168002007-10-17 John W. Eaton <jwe@octave.org> 16801 16802 * DLD-FUNCTIONS/spchol.cc (Fsymbfact): Delete special code for METIS. 16803 168042007-10-17 Gabriele Pannocchia <g.pannocchia@ing.unipi.it> 16805 16806 * DLD-FUNCTIONS/__qp__.cc (qp): Fix check for Wact(j). 16807 168082007-10-15 Søren Hauberg <hauberg@gmail.com> 16809 16810 * error.cc (Ferror): Make text fit on pages when using smallbook. 16811 * load-save.cc (Fsave_header_format_string): Ditto. 16812 * ov-struct.cc (Fcell2struct): Ditto. 16813 * DLD-FUNCTIONS/besselj.cc (Fairy): Ditto. 16814 * DLD-FUNCTIONS/urlwrite.cc (Furlwrite, Furlread): Ditto. 16815 168162007-10-15 David Bateman <dbateman@free.fr> 16817 16818 * graphics.cc (axes::properties::get): Fix typo. 16819 168202007-10-13 John W. Eaton <jwe@octave.org> 16821 16822 * version.h (OCTAVE_VERSION): Now 2.9.15+. 16823 168242007-10-13 John W. Eaton <jwe@octave.org> 16825 16826 * version.h (OCTAVE_VERSION): Now 2.9.15. 16827 (OCTAVE_API_VERSION): Now api-v27. 16828 (OCTAVE_RELEASE_DATE): Now 2007-10-13. 16829 168302007-10-13 David Bateman <dbateman@free.fr> 16831 16832 * graphics.h.in (class patch): Add the faces and vertices properties. 16833 * graphics.cc (patch::properties::properties): Initialize faces 16834 and vertices. 16835 (patch::properties::get): Also fetch faces and vertices. 16836 (patch::properties::factory_defaults): Set faces and vertices. 16837 168382007-10-12 John W. Eaton <jwe@octave.org> 16839 16840 * Change copyright notices in all files that are part of Octave to 16841 GPLv3 or any later version. 16842 168432007-10-11 John W. Eaton <jwe@octave.org> 16844 16845 * DLD-FUNCTIONS/urlwrite.cc (urlget): Disable use of EPSV mode. 16846 168472007-10-11 Brian Gough <bjg@network-theory.co.uk> 16848 16849 * DLD-FUNCTIONS/fftn.cc, DLD-FUNCTIONS/regexp.cc, dirfns.cc, 16850 input.cc: Spelling fixes. 16851 168522007-10-10 John W. Eaton <jwe@octave.org> 16853 16854 * OPERATORS/op-sbm-sbm.cc (bool_matrix_to_double_matrix): 16855 New conversion function. 16856 (install_sbm_sbm_ops): Install it. 16857 16858 * ov-re-mat.cc (double): Handle sparse as a special case. 16859 168602007-10-10 Olli Saarela <Olli.Saarela@kcl.fi> 16861 16862 * data.cc, debug.cc, dirfns.cc, error.cc, file-io.cc, help.cc, 16863 load-save.cc, ov-fcn-inline.cc, parse.y, pr-output.cc, symtab.cc, 16864 syscalls.cc, toplev.cc, variables.cc, DLD-FUNCTIONS/bsxfun.cc, 16865 DLD-FUNCTIONS/cellfun.cc, DLD-FUNCTIONS/fft.cc, 16866 DLD-FUNCTIONS/fft2.cc, DLD-FUNCTIONS/fftw.cc, 16867 DLD-FUNCTIONS/gcd.cc, DLD-FUNCTIONS/lsode.cc, 16868 DLD-FUNCTIONS/luinc.cc, DLD-FUNCTIONS/matrix_type.cc, 16869 DLD-FUNCTIONS/rand.cc, DLD-FUNCTIONS/regexp.cc, 16870 DLD-FUNCTIONS/sparse.cc, DLD-FUNCTIONS/spchol.cc, 16871 DLD-FUNCTIONS/splu.cc, DLD-FUNCTIONS/spparms.cc: Spelling fixes. 16872 168732007-10-10 Kim Hansen <kimhanse@gmail.com> 16874 16875 * DLD-FUNCTIONS/lpsolve.cc: Delete. 16876 * Makefile.in (DLD_XSRC): Remove it from the list. 16877 16878 * data.cc (Fsqueeze): Document 2d behaviour. 16879 * ov-range.h (octave_range::squeeze): New function. 16880 168812007-10-09 John W. Eaton <jwe@octave.org> 16882 16883 * DLD-FUNCTIONS/urlwrite.cc (urlget_cleanup): New function. 16884 (urlget): Protect call to curl_easy_perform with 16885 BEGIN_INTERRUPT_IMMEDIATELY_IN_FOREIGN_CODE and 16886 END_INTERRUPT_IMMEDIATELY_IN_FOREIGN_CODE. 16887 168882007-10-09 David Bateman <dbateman@free.fr> 16889 16890 * input.cc (accept_line): Drop this function and remove automatic 16891 insertion of closing quotes as the transpose operator confuses it. 16892 (initialize_command_input): Remove accept_line from here as well. 16893 168942007-10-09 John W. Eaton <jwe@octave.org> 16895 16896 * ov-mapper.cc (octave_mapper::apply): If possible, use 16897 d_d_map_fcn to handle complex values which have imag(z) == 0. 16898 16899 * DLD-FUNCTIONS/urlwrite.cc (Furlwrite, Furlread) [! HAVE_CURL]: 16900 Throw error instead of returning empty string hiding error message 16901 in third return value. 16902 (progress_func): Delete. 16903 (Furlread): Don't set progress callback for curl. 16904 (write_data, form_query_string, urlget): Now static. 16905 169062007-10-08 David Bateman <dbateman@free.fr> 16907 16908 * input.cc (quoting_filename): Function to add a leading quote to 16909 a string if needed. 16910 (accept_line): Function to check if a string needs a closing quote 16911 before calling the rl_newline function. 16912 (initialize_command_input): Initialize completer_quote_characters, 16913 filename_quote_characters, quoting_function, 16914 user_accept_line_function. 16915 16916 * data.cc (template <class T> static make_diag (...)): New 16917 template class version of make_diag. Make other make_diag 16918 functions depend on it. 16919 ( static octave_value make_diag (const octave_value&, 16920 octave_idx_type)): Treat all possible internal Octave types. 16921 169222007-10-08 John W. Eaton <jwe@octave.org> 16923 16924 * load-save.cc (save_vars, dump_octave_core): 16925 Don't pass INFNAN_WARNED to do_save. 16926 (do_save): Delete unused arg, INFNAN_WARNED. 16927 Don't pass INFNAN_WARNED to save_ascii_data. 16928 * ls-oct-ascii.cc (save_ascii_data_for_plotting): 16929 Don't pass INFNAN_WARNED to save_ascii. 16930 (save_ascii_data): Delete unused arg, INFNAN_WARNED. 16931 16932 * ov.h (octave_value::save_ascii): Delete unused arg, INFNAN_WARNED. 16933 * ov-base-int.cc (octave_base_int_matrix<T>::save_ascii, 16934 octave_base_int_scalar<T>::save_ascii): Likewise. 16935 * ov-base-sparse.cc (octave_base_sparse<T>::save_ascii): Likewise. 16936 * ov-base.cc (octave_base_value::save_ascii): Likewise. 16937 * ov-bool-mat.cc (octave_bool_matrix::save_ascii): Likewise. 16938 * ov-bool.cc (octave_bool::save_ascii): Likewise. 16939 * ov-cell.cc (octave_cell::save_ascii): Likewise. 16940 * ov-fcn-handle.cc (octave_fcn_handle::save_ascii): Likewise. 16941 * ov-fcn-inline.cc (octave_fcn_inline::save_ascii): Likewise. 16942 * ov-list.cc (octave_list::save_ascii): Likewise. 16943 * ov-struct.cc (octave_struct::save_ascii): Likewise. 16944 * ov-str-mat.cc (octave_char_matrix_str::save_ascii): Likewise. 16945 * ov-range.cc (octave_range::save_ascii): Likewise. 16946 16947 * ov-scalar.cc (octave_scalar::save_ascii): Remove warning about 16948 reloading inf/nan values. Delete unused arg, INFNAN_WARNED. 16949 * ov-complex.cc (octave_complex::save_ascii): Likewise. 16950 * ov-re-mat.cc (octave_matrix::save_ascii): Likewise. 16951 * ov-cx-mat.cc (octave_complex_matrix::save_ascii): Likewise. 16952 16953 * ov-fcn-inline.cc (Finline): Use DEFUNX instead of DEFUN. 16954 169552007-10-08 Michael Goffioul <michael.goffioul@gmail.com> 16956 16957 * sighandlers.h (can_interrupt): Tag with OCTINERP_API. 16958 * sysdep.h (raw_mode, octave_popen, octave_pclose, 16959 same_file_internal): Likewise. 16960 169612007-10-06 John W. Eaton <jwe@octave.org> 16962 16963 * oct-stream.cc (octave_base_stream::do_scanf): 16964 Always allow MVAL to re resized if NR > 0. 16965 (FINISH_CHARACTER_CONVERSION): Likewise. 16966 16967 * mappers.cc (install_mapper_functions): Undo previous change. 16968 Fix doc string for lgamma. 16969 (xzlgamma): Delete. 16970 169712007-10-05 John W. Eaton <jwe@octave.org> 16972 16973 * graphics.h.in (axes::properties): New property, colororder. 16974 * graphics.cc (default_colororder): New function. 16975 (axes::properties::properties, axes::properties::get, 16976 axes::properties::set_defaults, 16977 axes::properties::factory_defaults, ): Handle colororder. 16978 16979 * mappers.cc (xzlgamma): New static function. 16980 (install_mapper_functions): Pass xzlgamma for c_c_map for lgamma 16981 mapper. Pass 1 for can_ret_cmplx_for_real and set hi to 16982 octave_Inf. 16983 169842007-10-04 John W. Eaton <jwe@octave.org> 16985 16986 * DLD-FUNCTIONS/symrcm.cc: Move static functions to top of file to 16987 avoid forward decls. 16988 (Q_enq): Delete unused arg QH. Change all uses. 16989 (Q_deq): Delete unused arg QT. Change all uses. 16990 (find_starting_node): Delete unused local variable J. 16991 (H_heapify_min, H_insert, find_starting_node, Fsymrcm): 16992 Move local variable decls to point of first use. 16993 16994 * OPERATORS/op-streamoff.cc (STREAMOFF_COMP_OP): 16995 Avoid control-reaches-end-of-non-void-function warning. 16996 16997 * pt-const.cc (tree_constant::dup): Avoid unused parameter warning. 16998 16999 * pr-output.cc (set_real_format, set_real_matrix_format, 17000 set_complex_format, set_complex_matrix_format): 17001 Delete unused arg, SIGN. Change uses. 17002 17003 * oct-map.cc (Octave_map::Octave_map): Avoid shadow warning. 17004 17005 * load-save.cc (write_header): Use reinterpret_cast to avoid 17006 old-style cast warning. 17007 17008 * data.cc (do_permute): Delete unused arg, FNAME. Change all uses. 17009 17010 * sysdep.cc (w32_set_octave_home, w32_set_quiet_shutdown, 17011 MINGW_signal_cleanup): 17012 Only define if defined (__WIN32__) && ! defined (_POSIX_VERSION). 17013 170142007-10-04 Jason Riedy <jason@acm.org> 17015 17016 * ls-mat5.cc (read_mat5_binary_data): Map miUTF16 to miUINT16, 17017 miUTF32 to miUINT32. The matfile format currently states that 17018 wide UTF formats are in the same byte order as the integers. 17019 (read_mat5_binary_element): Replace all UTF16 and UTF32 17020 characters with the high bit set (value >127) by '?' and warn 17021 that we've done so. 17022 170232007-10-04 Michael Goffioul <michael.goffioul@gmail.com> 17024 17025 * sysdep.cc (w32_set_octave_home): Base OCTAVE_HOME location on 17026 octinterp, not the main exe. 17027 170282007-10-03 John W. Eaton <jwe@octave.org> 17029 17030 * data.cc (Fnorm): New function. 17031 (F__vnorm__): Delete. 17032 170332007-10-03 Michael Goffioul <michael.goffioul@gmail.com> 17034 17035 * DLD-FUNCTIONS/typecast.cc: Include <algorithm>. 17036 170372007-10-03 John W. Eaton <jwe@octave.org> 17038 17039 * oct-map.cc (Octave_map::Octave_map (const dim_vector&, 17040 const string_vector&)): Delete. 17041 (Octave_map::Octave_map (const dim_vector&, const Cell&)): 17042 New function. 17043 * ov-struct.cc (Fstruct): Allow creation of empty struct arrays 17044 with field names. 17045 170462007-10-01 Shai Ayal <shaiay@users.sourceforge.net> 17047 17048 * graphics.cc ((color_property::color_property (const 17049 octave_value& val)): Undo change from 2007-09-26 17050 (patch::properties::properties): use the "a" modifier to 17051 face_color & edge_color properties 17052 (patch::properties::set): Undo change from 2007-09-26 17053 * graphics.h.in (color_property::color_property 17054 (const octave_value& val)): Undo change from 2007-09-26 17055 170562007-10-01 Michael Goffioul <michael.goffioul@gmail.com> 17057 17058 * octave.cc (octave_main): Add "--line-editing" option to force 17059 readline line editing. 17060 170612007-09-28 David Bateman <dbateman@free.fr> 17062 17063 * ov-range.h (int8_array_value, int16_array_value, int32_array_value, 17064 int64_array_value, uint8_array_value, uint16_array_value, 17065 int32_array_value, uint64_array_value): New methods 17066 170672007-09-28 Kai Habel <kai.habel@gmx.de> 17068 17069 * graphics.h.in (color_property::colormap_property (const Matrix&)): 17070 Use floating point math in calculation of colormap. 17071 170722007-09-26 David Bateman <dbateman@free.fr> 17073 17074 * graphics.cc (color_values::str2rgb): accept upper, lower and 17075 mixed-case versions of the string representing the color. Allow 17076 black defined as "k" and white as "w". 17077 (color_property::color_property (const octave_value& val, 17078 const radio_values &v)): Modify the constructor to also take a 17079 radio_values argument. Use it. 17080 (patch::properties::set): Change set_facecolor calls to initialize 17081 the color_property argument with the available radio_values. 17082 * graphics.h.in (color_property::color_property 17083 (const octave_value& val, const radio_values &v)): Also pass a 17084 radio_values argument. 17085 17086 * ov-range.h (sparse_matrix_value, sparse_complex_matrix_value): 17087 New methods. 17088 17089 * mk-pkg-add: Simplfy the autoload commands. 17090 * parse.y (Fautoload): Allow bare filename if file is in the same 17091 directory as the script from where the autoload command is run. 17092 170932007-09-25 Matthias Drochner <m.drochner@fz-juelich.de> 17094 17095 * syscalls.cc (Fpopen2): Doc fix. 17096 Use "sort -r" instead of "sort -nr" in test. 17097 170982007-09-18 John W. Eaton <jwe@octave.org> 17099 17100 * input.cc (input_event_hook, Finput_event_hook): Call 17101 command_editor::add_event_hook and 17102 command_editor::remove_event_hook intstead of 17103 command_editor::set_event_hook and 17104 command_editor::restore_event_hook. 17105 171062007-09-17 John W. Eaton <jwe@octave.org> 17107 17108 * version.h (OCTAVE_VERSION): Now 2.9.14+. 17109 171102007-09-17 John W. Eaton <jwe@octave.org> 17111 17112 * version.h (OCTAVE_VERSION): Now 2.9.14. 17113 (OCTAVE_API_VERSION): Now api-v26. 17114 (OCTAVE_RELEASE_DATE): Now 2007-09-17. 17115 17116 * Makefile.in (DISTFILES): Add genprops.awk to the list. 17117 17118 * ov-typeinfo.h (cat_op_fcn): Third arg in function pointer 17119 typedef is now Array<octave_idx_type> instead of Array<int>. 17120 17121 * file-io.cc (do_stream_open): Use binary mode by default. 17122 171232007-09-14 Shai Ayal <shaiay@users.sourceforge.net> 17124 17125 * genprop.awk: Handle "a" modifier. 17126 171272007-09-14 Kai Habel <kai.habel@gmx.de> 17128 17129 * graphics.h.in (radio_values::contains): New function. 17130 (radio_values::validate): Use it. 17131 * graphics.cc (color_property::operator =): Call it instead of 17132 validate here. 17133 171342007-09-13 John W. Eaton <jwe@octave.org> 17135 17136 * DLD-FUNCTIONS/__glpk__.cc (glpk): Pass LPX_FX, not LB_DB, to 17137 lpx_set_col_bnds when lb[i] == ub[i]. 17138 From: Zhi Wang <zcwang@umich.edu>. 17139 17140 * graphics.h.in (colormap_property::colormap_property): 17141 Use jet colormap as default. 17142 171432007-09-12 John W. Eaton <jwe@octave.org> 17144 17145 * graphics.cc (text::properties::properties): Default color is 17146 black, not white. 17147 * graphics.h (text::properties::color): Declare as color_property, 17148 not octave_value. 17149 17150 * graphics.h.in (root_figure::defaults, figure::defaults, 17151 axes::defaults, line::defaults, text::defaults, image::defaults, 17152 patch::defaults, surface::defaults): New functions. 17153 * gripes.cc (gripe_not_implemented): New function. 17154 * gripes.h: Provide decl. 17155 171562007-09-10 John W. Eaton <jwe@octave.org> 17157 17158 * genprops.awk: Add missing newline character at end of file. 17159 From Alexander Klimov <alserkli@inbox.ru>. 17160 171612007-09-10 David Bateman <dbateman@free.fr> 17162 17163 * data.cc (do_cat): Avoid invalid indexing into ra_idx vector. 17164 171652007-09-06 David Bateman <dbateman@free.fr> 17166 17167 * DLD-FUNCTIONS/__delaunay__.cc, DLD-FUNCRIONS/__voronoi__.cc, 17168 DLD-FUNCTIONS/convhulln.cc: Avoid variables in global scope 17169 171702007-09-06 David Bateman <dbateman@free.fr> 17171 17172 * Makefile.in (stamp-prereq): Add graphics.h to the dependency list. 17173 171742007-08-31 John W. Eaton <jwe@octave.org> 17175 17176 * Makefile.in (INCLUDES): Remove graphics.h from the list. 17177 (DISTFILES): Include graphics.h.in in the list. 17178 (genprops.awk): New file. 17179 (graphics.h): New rule. 17180 (distclean): Remove graphics.h. 17181 * graphics.h.in: New file, from graphics.h. 17182 (graphics_handle): Now a class instead of typedef. Adapt all uses. 17183 (OCTAVE_GRAPHICS_PROPERTY_INTERNAL, OCTAVE_GRAPHICS_PROPERTY, 17184 OCTAVE_GRAPHICS_MUTABLE_PROPERTY): Delete macros. 17185 (class root_figure, class figure, class axes, class line, class 17186 text, class image, class patch, class surface): Use genprops.awk 17187 to generate property declarations and set/get functions. 17188 * graphics.h: Delete. 17189 * graphics.cc (nan_to_empty, empty_to_nan): Delete. 17190 (root_figure::properties::set, figure::properties::set, 17191 axes::properties::set, line::properties::set, 17192 text::properties::set, image::properties::set, 17193 patch::properties::set, surface::properties::set): Call 17194 type-specific set functions to set properties. 17195 (root_figure::properties::set_currentfigure, 17196 figure::properties::set_currentaxes, figure::properties::set_visible, 17197 axes::properties::get_title, axes::properties::get_xlabel, 17198 axes::properties::get_ylabel, axes::properties::get_zlabel, 17199 axes::properties::set_title, axes::properties::set_xlabel, 17200 axes::properties::set_ylabel, axes::properties::set_zlabel): 17201 Define custom versions. 17202 172032007-09-06 David Bateman <dbateman@free.fr> 17204 17205 * DLD-FUNCTIONS/bsxfun.cc: New function. 17206 * DLD-FUNCTIONS/typecast.cc: New function. 17207 * Makefile.in (DLD_XSRC): Add bsxfun.cc and typecast.cc. 17208 * ov.cc (do_cat_op): Modify use of Array<int> to 17209 Array<octave_idx_type> and adjust where necessary. 17210 * ov.h (do_cat_op): ditto. 17211 * data.cc (do_cat): ditto. 17212 * pt-mat.cc (tree_matrix::rvalue): ditto. 17213 172142007-09-05 Michael Goffioul <michael.goffioul@gmail.com> 17215 17216 * oct-stream.cc (octave_base_stream::do_printf): Ignore precision 17217 portion of format string if printing Inf, NaN, or NA values. 17218 172192007-09-05 David Bateman <dbateman@free.fr> 17220 17221 * DLD-FUNCTIONS/sort.cc (mx_sort_sparse, mx_sort_sparse_indexed): 17222 New template classes for sparse sort functions. 17223 (Fsort): Use them. 17224 * ov.h (octave_value (const Sparse<double>&, const MatrixType&), 17225 octave_value (const Sparse<Complex>&, const MatrixType&)): New 17226 constructors. 17227 * ov.cc (octave_value::octave_value (const Sparse<double>&, 17228 const MatrixType&), octave_value::octave_value (const 17229 Sparse<Complex>&, const MatrixType&)): Define them. 17230 * ov-re-sparse.h (octave_sparse_matrix (const MSparse<double>&, 17231 const MatrixType&), octave_sparse_matrix (const Sparse<double>&), 17232 octave_sparse_matrix (const Sparse<double>&, const MatrixType&)): 17233 New constructors. 17234 * ov-cx-sparse.h (octave_sparse_complex_matrix (const MSparse<double>&, 17235 const MatrixType&), octave_sparse_complex_matrix (const 17236 Sparse<double>&), octave_sparse_complex_matrix (const 17237 Sparse<double>&, const MatrixType&)): ditto. 17238 172392007-09-04 Gabriele Pannocchia <g.pannocchia@ing.unipi.it> 17240 17241 * DLD-FUNCTIONS/__qp__.cc (qp): Use Wact(j) == i - n_eq when 17242 checking for blocking constraint. Don't resize lambda_tmp. Only 17243 compute Y = Aact.pseudo_inverse () if it is needed. 17244 172452007-08-31 Michael Goffioul <michael.goffioul@gmail.com> 17246 17247 * ls-mat-ascii.cc (get_lines_and_columns): Check beg variable for 17248 NPOS to avoid segmentation fault. 17249 17250 * load-path.cc (load_path::do_find_file): Do not assume paths 17251 use forward slashes. 17252 172532007-08-30 John W. Eaton <jwe@octave.org> 17254 17255 * sysdep.cc (Fpause): Doc fix. 17256 172572007-08-30 Gabriele Pannocchia <g.pannocchia@ing.unipi.it> 17258 17259 * DLD-FUNCTIONS/__qp__.cc (qp): Resize Wact to n_act-neq, not n_act. 17260 172612007-08-29 John W. Eaton <jwe@octave.org> 17262 17263 * graphics.cc (class root_figure::properties): 17264 Rename from root_figure::root_figure_properties. 17265 (class figure::properties): Rename from figure::figure_properties. 17266 (class axes::properties): Rename from axes::axes_properties. 17267 (class line::properties): Rename from line::line_properties. 17268 (class text::properties): Rename from text::text_properties. 17269 (class image::properties): Rename from image::image_properties. 17270 (class patch::properties): Rename from patch::patch_properties. 17271 (class surface::properties): Rename from surface::surface_properties. 17272 17273 * base-list.h (octave_base_list::remove): Implement our own 17274 remove_if function here. 17275 172762007-08-28 John W. Eaton <jwe@octave.org> 17277 17278 * graphics.h (base_properties): Move class definition before 17279 definition of base_graphics_object class. Provide forward 17280 declaration of base_graphics_object prior to definition of 17281 base_properties. 17282 (base_graphics_object::get_properties): New virtual function. 17283 (graphics_object::get_properties, root_figure::get_properties, 17284 figure::get_properties, axes::get_properties, 17285 line::get_properties, text::get_properties, image::get_properties, 17286 patch::get_properties, surface::get_properties): New functions. 17287 (root_figure::properties, figure::properties, axes::properties, 17288 line::properties, text::properties, image::properties, 17289 patch::properties, surface::properties): Data member now private. 17290 172912007-08-27 John W. Eaton <jwe@octave.org> 17292 17293 * load-path.cc (load_path::do_find_file): Also files with non 17294 rooted relative names. 17295 * load-save.cc (find_file_to_load): Likewise. Also handle 17296 appending .mat to files with relative names. 17297 17298 * graphics.cc (base_properties::mark_modified, 17299 base_properties::override_defaults, 17300 base_properties::delete_children, figure::get_default, 17301 axes::get_default): Move definitions here, from graphics.h. 17302 * graphics.h (class gh_manager): Move decl to end of file. 17303 17304 * Cell.h (Cell::Cell (const octave_value_list&)): Create row 17305 vector instead of column vector. 17306 17307 * pt-idx.cc (tree_index_expression::lvalue): Handle [x.a] = 17308 ... style assignments. 17309 * ov-struct.cc (octave_struct::subsasgn): Handle case of RHS as 17310 comma-separated list. 17311 17312 * ov-cell.cc (gripe_failed_assignment): New function. 17313 (octave_cell::subsasgn): Call gripe_failed_assignment if assign 17314 methods fail. 17315 173162007-08-24 David Bateman <dbateman@free.fr> 17317 17318 * symtab.cc (void symbol_table::clear (void)): If the record in 17319 the symbol table to clear is a user function that is a sub 17320 function with a static parent or if the parent is the current 17321 parent function, don't delete the record. 17322 (void symbol_table::clear_functions (void)): ditto. 17323 (void symbol_table::clear (const std::string&)): ditto. 17324 (void symbol_table::clear_function (const std::string&)): ditto. 17325 17326 * graphics.h (class text): Add property color. 17327 * graphics.cc (text::text_properties::text_properties) ditto. 17328 (text::text_properties::set): ditto. 17329 (text::text_properties::get): ditto. 17330 (text::text_properties::factory_defaults): ditto. 17331 173322007-08-24 John W. Eaton <jwe@octave.org> 17333 17334 * mappers.cc (dummyp): New function. 17335 (install_mapper_functions): Use it to handle character data in 17336 finite, isinf, isna, and isnan functions. 17337 17338 * load-path.cc (load_path::do_remove): Call remove_hook function 17339 before removing directory from list. 17340 173412007-08-24 David Bateman <dbateman@free.fr> 17342 17343 * ov-bool-sparse.cc (DEFINE_OV_TYPEID_FUNCTIONS_AND_DATA): Class 17344 is now logical. 17345 * ov-re-sparse.cc, ov-cx-sparse.cc 17346 (DEFINE_OV_TYPEID_FUNCTIONS_AND_DATA): Class is now double. 17347 * ov-mapper.cc (octave_mapper::apply): Use is_sparse_type method 17348 rather than comparing class name. 17349 * ls-mat5.cc (save_mat5_element_length, save_mat5_binary_element): 17350 ditto. 17351 * pt-mat.cc (tree_matrix:rvalue): sparse matrices are now of class 17352 "double" or "logical", create new single type concat clause for 17353 them. 17354 * mex.cc (get_class_id): No longer need to special case sparse 17355 matrices. 17356 17357 * DLD-FUNCTIONS/__delaunayn__.cc, DLD-FUNCTIONS/convhulln.cc, 17358 DLD-FUNCTIONS/tsearch.cc, DLD-FUNCTIONS/__voronoi__.cc: New 17359 functions ported from octave-forge. 17360 * DLD-FUCTIONS/__dsearchn__.cc: New file. 17361 * DLD-FUNCTIONS/__voronoi__.cc: Return point at infinity and 17362 include it in the polygrons of the Voronoi diagram for 17363 compatibility. 17364 * Makefile.in: Add specific build targets for __delanayn__.cc, 17365 convhulln.cc and __voronoi__.cc to link to Qhull. 17366 (DLD_SRC): Add new functions. 17367 (OCTAVE_LIBS): Add QHULL_LIBS 17368 173692007-08-22 David Bateman <dbateman@free.fr> 17370 17371 * variables.cc (Fmunlock): Call munlock and not mlock. 17372 * symtab.cc (symbol_record::mark_as_formal_parameter): Typo. 17373 173742007-08-10 John W. Eaton <jwe@octave.org> 17375 17376 * pt-idx.cc (tree_index_expression::get_struct_index): Improve 17377 error message. 17378 * ov-struct.cc (Fstruct, Fcell2struct): Trap invalid field names here. 17379 173802007-08-10 Peter A. Gustafson <petegus@umich.edu> 17381 17382 * graphics.h, graphics.cc (axes::axes_properties): New properties, 17383 xaxislocation and yaxislocation. 17384 173852007-08-10 Kai Habel <kai.habel@gmx.de> 17386 17387 * graphics.cc, graphics.h (patch): New class. 17388 (axes::axes_properties): New properties, clim and climmode. 17389 (surface::surface_properties::surface_properties): Handle patch. 17390 (F__go_patch__): New function. 17391 173922007-07-30 John W. Eaton <jwe@octave.org> 17393 17394 * mex.cc (mxArray_number::mxArray_number (int, const char **)): 17395 First arg is now mwSize. 17396 (max_str_len): Return mwSize value, not int. 17397 * mxarray.h.in (mxArray::mxArray (int, const char **)): 17398 First arg is now mwSize. 17399 (mxArray::mxArray (mxClassID, mwSize, mwSize, int, mxComplexity)): 17400 Third arg is now mwSize. 17401 (mxArray::get_string (char *, int)): Second arg is now mwSize. 17402 174032007-07-26 John W. Eaton <jwe@octave.org> 17404 17405 * DLD-FUNCTIONS/__glpk__.cc: Include glpk/glpk.h if 17406 HAVE_GLPK_GLPK_H is defined. 17407 174082007-07-26 David Bateman <dbateman@free.fr> 17409 17410 * pr-output.cc (Frats): Return character array with same number of 17411 rows as original value. 17412 174132007-07-26 John W. Eaton <jwe@octave.org> 17414 17415 * pt-bp.h (MAYBE_DO_BREAKPOINT): Rename cur_fcn to xfcn. 17416 17417 * version.h (OCTAVE_VERSION): Now 2.9.13+. 17418 174192007-07-25 John W. Eaton <jwe@octave.org> 17420 17421 * version.h (OCTAVE_VERSION): Now 2.9.13 17422 (OCTAVE_API_VERSION): Now api-v25. 17423 (OCTAVE_RELEASE_DATE): Now 2007-07-25. 17424 17425 * pt-bp.h (MAYBE_DO_BREAKPOINT): Rename fcn to curr_fcn. 17426 174272007-07-25 David Bateman <dbateman@free.fr> 17428 17429 * Makefile.in: Adjust DISTFILES to allow out of tree "make dist" 17430 to work. 17431 174322007-07-24 Shai Ayal <shaiay@users.sourceforge.net> 17433 17434 * graphics.cc (color_property::operator = (const octave_value&)): 17435 New method. 17436 * graphics.h: Provide decl. 17437 174382007-07-24 Rafael Laboissiere <rafael@debian.org> 17439 17440 * oct-conf.h.in (OCTAVE_CONF_RUNTEST): Delete definition. 17441 * toplevel.cc (Foctave_config_info): Remove RUNTEST from struct. 17442 174432007-07-23 David Bateman <dbateman@free.fr> 17444 17445 * pr-output.cc (rat_format, rat_string_len): Global variable 17446 controlling behavior of rational approximation. Use throughout. 17447 (class pr_rational_float): New class for rational approximation of 17448 floats, specifically with the << operator defined. 17449 (std::ostream& operator << (std::ostream&, const 17450 pr_rational_float&)): Operator to print rational approximations of 17451 double values. 17452 (std::string rational_approx (double, int)): Function to convert a 17453 double value to a string of maximum length giving the rational 17454 approximation. 17455 (pr_any_float): Include the output of rational approximations. 17456 (Fformat): Add the "rat" format as an option. 17457 (Frats): New function. 17458 174592007-07-23 Aquil H. Abdullah <aquil.abdullah@gmail.com> 17460 17461 * mex.cc (mxCreateStructArray): Declare second arg as const. 17462 * mexproto.h (mxCreateStructArray): Ditto. 17463 174642007-07-20 David Bateman <dbateman@free.fr> 17465 17466 * zfstream.cc (BUFSIZE): Increase default buffer size to 256kB 17467 (gzfilebuf::underflow): Stash the last 16 characters read, so as 17468 to avoid calling pbackfail as much as possible. 17469 174702007-07-18 David Bateman <dbateman@free.fr> 17471 17472 * zfstream.cc (int_type gzfilebuf::pbackfail (int_type)): New 17473 method to putback a character when the putback position in the 17474 internal buffer doesn't exist. 17475 * zfstream.h (int_type pbackfail (int_type)): Declaration it. 17476 174772007-07-14 Michael Goffioul <michael.goffioul@swing.be> 17478 17479 * ov-bool-sparse.cc (octave_sparse_bool_matrix:load_hdf5): 17480 Use OCTAVE_LOCAL_BUFFER for temporary boolean value. 17481 174822007-06-27 David Bateman <dbateman@free.fr> 17483 17484 * DLD-FUNCTIONS/sparse.cc (Fspdiag): Ensure spdiag(zeros(1,0)) returns 17485 0x0 matrix. Doc update. 17486 * data.cc (Fdiag): Doc update. 17487 174882007-06-28 John W. Eaton <jwe@octave.org> 17489 17490 * ov-cell.cc (octave_cell::subsasgn): Given x = {}, convert to 17491 struct for assignments like x(1).f = val; 17492 17493 * oct-stream.cc (octave_scan_1): New function 17494 (octave_scan): Use it. Handle fmt.width. 17495 17496 * graphics.h (axes::axes_properties::visible): New data member. 17497 * graphics.cc (axes::axes_properties::axes_properties, 17498 axes::axes_properties::set, axes::axes_properties::get, 17499 axes::axes_properties::factory_defaults): Handle visible property. 17500 175012007-06-27 Kai Habel <kai.habel@gmx.de> 17502 17503 * graphics.h (color_values::color_values): Arg is now std:string 17504 instead of char. Call str2rgb, not c2rgb. 17505 * graphics.h, graphics.cc: (color_values::str2rgb): Rename from 17506 c2rgb. Handle long color names, not just single char abbreviations. 17507 175082007-06-27 David Bateman <dbateman@free.fr> 17509 17510 * load-save.cc (Fsave): Ensure header is written for non 17511 existent file with "-append". 17512 * ls-hdf5.h: First steps towards having append work for hdf5. 17513 175142007-06-26 John W. Eaton <jwe@octave.org> 17515 17516 * load-save.cc (Fsave): Open files correctly for -append. 17517 Don't write file headers if appending. Error for -append -hdf5. 17518 175192007-06-25 Olaf Till <i7tiol@t-online.de> 17520 17521 * oct-stream.h (octave_stream_list::list): Use std::map. 17522 (octave_stream_list::curr_len): Delete data member. 17523 (octave_stream_list::octave_stream_list): Fix initializations. 17524 17525 * oct-stream.cc (octave_steam_list::do_insert, 17526 octave_steam_list::do_lookup, octave_steam_list::do_remove, 17527 octave_steam_list::do_clear, octave_steam_list::do_list_open_files, 17528 octave_steam_list::do_open_file_numbers, 17529 octave_steam_list::do_get_file_number): 17530 Use new octave_stream_list::list type. 17531 (octave_stream_list::do_insert): Insert octave_stream with key 17532 corresponding to file-descriptor. 17533 (octave_stream_list::do_insert, octave_steam_list::insert): 17534 Remove const qualifier of argument. 17535 175362007-06-18 Søren Hauberg <hauberg@gmail.com> 17537 17538 * DLD-FUNCTIONS/__lin_interpn__.cc: Replace octave_NaN with octave_NA. 17539 175402007-06-15 Shai Ayal <shaiay@users.sourceforge.net> 17541 17542 * graphics.h (OCTAVE_GRAPHICS_PROPERTY_INTERNAL, 17543 OCTAVE_GRAPHICS_PROPERTY, OCTAVE_GRAPHICS_MUTABLE_PROPERTY): 17544 New macros. Use them to declare individual properties and define 17545 accessor methods for each property in the property classes. 17546 175472007-06-15 Kai Habel <kai.habel@gmx.de> 17548 17549 * graphics.cc (Fget, Fset): Handle vectors of handles. 17550 175512007-06-14 John W. Eaton <jwe@octave.org> 17552 17553 * sysdep.cc (octave_popen, octave_pclose): New functions. 17554 * sysdep.h: Provide decls. 17555 17556 * oct-procbuf.cc (procbuf::open): Use octave_popen. 17557 (procbuf::close): Use octave_pclose. 17558 * oct-prcstrm.cc (octave_oprocstream::octave_oprocstream, 17559 octave_iprocstream::ictave_oprocstream): Likewise. 17560 17561 * graphics.h (text::text_properties::rotation): New data member. 17562 * graphics.cc (text::text_properties::text_properties, 17563 text::text_properties::set, text::text_properties::get, 17564 text::text_properties::factory_defaults): Handle rotation property. 17565 175662007-06-14 Kai Habel <kai.habel@gmx.de> 17567 17568 * graphics.cc (color_values::c2rgb): Also accept 'k' for black. 17569 175702007-06-14 David Bateman <dbateman@free.fr> 17571 17572 * ov-ch-mat.h (idx_vector index_vector (void) const): Remove 17573 definition. 17574 * ov-ch-mat.cc (idx_vector index_vector (void) const): Move it 17575 here. Special case ":" case for compatibility. 17576 175772007-06-13 John W. Eaton <jwe@octave.org> 17578 17579 * ov-re-mat.cc (octave_matrix::load_ascii): 17580 Do a better job of handling read errors and empty matrices. 17581 * ov-cx-mat.cc (octave_complex_matrix::load_ascii): Likewise. 17582 * ov-bool-mat.cc (octave_bool_matrix::load_ascii): Likewise. 17583 * ov-str-mat.cc (octave_char_matrix_str::load_ascii): Likewise. 17584 175852007-06-13 David Bateman <dbateman@free.fr> 17586 17587 * DLD-FUNCTIONS/minmax.cc (MINMAX_BODY): Don't treat as single 17588 argument if arg2 is empty and nargin=2. 17589 175902007-06-13 Shai Ayal <shaiay@users.sourceforge.net> 17591 17592 * graphics.h, graphics.cc: Move class declarations to graphics.h. 17593 Move larger functions outside of class declarations in graphics.cc. 17594 175952007-06-12 Benjamin Lindner <lindnerben@gmx.net> 17596 17597 * DLD-FUNCTIONS/cellfun.cc: Use fullfile to generate filenames 17598 instead of assuming / will work as directory separator. 17599 176002007-06-12 David Bateman <dbateman@free.fr> 17601 17602 * DLD-FUNCTIONS/interpn.cc: Remove it. 17603 * DLD-FUNCTIONS/__lin_interpn__.cc: Move it. This is now a support 17604 function of interpn.m. 17605 * Makefile.in (DLD_XSRC): Remove interpn.cc and add __lin_interpn__.cc. 17606 176072007-06-07 David Bateman <dbateman@free.fr> 17608 17609 * ov-fcn-handles.cc (octave_fcn_handle::save_hdf5): More care that 17610 all open HDF5 descriptors are closed. 17611 (octave_fcn_handle::load_hdf5): Ditto. 17612 176132007-06-06 Benjamin Lindner <lindnerben@gmx.net> 17614 17615 * utils.cc [__MINGW32__]: Don't define HAVE_C99_VSNPRINTF. 17616 176172007-06-06 Michael Goffioul <michael.goffioul@swing.be> 17618 17619 * defaults.h.in, ls-hdf5.h, ov-complex.h, ov-cx-mat.h, ov-intx.h, 17620 sysdep.h: Sprinkle with OCTINTERP_API as needed. 17621 176222007-06-05 John W. Eaton <jwe@octave.org> 17623 17624 * help.h (raw_help): Tag with OCTINTERP_API. 17625 17626 * Makefile.in (INCLUDES): Remove mxarray.h from the list so that 17627 it is not distributed. 17628 (EXTRAS): Add mxarray.h to the list so that it is installed. 17629 17630 * sysdep.cc (same_file_internal) [OCTAVE_USE_WINDOWS_API]: 17631 Avoid leaking file handles. 17632 176332007-05-08 Michael Weitzel <michael.weitzel@uni-siegen.de> 17634 17635 * DLD-FUNCTIONS/symrcm.cc: Fix for queuing error that might cause 17636 an infinite loop. 17637 176382007-06-04 John W. Eaton <jwe@octave.org> 17639 17640 * data.cc (Fislogical): Rename from Fisbool. 17641 Make isbool an alias for islogical. 17642 176432007-06-03 David Bateman <dbateman@free.fr> 17644 17645 * Makefile.in (DISTFILES): Add mxarray.h.in 17646 (install-inc): Modify target so that mxarray.h is installed 17647 correctly. 17648 (distclean): Remove mxarray.h on distclean. 17649 * mex.cc: Use mwSize for dimensions and mwIndex for indexing 17650 throughout, with the exception of struct key indexes. 17651 * mexproto.h: ditto. 17652 * mxarray.h: remove. 17653 * mxarray.h.in: Copy here and define mwSize, mwIndex, and use 17654 throughout. 17655 * ov-bool-mat.cc (octave_bool_matrix::as_mxArray): Use mwSize and 17656 mwIndex. 17657 * ov-bool-sparse (octave_sparse_bool_matrix::as_mxArray): ditto. 17658 * ov-cell.cc (octave_cell:as_mxArray): ditto. 17659 * ov-ch-mat.cc (octave_char_matrix:as_mxArray): ditto. 17660 * ov-cx-mat.cc (octave_complex_matrix::as_mxArray): ditto. 17661 * ov-cx-sparse.cc (octave_sparse_complex_matrix::as_mxArray): ditto. 17662 * ov-int.h (as_mxArray): ditto. 17663 * ov-range.cc (octave_range:as_mxArray): ditto. 17664 * ov-re-mat.cc (octave_matrix:as_mxArray): ditto. 17665 * ov-re-sparse.cc (octave_sparse_matrix::as_mxArray): ditto. 17666 * ov-struct.cc (octave_struct::as_mxArray): ditto. 17667 176682007-06-02 David Bateman <dbateman@free.fr> 17669 17670 * graphics.cc (color_property class): g++ doesn't like anonymous 17671 enums. Give type to color_type enum. 17672 176732007-05-31 Shai Ayal <shaiay@users.sourceforge.net> 17674 17675 * graphics.cc (radio_values, radio_property, color_values): 17676 New classes. 17677 (color_property class): Handle both color and radio values. 17678 176792007-05-31 John W. Eaton <jwe@octave.org> 17680 17681 * toplev.cc (main_loop): Improve bad_alloc error message. 17682 17683 * octave.cc (execute_command_line_file, execute_eval_option_code): 17684 Likewise. 17685 176862007-05-31 Michael Goffioul <michael.goffioul@swing.be> 17687 17688 * toplev.cc (octave_atexit_functions): 17689 Now std::list instead of std::stack. 17690 (do_octave_atexit): Adapte to octave_atexit_functions as list. 17691 (Fatexit): Allow second arg of false to remove element from list. 17692 17693 * DLD-FUNCTIONS/symrcm.cc: Use ! instead of "not". 17694 17695 * sysdep.cc (same_file_internal) [OCTAVE_USE_WINDOWS_API]: 17696 Use INVALID_HANDLE_VALUE, not INVALID_FILE_HANDLE. 17697 176982007-05-28 G. D. McBain <geordie_mcbain@yahoo.com.au> 17699 17700 * ov-list.cc (append): Doc fix. 17701 177022007-05-28 John W. Eaton <jwe@octave.org> 17703 17704 * pt-loop.cc (DO_ND_LOOP): Avoid parser problem with obsolete g++. 17705 177062007-05-23 John W. Eaton <jwe@octave.org> 17707 17708 * version.h (OCTAVE_VERSION): Now 2.9.12+. 17709 177102007-05-23 John W. Eaton <jwe@octave.org> 17711 17712 * version.h (OCTAVE_VERSION): Now 2.9.12. 17713 (OCTAVE_RELEASE_DATE): Now 2007-05-23. 17714 17715 * parse.y (make_anon_fcn_handle): Don't build assignment expression. 17716 * ov-fcn-handle.cc (octave_fcn_handle::print_raw): 17717 Don't split assignment expression. 17718 * ov-usr-fcn.cc (octave_user_function::do_multi_index_op): 17719 Special case for inline function body evaluation. 17720 177212007-05-22 John W. Eaton <jwe@octave.org> 17722 17723 * pt-fcn-handle.cc (tree_anon_fcn_handle::rvalue): 17724 Set current function as parent of anonymous function handle. 17725 17726 * Makefile.in (uninstall): Also remove 17727 $(DESTDIR)$(octincludedir)/octave, $(DESTDIR)$(octincludedir), 17728 $(DESTDIR)$(octlibdir), and $(DESTDIR)$(octfiledir). 17729 177302007-05-22 Thomas Weber <thomas.weber.mail@gmail.com> 17731 17732 * debug.cc, error.cc, load-save.cc, oct-hist.cc, sighandlers.cc, 17733 symtab.cc: Fix typos. 17734 177352007-05-22 John W. Eaton <jwe@octave.org> 17736 17737 * version.h (OCTAVE_VERSION): Now 2.9.11+. 17738 177392007-05-22 John W. Eaton <jwe@octave.org> 17740 17741 * version.h (OCTAVE_VERSION): Now 2.9.11. 17742 (OCTAVE_API_VERSION): Now api-v24. 17743 (OCTAVE_RELEASE_DATE): Now 2007-05-22. 17744 177452007-05-21 David Bateman <dbateman@free.fr> 17746 17747 * debug.cc (Fdbstop): handle integer, vector and multiple line 17748 arguments. 17749 (Fdbclar): ditto. Eliminate extraneous debugging messages. 17750 177512007-05-21 Søren Hauberg <hauberg@gmail.com> 17752 17753 * load-path.cc (Fpath, Frehash): Replace "LOADPATH" with "load 17754 path" in doc strings. 17755 17756 * parse.y (Feval): Add example. 17757 177582007-05-21 David Bateman <dbateman@free.fr> 17759 17760 * error.cc (rethrow_error): Use NULL name so that "error:" is not 17761 added to the message 17762 (Frethrow): Correctly treat empty stack. 17763 177642007-05-21 John W. Eaton <jwe@octave.org> 17765 17766 * oct-map.h (Octave_map::numel): Return number of array elements, 17767 not number of map elements. 17768 (Octave_map::nfields): Rename from length. 17769 (Octave_map::empty): Delete. 17770 Change all uses of empty to check nfields () == 0 instead. 17771 177722007-05-21 Søren Hauberg <soren@hauberg.org> 17773 17774 * help.cc (Fautoload): Doc fix. 17775 * variables.cc (Fiscommand): Doc fix. 17776 177772007-05-19 David Bateman <dbatemna@free.fr> 17778 17779 * ov-fcn-inline.cc (Fvectorize): Doc fix. 17780 177812007-05-16 Søren Hauberg <soren@hauberg.org> 17782 17783 * ov.cc (Fsubsref, Fsubsasgn): Doc fix. 17784 177852007-05-16 John W. Eaton <jwe@octave.org> 17786 17787 * load-path.h (load_path::sys_path): New static data member. 17788 (load_path::system_path): New static function. 17789 (load_path::do_system_path): New function. 17790 * load-path.cc (Vsystem_path): Delete. 17791 (load_path::do_initialize): Use sys_path, not Vsystem_path. 17792 (Fpathdef): Call load_path::system_path instead of using Vsystem_path. 17793 * ls-mat5.cc (read_mat5_binary_element): Likewise. 17794 * ov-fcn-handle.cc (octave_fcn_handle::set_fcn): Likewise. 17795 177962007-05-16 David Bateman <dbateman@free.fr> 17797 17798 * load_pathc.cc (std::string octave_system_path (void)): New 17799 function. 17800 * load-path.h (std::string octave_system_path (void)): Declare it. 17801 17802 * load-save.cc (static load_save_format get_file_format 17803 (std::istream&, const std::string&)): Add filename argument, and 17804 pass it to read_mat5_binary_header. Use new format throughout file. 17805 (Fload): Don't allow gzip of matlab v7 files as the files 17806 themselves include compression. 17807 17808 * ls-mat5.cc (arrayclsstype:MAT_FILE_WORKSPACE_CLASS): New class 17809 type. 17810 (read_mat5_binary_element): Workspaces, don't have dimensions, so 17811 don't read them. Implement read of matlab objects, but only use 17812 them for inline functions. Implement reading of function and 17813 workspace classes. 17814 (read_mat5_binary_header): Add filename argument. Read sub-system 17815 specific data block given as an offset in bytes 117 to 124. 17816 (save_mat5_binary_element): Include saving of inline functions. 17817 17818 * ls-mat5.h (read_mat5_binary_header): Include filename. 17819 17820 * ov-fcn-handle.cc (octave_fcn_handle_save_ascii, 17821 octave_fcn_handle::load_ascii, octave_fcn_handle::save_binary, 17822 octave_fcn_handle::load_binary, octave_fcn_handle::save_hdf5, 17823 octave_fcn_handle::load_hdf5): Save and reload the local symbol 17824 table of the user function associated with anonymous function 17825 handles. Save and load the absolute path and the exec_prefix for 17826 normal function handles and use then to find equivalent functions 17827 between different installations of Octave. Attempt to maintain 17828 backward and forward compatibility. 17829 (Ffunctions): Additional outputs, including the workspace of 17830 anonymous functions, and more compatiable outputs. 17831 17832 * ov-fcn-handle.h (user_function_value): Expose the user function 17833 value of a function handle. 17834 17835 * ov-fcn-inline.cc (Octave_map octave_fcn_inline::map_value 17836 (void) const): Return a structure compatiable with matlab's class 17837 implementation of inline functions. 17838 17839 * ov-fcn-inline.h (map_value): Declare it. 17840 178412007-05-14 Bob Weigel <rweigel@gmu.edu> 17842 17843 * DLD-FUNCTIONS/svd.cc: Doc fix. 17844 178452007-05-14 Thomas Weber <thomas.weber.mail@gmail.com> 17846 17847 * DLD-FUNCTIONS/fft.cc (do_fft): Handle empty matrices. New tests. 17848 178492007-05-14 Søren Hauberg <soren@hauberg.org> 17850 17851 * toplev.cc (Fatexit): Simplify example in doc string. 17852 * help.cc (Flookfor): Doc fix. 17853 * DLD-FUNCTIONS/cellfun.cc (Fcellfun): 17854 Reformat to avoid long lines in doc string example. 17855 178562007-05-13 Søren Hauberg <soren@hauberg.org> 17857 17858 * toplev.cc (Fquit): Doc fix. 17859 * help.cc (Fhelp): Doc fix. 17860 * oct-hist.cc (Fsaving_history): Doc fix. 17861 178622007-05-11 John W. Eaton <jwe@octave.org> 17863 17864 * variables.cc (symbol_out_of_date): 17865 Always check for files that have gone missing. 17866 178672007-05-08 Michael Weitzel <michael.weitzel@uni-siegen.de> 17868 17869 * DLD-FUNCTIONS/symrcm.cc: New function for Reverse Cuthill-McKee 17870 permutation. 17871 178722007-05-07 John W. Eaton <jwe@octave.org> 17873 17874 * oct-map.cc (Octave_map::resize): Handle case of no keys. 17875 (keys_ok): Rename from equiv_keys. Return value is now status. 17876 Pass key names as string_vector reference arg. 17877 (Octave_map::assign (const octave_value_list&, const Octave_map&)): 17878 Call keys_ok, not equiv_keys. Handle case of no keys. 17879 178802007-04-30 John W. Eaton <jwe@octave.org> 17881 17882 * Makefile.in (%.df : %.cc): Use mv instead of 17883 $(simple-move-if-change-rule). 17884 178852007-04-30 David Bateman <dbateman@free.fr> 17886 17887 * pt-loop.cc (DO_ND_LOOP): New args, CONV and ARG. 17888 Use octave_idx_type instead of int for loop counters. 17889 Remove redundant assignments to variable "quit" as it is 17890 always defined in quit_loop_now. 17891 Special case rows = 0 and 1 cases in loops over arrays. 17892 Include some of the code that was separate from the macro 17893 DO_ND_LOOP in the macro itself 17894 (tree_simple_for_command::eval): USE DO_ND_LOOP for all loops. 17895 (DO_LOOP): Delete. 17896 178972007-04-30 John W. Eaton <jwe@octave.org> 17898 17899 * mex.cc (mex::cleanup): Don't call unmark for elements of the set 17900 inside the loop. From Laurent Mazet <laurent.mazet@motorola.com>. 17901 179022007-04-30 David Bateman <dbateman@free.fr> 17903 17904 * OPERATORS/op-int-conv.cc: Define sq and dq string conversion 17905 operators. Delete old char_matrix_str conversions. 17906 * OPERATORS/op-int-conv.cc (install_int_conv_ops): Install them. 17907 179082007-04-27 Benjamin Lindner <lindnerb@users.sourceforge.net>. 17909 17910 * octave.cc (execute_startup_files): Call same_file to check for 17911 already executed init files. 17912 179132007-04-27 John W. Eaton <jwe@octave.org> 17914 17915 * sysdep.cc (same_file_internal): New function. POSIX code 17916 from same_file in utils.cc. Windows code from 17917 Benjamin Lindner <lindnerb@users.sourceforge.net>. 17918 Don't canonicalize file names. 17919 Also return false if stat calls fail. 17920 * sysdep.h: Provide decl. 17921 * utils.cc (same_file): Use same_file_internal. 17922 179232007-04-27 David Bateman <dbateman@free.fr> 17924 17925 * graphic.cc (get_property_form_handle, set_property_in_handle): 17926 New functions. 17927 * grahics.h: New file. 17928 * mex.cc (mexGet, mexSet): use the above to implement mexGet 17929 and mexSet. 17930 * Makefile.in (INCLUDES): Add graphics.h 17931 179322007-04-26 John W. Eaton <jwe@octave.org> 17933 17934 * ov-usr-fcn.cc (octave_user_function::do_multi_index_op): 17935 Only deal with varargout if ret_list->takes_varargs () is true. 17936 179372007-04-26 Søren Hauberg <soren@hauberg.org> 17938 17939 * DLD-FUNCTIONS/urlwrite.cc: Doc fix. 17940 179412007-04-26 David Bateman <dbateman@free.fr> 17942 17943 * pt-loop.cc (tree_simple_for_command::eval (void)): Correct 17944 reshaping of dim_vector in for loop for multi-dimensional array. 17945 179462007-04-26 John W. Eaton <jwe@octave.org> 17947 17948 * load-save.cc (find_file_to_load): Only consider regular files. 17949 179502007-04-24 Shai Ayal <shaiay@users.sourceforge.net> 17951 17952 * graphics.cc (color_property): Eliminate alpha channel from RGB 17953 color spec. 17954 179552007-04-23 Shai Ayal <shaiay@users.sourceforge.net> 17956 17957 * graphics.cc (color_property::color_property): 17958 New arg A for alpha channel. Set rgba instead of red, green, blue. 17959 (color_property::color_property (char)): New constructor. 17960 (color_propery::rgba): New data member. 17961 (color_property::red, color_property::green, color_property::blue): 17962 Delete. 17963 (color_property::validate): Use rgba. 17964 (color_property::c2rgba): New function. 17965 179662007-04-23 Søren Hauberg <soren@hauberg.org> 17967 17968 * data.cc (Fsize_equal): Allow more than two arguments. 17969 179702007-04-20 John W. Eaton <jwe@octave.org> 17971 17972 * DLD-FUNCTIONS/__gnuplot_raw__.l (deftypefn): 17973 (Vautomatic_replot): Delete static variable. 17974 (Fautomatic_replot): Delete function. 17975 17976 * toplev.cc (Fcasesen): Delete obsolete function. 17977 17978 * DLD-FUNCTIONS/__gnuplot_raw__.l (gnuplot::makeplot): Check 17979 whether caller is "splot", not "gsplot". 17980 179812007-04-19 John W. Eaton <jwe@octave.org> 17982 17983 * lex.l (is_keyword_token): Delete all_va_args_kw switch case. 17984 * octave.gperf: Remove all_va_args_kw from the list. 17985 179862007-04-19 Daniel J. Sebald <daniel.sebald@ieee.org> 17987 17988 * syscalls.cc: Fix popen2 test to stop trying after 100 times 17989 throught the loop. 17990 179912007-04-16 Geordie McBain <geordie.mcbain@aeromech.usyd.edu.au> 17992 17993 * ov-fcn-inline.cc (Fargnames): Doc fix. 17994 179952007-04-13 Geordie McBain <geordie.mcbain@aeromech.usyd.edu.au> 17996 17997 * DLD-FUNCTIONS/find.cc (Ffind): Doc fix. 17998 179992007-04-11 John W. Eaton <jwe@octave.org> 18000 18001 * Makefile.in (DOCSTRINGS): Don't echo commands. 18002 (doc-files): Use mv, not $(simple-move-if-change-rule). 18003 18004 * data.cc (Fnot, Fuplus, Fuminus, Ftranspose, Fctranspose, Fplus, 18005 Fminus, Fmtimes, Fmrdivide, Fmpower, Fmldivide, Flt, Fle, Feq, 18006 Fge, Fgt, Fne, Ftimes, Frdivide, Fpower, Fldivide, Fand, For): 18007 New functions. 18008 180092007-04-09 John W. Eaton <jwe@octave.org> 18010 18011 * graphics.cc (line::line_properties::markeredgecolor, 18012 line::line_properties::markerfacecolor): New properties. 18013 180142007-04-06 John W. Eaton <jwe@octave.org> 18015 18016 * data.cc (F__vnorm__): New function. 18017 18018 * pt-fcn-handle.cc (tree_anon_fcn_handle::param_list, 18019 tree_anon_fcn_handle::cmd_list, tree_anon_fcn_handle::ret_list, 18020 tree_anon_fcn_handle::sym_tab): Delete. Remove all uses. 18021 (tree_anon_fcn_handle::fcn): New data member. 18022 (tree_anon_fcn_handle::tree_anon_fcn_handle): Initialize it. 18023 (tree_anon_fcn_handle::rvalue, tree_anon_fcn_handle::dup): 18024 Extract parameter list, return list, function body, and symbol 18025 table from fcn. 18026 (tree_anon_fcn_handle::parameter_list, tree_anon_fcn_handle::body): 18027 Forward request to fcn. 18028 18029 * ov-usr-fcn.h (octave_user_function::local_sym_tab): Rename from 18030 sym_tab. Change all uses. 18031 (octave_user_function::sym_tab): New function. 18032 18033 * octave.cc (execute_command_line_file): 18034 180352007-04-05 David Bateman <dbateman@free.fr> 18036 18037 * DLD-FUNCTIONS/regexp.cc (Fregexprep): Correct iteration over 18038 cell arrays so that the source and pattern are iterated seperately 18039 in the same manner as matlab. 18040 180412007-04-05 Laurent Mazet <laurent.mazet@motorola.com> 18042 18043 * mex.cc (mxArray_octave_value::get_string): Copy nel elements, 18044 not buflen elements. 18045 180462007-04-05 John W. Eaton <jwe@octave.org> 18047 18048 * oct-stream.cc (DO_DOUBLE_CONV): New macro. 18049 (do_printf): Use it. 18050 180512007-04-04 John W. Eaton <jwe@octave.org> 18052 18053 * input.cc (octave_yes_or_no): Force interactive_input to use readline. 18054 18055 * octave.cc (execute_eval_option_code): Catch bad::alloc here. 18056 180572007-04-03 John W. Eaton <jwe@octave.org> 18058 18059 * DLD-FUNCTIONS/urlwrite.cc (Furlwrite, Furlread): 18060 Use && for logical, not &. 18061 18062 * DLD-FUNCTIONS/qr.cc (Fqr): Clarify nargin check. 18063 18064 * error.cc (Frethrow): Add braces to avoid ambiguous if/else. 18065 * oct-stream.cc (octave_scan<>): Likewise. 18066 * DLD-FUNCTIONS/colamd.cc (Fetree): Likewise. 18067 * DLD-FUNCTIONS/sort.cc (mx_sort, mx_sort_indexed): Likewise. 18068 18069 * ov-fcn-handle.cc (make_fcn_handle): Pass ultimate parent 18070 function name to lookup_function. 18071 180722007-03-29 John W. Eaton <jwe@octave.org> 18073 18074 * DLD-FUNCTIONS/filter.cc (filter): Fix typo in doc string. 18075 From Utkarsh Upadhyay <musically.ut@gmail.com>. 18076 180772007-03-28 Rafael Laboissiere <rafael@debian.org> 18078 18079 * DLD-FUNCTIONS/__glpk__.cc: Fix #ifdef logic around GLPK_PRE_4_14. 18080 180812007-03-27 John W. Eaton <jwe@octave.org> 18082 18083 * version.h (OCTAVE_VERSION): Now 2.9.10+ 18084 180852007-03-27 John W. Eaton <jwe@octave.org> 18086 18087 * version.h (OCTAVE_VERSION): Now 2.9.10. 18088 (OCTAVE_API_VERSION): Now api-v23. 18089 (OCTAVE_RELEASE_DATE): Now 2007-03-27. 18090 18091 * version.h (OCTAVE_COPYRIGHT): Update for 2007. Add "and others". 18092 (X_OCTAVE_WARRANTY_STATEMENT): Rename from OCTAVE_WARRANTY_STATEMENT. 18093 Accept arg. 18094 (OCTAVE_WARRANTY_STATEMENT): Define using X_OCTAVE_WARRANTY_STATEMENT. 18095 (OCTAVE_NAME_VERSION_COPYRIGHT_COPYING_AND_WARRANTY): Define using 18096 X_OCTAVE_NAME_VERSION_COPYRIGHT_COPYING_AND_WARRANTY. 18097 (X_OCTAVE_NAME_VERSION_COPYRIGHT_COPYING_AND_WARRANTY): Rename 18098 from OCTAVE_NAME_VERSION_COPYRIGHT_COPYING_AND_WARRANTY. 18099 Accept arg and pass to X_OCTAVE_WARRANTY_STATEMENT. 18100 (OCTAVE_NAME_VERSION_COPYRIGHT_COPYING_AND_WARRANTY): Pass empty 18101 arg to X_OCTAVE_NAME_VERSION_COPYRIGHT_COPYING_WARRANTY_AND_BUGS. 18102 (OCTAVE_STARTUP_MESSAGE): Put info about news last. 18103 181042007-03-27 John W. Eaton <jwe@octave.org> 18105 18106 * Makefile.in (dist, conf-dist): Use ln, not $(LN_S). 18107 181082007-03-26 Juhani Saastamoinen <juhani@cs.joensuu.fi> 18109 18110 * file-io.cc (do_stream_open) [! HAVE_ZLIB]: 18111 Call fopen with mode, not tmode. 18112 181132007-03-26 John W. Eaton <jwe@octave.org> 18114 18115 * OPERATORS/op-str-str.cc (DEFCHARNDBINOP): New macro. Use it to 18116 define functions for eq and ne ops. Also define lt, le, ge, and 18117 gt ops. 18118 181192007-03-23 David Bateman <dbateman@free.fr> 18120 18121 * DLD-FUNCTIONS/rand.cc: Make more statistical tests optional. 18122 181232007-03-23 John W. Eaton <jwe@octave.org> 18124 18125 * bitfcns.cc (Fbitshift): Error if third argument is not a scalar. 18126 181272007-03-23 David Bateman <dbateman@free.fr> 18128 18129 * DLD-FUNCTIONS/rand.cc: Make statistical tests optional and 18130 add tests for fixed sequences. 18131 181322007-03-22 John W. Eaton <jwe@octave.org> 18133 18134 * graphics.cc (base_graphics_object::mark_modified): 18135 New virtual function. 18136 (base_properties::__modified__): New data member. 18137 (base_properties::base_properties): Initialize it. 18138 (graphics_object::mark_modified, base_properties::mark_modified, 18139 root_figure::mark_modified, figure::mark_modified, 18140 axes::mark_modified, line::mark_modified, text::mark_modified, 18141 image::mark_modified, surface::mark_modified, 18142 root_figure::root_figure_properties::mark_modified, 18143 figure::figure_properties::mark_modified, 18144 axes::axes_properties::mark_modified, 18145 line::line_properties::mark_modified, 18146 text::text_properties::mark_modified, 18147 image::image_properties::mark_modified, 18148 surface::surface_properties::mark_modified): New functions. 18149 (figure::figure_properties::set, figure::figure_properties::get, 18150 axes::axes_properties::set, axes::axes_properties::get, 18151 line::line_properties::set, line::line_properties::get, 18152 text::text_properties::set, text::text_properties::get, 18153 image::image_properties::set, image::image_properties::get, 18154 surface::surface_properties::set, surface::surface_properties::get): 18155 Handle __modified__ property. 18156 18157 * parse.y (Fautoload): Use warning_with_id. 18158 181592007-03-21 John W. Eaton <jwe@octave.org> 18160 18161 * DLD-FUNCTIONS/__qp__.cc (ABS): Delete. Use std::abs instead. 18162 (null): Set elements of retval with magnitudes less than eps to 0. 18163 18164 * error.cc (Fwarning): Allow setting options with struct. 18165 If setting options, return previous state. 18166 18167 * graphics.cc (axes::axes_properties::set_defaults): Reverse sense 18168 of mode test for setting outerposition property. 18169 (figure::figure_properties::set): If setting visible property, 18170 make this figure the current figure. 18171 (gh_manager::figure_handle_list, gh_manager::do_figure_handle_list): 18172 New functions. 18173 (F__go_figure_handles__): New function. 18174 18175 * sysdep.cc (Fpause): Also call drawnow if nargin == 0. 18176 (Fkbhit, Fsleep, Fusleep): Also call drawnow here. 18177 181782007-03-20 David Bateman <dbateman@free.fr> 18179 18180 * DLD-FUNCTIONS/cellfun.cc (Fcellfun): Correct for shape of return 18181 matrix for the case of UniformOutput being true. 18182 181832007-03-20 John W. Eaton <jwe@octave.org> 18184 18185 * sysdep.cc (Fpause): Call drawnow. 18186 181872007-03-15 John W. Eaton <jwe@octave.org> 18188 18189 * variables.cc (F__lock_global__): Delete. 18190 181912007-03-14 John W. Eaton <jwe@octave.org> 18192 18193 * graphics.cc: New file. 18194 * Makefile.in (DIST_SRC): Add it to the list. 18195 181962007-03-13 John W. Eaton <jwe@octave.org> 18197 18198 * file-io.cc (do_stream_open): Use binary mode if 't' is not 18199 specified in mode, but don't add 'b' if it is already present. 18200 182012007-03-09 David Bateman <dbateman@free.fr> 18202 18203 * data.cc (do_cat): Also treat case of all empty matrices. 18204 182052007-03-08 John W. Eaton <jwe@octave.org> 18206 18207 * mex.cc (mxArray_octave_value::set_dimensions, 18208 mxArray_octave_value::set_m, mxArray_octave_value::set_n, 18209 mxArray_octave_value::set_class_name, 18210 mxArray_octave_value::set_ir, mxArray_octave_value::set_jc, 18211 mxArray_octave_value::remove_field, 18212 mxArray_octave_value::set_field_by_number): 18213 Don't panic; request mutation instead. 18214 (class mxArray_octave_value): 18215 18216 * mxarray.h (mxArray::set_m, mxArray::set_n, 18217 mxArray::set_dimensions): Wrap method call call with 18218 DO_VOID_MUTABLE_METHOD. 18219 182202007-03-08 David Bateman <dbateman@free.fr> 18221 18222 * data.cc (do_cat): Ignore leading empty matrices. 18223 182242007-03-07 Bob Weigel <rweigel@gmu.edu> 18225 18226 * urlwrite.cc (urlget): Allow URL redirects. 18227 182282007-03-05 David Bateman <dbateman@free.fr> 18229 18230 * DLD-FUNCTIONS/md5sum.cc (Fmd5sum): Treat both files and strings. 18231 182322007-03-05 John W. Eaton <jwe@octave.org> 18233 18234 * DLD-FUNCTIONS/__glpk__.cc (F__glpk__): Check GLPK_PRE_4_14, not 18235 GLPK_PRE_4_15. 18236 182372007-03-02 John W. Eaton <jwe@octave.org> 18238 18239 * parse.y (Fautoload): Undo previous change. 18240 Warn if FILE is not an absolute file name. 18241 18242 * utils.cc (make_absolute): Make copy of arg before 18243 182442007-03-01 John W. Eaton <jwe@octave.org> 18245 18246 * ov-base-mat.h (octave_base_matrix::octave_base_matrix (const MT&), 18247 (octave_base_matrix::octave_base_matrix (const MT&, const MatrixType&)): 18248 Use common definition with default argument value. 18249 * ov-base-scalar.h (octave_base_scalar<T>::typ): New data member. 18250 Initialize in constructors. 18251 (octave_base_scalar<T>::matrix_type): New funtions. 18252 182532007-03-01 David Bateman <dbateman@free.fr> 18254 18255 * DLD-FUNCTIONS/md5sum.cc: New file. 18256 * Makefile.in (DLD_XSRC): Add md5sum.cc 18257 182582007-03-01 Olli Saarela <Olli.Saarela@kcl.fi> 18259 18260 * input.cc (FPS1): Fix @seealso. 18261 182622007-03-01 David Bateman <dbateman@free.fr> 18263 18264 * DLD-FUNCTIONS/matrix_type.cc (Fmatrix_type): Special case scalar 18265 types and always return "Full" matrix type. 18266 182672007-02-28 John W. Eaton <jwe@octave.org> 18268 18269 * input.cc (interactive_input): Also call flush_octave_stdout 18270 after calling drawnow. 18271 182722007-02-27 John W. Eaton <jwe@octave.org> 18273 18274 * Makefile.in (uninstall): Also remove octave-$(version)$(EXEEXT), 18275 oct-gperf.h, and all .oct files. Remove PKG_ADD. 18276 From Thomas Treichl <Thomas.Treichl@gmx.net>. 18277 18278 * load-path.h, (load_path::initialize, load_path::do_initialize): 18279 New arg, set_initial_path. 18280 * load-path.cc (load_path::do_initialize): Don't add system 18281 directories to apth if set_initial_path is false. 18282 * octave.cc (set_initial_path): New static variable. 18283 (NO_INITIAL_PATH_OPTION): New define. 18284 (usage_string): Include --no-initial-path in message. 18285 (long_opts): Include no-initial-path/NO_INITIAL_PATH_OPTION here. 18286 (octave_main): Handle NO_INITIAL_PATH_OPTION. 18287 Pass set_initial_path to load_path::initialize. 18288 18289 * parse.y (Fautoload): Warn about duplicate entries. Only insert 18290 the first found. 18291 182922007-02-27 David Bateman <dbateman@free.fr> 18293 18294 * error.cc (Vlast_error_file, Vlast_erro_name, Vlast_error_row, 18295 Vlast_error_column): New static variables. 18296 (verror): Use them to store the location of last error. 18297 (rethrow_error, Frethrow, Flasterror): New functions. 18298 18299 * DLD-FUNCTIONS/regexp.cc (octcellregexp): Wrapper to octregexp 18300 function for cases when string or pattern are cell arrays 18301 (Fregexp, Fregexpi): Use them. 18302 (octregexprep): New function with functionality of old Fregexprep. 18303 (Fregexprep): Treat cell arguments. 18304 183052007-02-26 Michael Goffioul <michael.goffioul@swing.be> 18306 18307 * Makefile.in: Use $(LN_S) instead of ln or ln -s. 18308 18309 * DLD-FUNCTIONS/getrusage.cc: Undef min after including windows.h. 18310 183112007-02-25 John W. Eaton <jwe@octave.org> 18312 18313 * DLD-FUNCTIONS/interpn.cc: Include dNDArray.h, not dMatrix.cc. 18314 18315 * error.h: Include cstdarg. 18316 From Juhani Saastamoinen <juhani@cs.joensuu.fi>. 18317 183182007-02-23 John W. Eaton <jwe@octave.org> 18319 18320 * variables.cc (lookup_function): Don't dereference NULL 18321 curr_parent_fucntion pointer. 18322 * ov-fcn-handle.cc (make_fcn_handle): Call lookup_function with 18323 parent set to empty string if call_stack is empty. 18324 18325 * DLD-FUNCTIONS/dispatch.cc (Fbuiltin): Also adjust argument list 18326 in calls to functions that are not overloaded. Call 18327 lookup_by_name to find function instead of searching fbi_symtab 18328 directly. 18329 18330 * help.cc (do_which): Return empty string if file not found. 18331 183322007-02-22 John W. Eaton <jwe@octave.org> 18333 18334 * mex.cc (mxArray_cell::mxArray_cell (const mxArray_cell&), 18335 mxArray_struct::mxArray_struct (const mxArray_struct&)): 18336 Avoid calling clone on 0 elements. 18337 18338 * variables.cc (symbol_out_of_date): If checking nested function, 18339 look for file using parent function name. Delete unused 18340 variable NAMES. 18341 18342 * oct-stream.cc (octave_stream::do_gets): If no limit or not 18343 at limit, read ahead one character at end of line for compatibility. 18344 (octave_stream::gets, octave_stream::getl): Set max_len to -1 if 18345 tc_max_len is not defined. 18346 * file-io.cc (Ffgets, Ffgetl): If no limit specified, pass 18347 undefined octave_value object as max_len in call to 18348 octave_stream::gets. 18349 183502007-02-21 John W. Eaton <jwe@octave.org> 18351 18352 * mex.cc (mexErrMsgIdAndTxt, mexWarnMsgIdAndTxt): Handle second 18353 arg as format and accept variable number of arguments. 18354 * mexproto.h: Fix decls. 18355 18356 * error.h, error.cc (vmessage, vusage, vwarning, verror, 18357 vparse_error, vmessage_with_id, vusage_with_id, vwarning_with_id, 18358 verror_with_id, vparse_error_with_id): Provide va_list versions of 18359 variadic error, warning, and message functions. 18360 (message, usage, warning, error, parse_error, message_with_id, 18361 usage_with_id, warning_with_id, error_with_id, 18362 parse_error_with_id): Call va_list versions. 18363 18364 * DLD-FUNCTIONS/urlwrite.cc (Furlwrite, Furlread): Return error 18365 code and message instead of throwing error if functionality is 18366 missing. 18367 18368 * oct-obj.h (octave_value_list::splice): Set default for 18369 replacement list argument. 18370 183712007-02-20 Rafael Laboissiere <rafael@laboissiere.net> 18372 18373 * DLD-FUNCTIONS/__glpk__.cc: Adapt code for changes in the GLPK 18374 API for version 4.15 or later. 18375 183762007-02-20 John W. Eaton <jwe@octave.org> 18377 18378 * mxarray.h (mxArray::get_scalar): New function. 18379 * mex.cc (mxArray_base::get_scalar): New pure virtual function. 18380 (mxArray_octave_value::get_scalar, mxArray_matlab::get_scalar, 18381 mxArray_number::get_scalar): New functions. 18382 (mxGetScalar): Call get_scalar here. 18383 18384 * mex.cc (mxArray_octave_value::get_dimensions): Cache ndims here. 18385 (mxArray_octave_value::get_number_of_dimensions): 18386 Call get_dimensions here to cache both ndims and dims. 18387 183882007-02-17 John W. Eaton <jwe@octave.org> 18389 18390 * variables.cc (symbol_out_of_date): Don't exit early if looking 18391 at nested function. 18392 183932007-02-16 John W. Eaton <jwe@octave.org> 18394 18395 * dynamic-ld.cc (octave_dynamic_loader::do_load_oct): Clear 18396 function if original was loaded from relative path and the name 18397 can no longer be found in path. Mark files found from relative 18398 path as relative. 18399 (clear): Only warn if there is more than one function to clear. 18400 18401 * variables.cc (symbol_out_of_date): Don't ignore return value in 18402 call to octave_env::make_absolute. 18403 (symbol_out_of_date): Clear symbol if original was loaded from 18404 relative path and name can no longer be found in path. 18405 18406 * dynamic-ld.cc (octave_dynamic_loader::do_load_oct): 18407 Also check whether new file is same as the old file. 18408 18409 * utils.cc (same_file): Move here from variables.cc. 18410 * utils.h: (same_file): Provide decl. 18411 18412 * parse.y (frob_function): Stash parent function name if parsing 18413 nested function. 18414 18415 * ov-fcn-handle.cc (make_fcn_handle): Pass current function name 18416 as parent in call to lookup_function. 18417 18418 * ov-fcn.h (octave_function::parent_fcn_name): New virtual function. 18419 18420 * ov-usr-fcn.h (octave_user_function::parent_name): New data member. 18421 (octave_user_function::stash_parent_function_name, 18422 octave_user_function::parent_function_name): New methods. 18423 * ov-usr-fcn.cc (octave_user_function::octave_user_function): 18424 Initialize parent_name. 18425 18426 * variables.h, variables.cc (lookup_function): New arg, parent. 18427 If not empty, try this first for lookup. 18428 18429 * dynamic-ld.cc (octave_dynamic_loader::do_load_mex): If doing 18430 path lookup, check relative status. Pass relative to oct_file_in_path. 18431 (octave_dynamic_loader::do_load_mex): Likewise, for mex_file_in_path 18432 18433 * defun-int.h, defun.cc (install_mex_function): New arg, relative. 18434 (install_dld_function): Likewise. 18435 (octave_dld_fcn_installer): Likewise. 18436 (DEFINE_FUNX_INSTALLER_FUN3): Pass relative to install_dld_function. 18437 18438 * dynamic-ld.h (octave_dynamic_loader::load_oct, 18439 octave_dynamic_loader::load_mex, 18440 octave_dynamic_loader::do_load_oct 18441 octave_dynamic_loader::do_load_mex): New arg, relative. 18442 18443 * dirfns.h (Vcurrent_directory): Delete unused variable. 18444 18445 * variables.cc (symbol_out_of_date): Also compare function time 18446 stamp to Vlast_chdir_time if function is from relative lookup. 18447 18448 * dirfns.cc (Vlast_chdir_time): New variable. 18449 (octave_change_to_directory): Update it if chdir succeeds. 18450 * dirfns.h (Vlast_chdir_time): Provide decl. 18451 18452 * ov-fcn.h (octave_function::relative): New data member. 18453 (octave_function::mark_relative, octave_function::is_relative): 18454 New functions. 18455 18456 * parse.y (fcn_file_from_relative_lookup): New static variable. 18457 (load_fcn_from_file): Note whether function file was found from 18458 relative path element. 18459 (frob_function): Maybe mark function as relative. 18460 18461 * parse.y (lookup_autoload): Don't call octave_env::make_absolute 18462 on return value. 18463 * variables.cc (symbol_out_of_date): Make name absolute after call 18464 to lookup_autoload. 18465 18466 * input.cc (interactive_input): New arg, DEBUG. Don't call 18467 drawnow if debugging. 18468 (get_user_input): Pass DEBUG to interactive_input. 18469 184702007-02-16 Michael Goffioul <michael.goffioul@swing.be> 18471 18472 * syscalls.cc (Fpopen2): New function. 18473 (pipe): Modify to return input and output file descriptor 18474 seperately rather than in a list. 18475 184762007-02-16 Muthiah Annamalai <muthuspost@gmail.com> 18477 18478 * debug.cc (Fdbtype): Improve compatibility. 18479 184802007-02-16 John W. Eaton <jwe@octave.org> 18481 18482 * toplev.cc (wait_for_input): New function. 18483 (run_command_and_return_output): Use it instead of napping. 18484 18485 * oct-procbuf.h (octave_procbuf::pid): Now const. 18486 * procstream.h (procstreambase::pid): Now const. 18487 (procstreambase::file_number): New function. 18488 184892007-02-15 John W. Eaton <jwe@octave.org> 18490 18491 * mxarray.h (mxChar): Use char instead of unsigned short. 18492 18493 * toplev.cc (Foctave_config_info): Remove 18494 OCTAVE_CONF_MKOCTFILE_INCFLAGS and OCTAVE_CONF_MKOCTFILE_LFLAGS 18495 from the list. 18496 * oct-conf.h.in (OCTAVE_CONF_MKOCTFILE_INCFLAGS, 18497 OCTAVE_CONF_MKOCTFILE_LFLAGS): Don't define. 18498 (OCTAVE_CONF_INCLUDEDIR, OCTAVE_CONF_OCTINCLUDEDIR, 18499 OCTAVE_CONF_OCTLIBDIR, OCTAVE_CONF_PREFIX): New definitions. 18500 185012007-02-14 Alexander Barth <abarth@marine.usf.edu> 18502 18503 * DLD-FUNCTIONS/interpn.cc: New file. 18504 * Makefile.in (DLD_XSRC): Add it to the list. 18505 185062007-02-14 John W. Eaton <jwe@octave.org> 18507 18508 * input.cc (interactive_input): Check error_state after call to feval. 18509 185102007-02-10 John W. Eaton <jwe@octave.org> 18511 18512 * oct-stream.cc (octave_stream::rewind): Call seek (0, SEEK_SET) 18513 instead of rep->rewind. 18514 (octave_base_stream::rewind): Delete Function. 18515 * oct-stream.h (octave_base_stream::rewind): Delete decl. 18516 185172007-02-09 John W. Eaton <jwe@octave.org> 18518 18519 * ls-mat5.cc (PAD): Adjust to change in write_mat5_tag. 18520 (TAGLENGTH): Delete unused macro. 18521 18522 * ov-struct.cc (octave_struct::load_ascii, 18523 octave_struct::load_binary, octave_struct::load_hdf5): 18524 Delete obsolete attempt at backward compatibility. 18525 18526 * ls-mat5.cc (read_mat5_binary_element): Don't attempt to read 18527 fieldnames if there are no fields. 18528 (write_mat5_tag): Don't use small data element format if bytes == 0. 18529 18530 * ls-mat5.cc (read_mat5_binary_element): Always create a structure 18531 that is at least 1x1. 18532 * ov-struct.cc (octave_struct::load_ascii, 18533 octave_struct::load_binary, octave_struct::load_hdf5): Likewise. 18534 185352007-02-08 Michael Goffioul <michael.goffioul@swing.be> 18536 18537 * DLD-FUNCTIONS/__glpk__.cc: Include glplib.h if glpk.h does not. 18538 Provide definitions for lib_set_fault_hook and lib_set_print_hook 18539 if they are not defined. 18540 185412007-02-07 John W. Eaton <jwe@octave.org> 18542 18543 * defaults.cc (subst_octave_home): 18544 Only substitute at beginning of string. 18545 18546 * ls-hdf5.cc (save_hdf5_empty): Use OCTAVE_LOCAL_BUFFER. 18547 * ov-bool-mat.cc (octave_bool_matrix::save_hdf5, 18548 octave_bool_matrix::load_hdf5): Likewise. 18549 * ov-bool-sparse.cc (octave_sparse_bool_matrix::save_hdf5, 18550 octave_sparse_bool_matrix::load_hdf5): Likewise. 18551 185522007-02-07 Michael Goffioul <michael.goffioul@swing.be> 18553 18554 * ov-cell.cc (octave_cell::save_hdf5): Correct test for H5Dwrite 18555 return value. 18556 185572007-02-07 John W. Eaton <jwe@octave.org> 18558 18559 * zfstream.cc (gzfilebuf::open_mode): Always append "b" to c_mode. 18560 18561 * toplev.cc (Foctave_config_info): Use struct for conf_info. 18562 Call subst_octave_home on selected values when initializing map. 18563 * defaults.cc (subst_octave_home): Now extern. 18564 * defaults.h.in: Provide decl. 18565 185662007-02-05 John W. Eaton <jwe@octave.org> 18567 18568 * mex.cc (mxArray_number::as_octave_value): Fake mxSINGLE_CLASS 18569 by returning double-precision values. 18570 (mxArray_sparse::as_octave_value): Clarify error message. 18571 18572 * ov-complex.h (octave_complex): Use std instead of OCTAVE_STD 18573 since the latter was unconditionally defined to be std anyway. 18574 185752007-02-05 Michael Goffioul <michael.goffioul@swing.be> 18576 18577 * ov-complex.h: Tag octave_complex class with OCTINTERP_API. 18578 185792007-01-30 John W. Eaton <jwe@octave.org> 18580 18581 * Merge of changes from graphics-branch: 18582 18583 2007-01-26 John W. Eaton <jwe@octave.org> 18584 18585 * DLD-FUNCTIONS/__contourc__.cc: New function. 18586 * Makefile.in (DLD_XSRC): Add it to the list. 18587 18588 2007-01-25 John W. Eaton <jwe@octave.org> 18589 18590 * input.cc (Vdrawnow_requested): New static variable. 18591 (F__request_drawnow__): New function. 18592 (interactive_input): New function. Update Vlast_prompt_time here. 18593 (octave_gets, get_user_input, octave_yes_or_no): 18594 Call interactive_input instead of gnu_readline. 18595 18596 * symtab.h (symbol_record::eternal): New data member. 18597 (symbol_record::symbol_record): Initialize it. 18598 (symbol_record::make_eternal, symbol_record::is_eternal): 18599 Don't forward to symbol_def functions. 18600 (symbol_record::symbol_def::make_eternal, 18601 symbol_record::symbol_def::is_eternal): Delete. 18602 (symbol_record::symbol_def::eternal): Delete data member. 18603 (symbol_record::symbol_def::symbol_def): Delete initialization. 18604 18605 * pt-id.cc (tree_identifier::link_to_global): Include variable 18606 name in warning message. 18607 18608 * variables.cc (F__lock_global__): New function. 18609 18610 2007-01-11 John W. Eaton <jwe@octave.org> 18611 18612 * ls-oct-ascii.cc (save_ascii_data_for_plotting, save_three_d): 18613 Set precision to 6 instead of 4. 18614 186152007-01-29 David Bateman <dbateman@free.fr> 18616 18617 * DLD-FUNCTIONS/find.cc (find_nonzero_elem_idx): Don't panic if 18618 nargout is greater than 3. 18619 186202007-01-24 John W. Eaton <jwe@octave.org> 18621 18622 * pt-assgn.cc (former_built_in_variables): New static data. 18623 (maybe_warn_former_built_in_variable): New static function. 18624 (tree_simple_assignment::tree_simple_assignment, 18625 tree_multi_assignment::tree_multi_assignment): 18626 Move definition here from pt-assign.h 18627 Maybe warn about assignment to obsolete built-in variables. 18628 18629 * version.h (OCTAVE_STARTUP_MESSAGE): Mention "news" function. 18630 18631 * pt-stmt.cc (tree_statement::eval): Use dynamic_cast, not 18632 static_cast. 18633 18634 * help.cc (help_from_file): Show .oct or .mex file name if one 18635 exists in the same directory as the .m file. 18636 186372007-01-23 Luis F. Ortiz <lortiz@interactivesupercomputing.com> 18638 18639 * strfns.cc (Fstrncmp): New function. 18640 186412007-01-17 John W. Eaton <jwe@octave.org> 18642 18643 * help.cc (help_from_file, help_from_symbol_table, help_from_list): 18644 Rewrite using raw_ versions. 18645 186462007-01-17 David Bateman <dbateman@free.fr> 18647 18648 * help.cc (raw_help, raw_help_from_file, 18649 raw_help_from_symbol_table, raw_help_from_list): New functions. 18650 * help.h (raw_help): Provide decl. 18651 186522007-01-16 John W. Eaton <jwe@octave.org> 18653 18654 * DLD-FUNCTIONS/__pchip_deriv__.cc: Fix dpchim decl for --enable-64. 18655 (F__pchip_deriv__): Fix call to dpchim for --enable-64. 18656 18657 * DLD-FUNCTIONS/fftw.cc: Delete decl for fftw_planner. 18658 186592007-01-11 Michael Goffioul <michael.goffioul@swing.be> 18660 18661 * load-path.h (class load_path): Tag with OCTINTERP_API. 18662 18663 * ls-oct-binary.cc (read_binary_data): Use unsigned char, not 18664 char, for reading flags and data types. 18665 186662007-01-10 Luis F. Ortiz <lortiz@interactivesupercomputing.com> 18667 18668 * parse.y (load_fcn_from_file): Delete unused variable NAMES. 18669 If NM is absolute, strip directory and extension parts. 18670 186712007-01-10 Michael Goffioul <michael.goffioul@swing.be> 18672 18673 * DLD-FUNCTIONS/getrusage.cc: Use #ifdef __WIN32__, not __MINGW32__. 18674 186752007-01-10 John W. Eaton <jwe@octave.org> 18676 18677 * parse.y (load_fcn_from_file): Only compare last two characters 18678 when looking for ".m". 18679 186802007-01-06 John W. Eaton <jwe@octave.org> 18681 18682 * version.h (OCTAVE_CONFIG_STATEMENT): New macro 18683 (OCTAVE_NAME_AND_VERSION): Remove config info. 18684 (OCTAVE_NAME_VERSION_COPYRIGHT_COPYING_AND_WARRANTY): 18685 Use OCTAVE_CONFIG_STATEMENT here. 18686 186872007-01-05 David Bateman <dbateman@free.fr> 18688 18689 * Makefile.in (DLD_XSRC): Add fftw.cc and remove fftw_wisdom.cc 18690 * DLD-FUNCTIONS/fftw.cc: New file. 18691 * DLD-FUNCTIONS/fftw_wisdom.cc: Delete. 18692 * defaults.cc (Vfftw_wisdom_program): Delete variable. 18693 (set_default_fftw_wisdom_prog): Delete function that sets it. 18694 (install_defaults): Delete set_default_fftw_prog from defaults. 18695 (Ffftw_wisdom_program): Delete. 18696 186972007-01-04 David Bateman <dbateman@free.fr> 18698 18699 * ov-fcn-handle.cc (octave_fcn_handle::load_ascii, 18700 octave_fcn_handle::load_binary): 18701 Throw error if handle can't be created. 18702 187032007-01-04 Luis F. Ortiz <lortiz@interactivesupercomputing.com> 18704 18705 * mex.cc (mxArray_number::mxArray_number (int, const char **)): 18706 Correctly index LHS in assignment. 18707 187082007-01-03 John W. Eaton <jwe@octave.org> 18709 18710 * data.cc (Fisinteger): New function. 18711 * ov-intx.h (OCTAVE_VALUE_INT_MATRIX_T::is_integer_type, 18712 OCTAVE_VALUE_INT_SCALAR_T::is_integer_type): New function. 18713 * ov.h (octave_value::is_integer_type): New function. 18714 * ov-base.h (octave_base_value::is_integer_type): New virtual function. 18715 187162007-01-03 Michael Goffioul <michael.goffioul@swing.be> 18717 18718 * toplev.cc (Fsystem): Handle async calls on Windows systems. 18719 187202007-01-03 David Bateman <dbateman@free.fr> 18721 18722 * (OPERATORS/op-cm-scm.cc, OPERATORS/op-cm-sm.cc, 18723 OPERATORS/op-cs-scm.cc, OPERATORS/op-cs-sm.cc, 18724 OPERATORS/op-m-scm.cc, OPERATORS/op-m-sm.cc, 18725 OPERATORS/op-scm-cm.cc, OPERATORS/op-scm-cs.cc, 18726 OPERATORS/op-scm-m.cc, OPERATORS/op-scm-s.cc, 18727 OPERATORS/op-scm-scm.cc, OPERATORS/op-scm-sm.cc, 18728 OPERATORS/op-sm-cm.cc, OPERATORS/op-sm-cs.cc, 18729 OPERATORS/op-sm-m.cc, OPERATORS/op-sm-s.cc, 18730 OPERATORS/op-sm-scm.cc, OPERATORS/op-sm-sm.cc, 18731 OPERATORS/op-s-scm.cc, OPERATORS/op-s-sm.cc): 18732 Modify div and ldiv functions so that scalars stored as sparse 18733 matrices are special cased. 18734 18735 * ov-re-sparse.cc (double_value, complex_value): Scalar can be 18736 stored as a sparse matrix and so don't warn on implicit conversion 18737 to a scalar. 18738 * ov-cx-sparse.cc (double_value, complex_value): ditto. 18739 * ov-bool-sparse.cc (double_value, complex_value): ditto. 18740 187412007-01-03 John W. Eaton <jwe@octave.org> 18742 18743 * dynamic-ld.cc (octave_dynamic_loader::do_load_mex): Also check 18744 for _mexFunction. 18745 187462006-12-30 John W. Eaton <jwe@octave.org> 18747 18748 * ov-fcn-inline.cc: For compatibility, class id is 18749 "function_handle", not "inline function". 18750 187512006-12-27 John W. Eaton <jwe@octave.org> 18752 18753 * Makefile.in (%.df : %.cc): Insert a "do not edit" notice in the 18754 .df files. 18755 18756 * mex.cc (mxArray_matlab::get_class_name, 18757 mxArray_octave_value::get_class_id): Use "function_handle", not 18758 "function handle". 18759 187602006-12-14 John W. Eaton <jwe@octave.org> 18761 18762 * pt-decl.cc (tree_decl_elt::eval): New function. 18763 * pt-decl.h (tree_decl_elt::eval): Provide decl. 18764 (tree_decl_elt::is_defined, tree_decl_elt::lvalue_ok, 18765 tree_decl_elt::mark_as_formal_parameter, tree_decl_elt::rvalue, 18766 tree_decl_elt::lvalue): New functions. 18767 18768 * pt-misc.h (class tree_parameter_list): Derive from 18769 octave_base_list<tree_decl_elt *> instead of 18770 octave_base_list<tree_identifier *>. 18771 (tree_parameter_list::tree_parameter_list (tree_identifier *)): Delete. 18772 (tree_parameter_list::tree_parameter_list (tree_decl_elt *)): 18773 New function. 18774 * pt-misc.cc (tree_parameter_list::mark_as_formal_parameters, 18775 tree_parameter_list::initialize_undefined_elements, 18776 tree_parameter_list::undefine, tree_parameter_list::dup, 18777 tree_parameter_list::convert_to_const_vector, 18778 tree_parameter_list::is_defined): Handle argument list elements 18779 as tree_decl_list objects instead of tree_identifier objects. 18780 (tree_parameter_list::define_from_arg_vector): Likewise. 18781 Always process entire list, setting default values if possible. 18782 Accept ":" to mean "use default argument". 18783 18784 * parse.y (param_list2): Use decl2 to recognize 18785 "identifier '=' expression" in addition to "identifier". 18786 18787 * parse.y (return_list1, make_anon_fcn_handle, finish_function): 18788 Adapt to new definition of tree_parameter_list. 18789 * pt-bp.cc (tree_breakpoint::visit_parameter_list): Likewise. 18790 * pt-check.cc (tree_checker::visit_parameter_list): Likewise. 18791 * pt-pr-code.cc (tree_print_code::visit_parameter_list): Likewise. 18792 187932006-12-08 John W. Eaton <jwe@octave.org> 18794 18795 * ov-intx.h (OCTAVE_VALUE_INT_MATRIX_T::array_value, 18796 OCTAVE_VALUE_INT_MATRIX_T::complex_array_value, 18797 OCTAVE_VALUE_INT_MATRIX_T::bool_array_value, 18798 OCTAVE_VALUE_INT_MATRIX_T::char_array_value): 18799 Use fortran_vec to avoid expensive indexing operator. 18800 188012006-12-08 David Bateman <dbateman@free.fr> 18802 18803 * ov-intx.h (OCTAVE_VALUE_INT_SCALAR_T::matrix_value, 18804 OCTAVE_VALUE_INT_SCALAR_T::complex_matrix_value, 18805 OCTAVE_VALUE_INT_MATRIX_T::matrix_value, 18806 OCTAVE_VALUE_INT_MATRIX_T::comlex_matrix_value): New functions. 18807 (OCTAVE_VALUE_INT_MATRIX_T::array_value, 18808 OCTAVE_VALUE_INT_MATRIX_T::comlex_array_value): 18809 Use octave_idx_type instead of int for indexing. 18810 188112006-12-04 David Bateman <dbateman@free.fr> 18812 18813 * xpow.cc (xpow (const Matrix&, double)): Add matrix type probing 18814 to matrix inverse. 18815 (xpow (const ComplexMatrix&, double)): ditto. 18816 * DLD-FUNCTIONS/inv.cc (Finv): Add matrix type probing. 18817 188182006-12-06 John W. Eaton <jwe@octave.org> 18819 18820 * sysdep.cc: Include "Cell.h" here. 18821 * input.h: Include "oct-obj.h", not "ov-list.h". 18822 188232006-12-06 Michael Goffioul <michael.goffioul@swing.be> 18824 18825 * mappers.cc (install_mapper_functions): Undefine isascii before 18826 the DEFUN_MAPPER for it. 18827 18828 * input.cc (get_user_input): Prevent out of bounds array access 18829 when checking for EOL. 18830 188312006-12-05 John W. Eaton <jwe@octave.org> 18832 18833 * ls-oct-ascii.cc (extract_keyword): If no match and looking for 18834 more, skip to end of line before trying another match. 18835 18836 * pt-mat.cc (tm_row_const::empty): New function. 18837 (tm_const::init): Don't append anything if tmp tm_row_const object 18838 is empty. 18839 (tree_matrix::rvalue): Default return value is Matrix(). 18840 Don't do anything if tmp tm_const object is empty. 18841 18842 * dirfns.cc (Fmkdir): Fix thinko in previous change. 18843 188442006-12-05 Paul Kienzle <pkienzle@users.sf.net> 18845 18846 * DLD-FUNCTIONS/rand.cc: Test for Poisson generator with lambda > 1e8. 18847 188482006-12-04 David Bateman <dbateman@free.fr> 18849 18850 * data.cc (Fdata): If ndims is greater than nargout and 18851 nargout is greater than 1, then collect size of trailing 18852 dimensions into retval(end). 18853 18854 * load-path.cc (load_path::do_find_fcn): Return empty string if 18855 tests fail. 18856 18857 * ov-base-mat.cc (void octave_base_matrix<MT>::assign (const 18858 octave_value_list&, const MT&)): Invalidate matrix type on 18859 assignment. 18860 188612006-11-30 John W. Eaton <jwe@octave.org> 18862 18863 * DLD-FUNCTIONS/fftw_wisdom.cc (Ffftw_wisdom): 18864 Accept "r" or "w" for second argument. 18865 188662006-11-29 John W. Eaton <jwe@octave.org> 18867 18868 * DLD-FUNCTIONS/fftw_wisdom.cc (Ffftw_wisdom): Look in load-path 18869 if reading wisdom file, but not if writing. 18870 188712006-11-28 John W. Eaton <jwe@octave.org> 18872 18873 * mex.cc (mxArray_struct::get_field_by_number): 18874 Return 0 if key_num is out of range. 18875 (mxArray_struct::set_field_by_number): 18876 Do nothing if key_num is out of range. 18877 (mxArray_cell::get_cell, mxArray_cell::set_cell): 18878 Avoid out-of-bounds indexing 18879 188802006-11-28 Luis F. Ortiz <lortiz@interactivesupercomputing.com> 18881 18882 * mex.cc (mxArray_matlab::get_n, mxArray_octave_value::get_n): 18883 Return product of last N-1 dims. 18884 188852006-11-28 John W. Eaton <jwe@octave.org> 18886 18887 * lex.l (eat_whitespace): Also handle CRLF as EOL. 18888 18889 * dirfns.cc (Fmkdir): Handle "mkdir (parent, dir)". 18890 188912006-11-21 John W. Eaton <jwe@octave.org> 18892 18893 * load-path.cc (load_path::do_find_file, 18894 load_path::do_find_first_of, load_path::do_find_all_first_of): 18895 Call rooted_pathname instead of absolute_pathname. 18896 * utils.cc (fcn_file_in_path, oct_file_in_path, mex_file_in_path): 18897 Likewise. 18898 188992006-11-16 Michael Goffioul <michael.goffioul@swing.be> 18900 18901 * oct-hist.cc (default_history_file): Instead of appending 18902 "/.octave_hist", append directory separator (but only if 18903 necessary), then ".octave_hist". 18904 189052006-11-16 John W. Eaton <jwe@octave.org> 18906 18907 * data.cc (Fresize): Fix doc string. 18908 189092006-11-15 John W. Eaton <jwe@octave.org> 18910 18911 * DLD-FUNCTIONS/__gnuplot_raw__.l (write_data, write_inline_data): 18912 New functions. 18913 (save_in_tmp_file): Use write_data. 18914 (gnuplot::send_inline_data, gnuplot_do_send_inline_data): 18915 New functions. 18916 (F__gnuplot_send_inline_data__, F__gnuplot_save_data__): 18917 New functions. 18918 18919 * ls-oct-ascii.cc (save_ascii_data_for_plotting): 18920 Call save_ascii_data with precision = 4. 18921 (save_three_d): Temporarily set precision to 4 for output stream. 18922 189232006-11-15 Michael Goffioul <michael.goffioul@swing.be> 18924 18925 * Cell.h (Cell): Tag class with OCTINTERP_API. 18926 189272006-11-13 John W. Eaton <jwe@octave.org> 18928 18929 * octave.cc (maximum_braindamage): Disable 18930 Octave:fopen-file-in-path and Octave:load-file-in-path warnings. 18931 18932 * load-save.cc (find_file_to_load): New function. 18933 (Fload): Call find_file_to_load to search load path for file. 18934 18935 * file-io.cc (Ffopen): Search load path for file. 18936 18937 * load-path.cc (path::do_find_first_of, path::do_find_file): 18938 Break out of all loops once file is found, not just innermost one. 18939 18940 * data.cc (Fsize_equal): New function. 18941 189422006-11-13 Michael Goffioul <michael.goffioul@swing.be> 18943 18944 * ov.cc (check_subsref_elements, Fsubsref, Fsubsasgn): 18945 New functions. 18946 18947 * ov-re-mat.h, ov-scalar.h, pr-output.h: 18948 Sprinkle with OCTINTERP_API as needed. 18949 189502006-11-11 John W. Eaton <jwe@octave.org> 18951 18952 * Makefile.in (parse.cc): Avoid creating empty files. 18953 (%.df : %cc, builtins.cc, mkbuiltins, PKG_ADD, DOCSTRINGS, 18954 doc-files, gendoc.cc, ops.cc, $(OPT_HANDLERS), oct-errno.cc, 18955 oct-gperf.h): Use $(simple-move-if-change-rule) here. 18956 (lex.cc, __gnuplot_raw__.cc): 18957 Use $(destdir-move-if-change-rule) here. 18958 (ifndef omit_deps): Don't include stamp-prereq here. 18959 ($(DEF_FILES), $(MAKEDEPS)): Also depend on stamp-prereq. 18960 189612006-11-10 John W. Eaton <jwe@octave.org> 18962 18963 * ov-str-mat.cc (octave_char_matrix_str::load_ascii, 18964 octave_char_matrix_str::load_binary): 18965 Use chMatrix as buffer instead of C string. 18966 189672006-11-09 John W. Eaton <jwe@octave.org> 18968 18969 * ov-usr-fcn.h (octave_user_function::inline_function): 18970 New data member. 18971 (octave_user_function::mark_as_inline_function): Set it. 18972 (octave_user_function::is_inline_function): Check it. 18973 * ov-usr-fcn.cc (octave_user_function::do_multi_index_op): 18974 Also skip setting curr_parent_fucntion if evaluating an inline 18975 function. 18976 (octave_user_function::octave_user_function): 18977 Initialize inline_function. 18978 * pt-fcn-handle.cc (tree_anon_fcn_handle::rvalue): 18979 Mark user function as inline here. 18980 189812006-11-09 Michael Goffioul <michael.goffioul@swing.be> 18982 18983 * load-path.cc (load_path::move): Don't use reference to file_info 18984 object that will be erased. 18985 189862006-11-07 John W. Eaton <jwe@octave.org> 18987 18988 * utils.cc (file_in_path): Don't unconditionally return "". 18989 18990 * pager.cc (default_pager): Don't append options here. 18991 (pager_command): New function. 18992 (do_sync): Use it. 18993 (VPAGER_FLAGS): New variable. 18994 (FPAGER_FLAGS): New function. 18995 189962006-11-06 John W. Eaton <jwe@octave.org> 18997 18998 * oct-hist.cc (default_history_file): If env_file is not empty, 18999 just accept it rather than checking to see if it exists. 19000 190012006-11-03 Bill Denney <denney@seas.upenn.edu> 19002 19003 * help.cc (keywords): Document try and unwind_protect. 19004 190052006-11-03 John W. Eaton <jwe@octave.org> 19006 19007 * Makefile.in (DLL_CXXDEFS): Rename from XTRA_CXXDEFS. 19008 (DLL_CDEFS): Rename from XTRA_CDEFS. 19009 Substitute OCTINTERP_DLL_DEFS, not XTRA_OCTINTERP_DEFS. 19010 190112006-11-02 Michael Goffioul <michael.goffioul@swing.be> 19012 19013 * sysdep.cc (MSVC_init): Also cal w32_sigint_init and 19014 w32_set_quiet_shutdown. 19015 190162006-11-01 John W. Eaton <jwe@octave.org> 19017 19018 * ov.h (octave_value::idx_type_value): New function. 19019 * data.cc (fill_matrix, Flinspace, Freshape): Use idx_type_value 19020 instead of int_value to extract size args. 19021 190222006-10-31 John W. Eaton <jwe@octave.org> 19023 19024 * ov-range.h (octave_range::empty_clone): Return octave_matrix 19025 object instead of octave_range. 19026 190272006-10-29 Juhani Saastamoinen <juhani@cs.joensuu.fi> 19028 19029 * ls-mat5.cc (read_mat5_tag): Declare bytes as int32_t, not just int. 19030 190312006-10-28 John W. Eaton <jwe@octave.org> 19032 19033 * toplev.cc (Fatexit): Push function names on the stack even if we 19034 don't have atexit or on_exit. 19035 190362006-10-28 Michael Goffioul <michael.goffioul@swing.be> 19037 19038 * mappers.cc (install_mapper_functions): Undefine toascii before 19039 the DEFUN_MAPPER for it. 19040 190412006-10-27 John W. Eaton <jwe@octave.org> 19042 19043 * mexproto.h: Include oct-dlldefs.h. 19044 19045 * pr-output.cc (SPECIALIZE_UABS): New macro. 19046 Use it to generate specializations of abs for unsigned int types. 19047 Instantiate abs for signed int types. 19048 19049 * load-path.cc (load_path::do_initialize): 19050 Use dir_path::path_sep_str instead of ":". 19051 Don't append ":::" to xpath when calling do_set. 19052 19053 * dirfns.cc (Fls, cleanup_iprocstream): Delete. 19054 19055 * sysdep.cc (Ftilde_expand): If arg is cellstr, return cellstr. 19056 19057 * ov.h (octave_value::is_cellstr): New function. 19058 * ov-base.h (octave_base_value::is_cellstr): New function. 19059 * ov-cell.h (octave_cell::is_cellstr): New function. 19060 * ov-cell.cc (Fiscellstr): Implement with is_cellstr. 19061 * Cell.cc (Cell::Cell (const dim_vector&, const string_vector&, bool)): 19062 New constructor. 19063 (Cell::is_cellstr): New function. 19064 * Cell.h: Provide decls. 19065 19066 * defaults.cc (subst_octave_home): If dir_sep_char is not '/', 19067 replace before returning. 19068 From Michael Goffioul <michael.goffioul@swing.be>. 19069 190702006-10-26 John W. Eaton <jwe@octave.org> 19071 19072 * cutils.c (octave_strcasecmp, octave-strncasecmp): 19073 Move to liboctave/lo-cutils.c. 19074 * utils.h: Delete decls. 19075 * strcasecmp.c: Move to liboctave/strcasecmp.c. 19076 * strncase.c: Move to liboctave/strncase.c. 19077 * Makefile.in (DIST_SRC): Delete them from the list. 19078 19079 * bitfcns.cc (bitshift): If A < 0, return -bitshift (-A, N, MASK). 19080 190812006-10-26 Michael Goffioul <michael.goffioul@swing.be> 19082 19083 * help.cc (display_help_text): Quote sed patterns with ". 19084 19085 * file-io.cc: Include file-io.h. 19086 19087 * TEMPLATE-INST/Array-os.cc, TEMPLATE-INST/Array-sym.cc, 19088 TEMPLATE-INST/Array-tc.cc, defun-int.h, error.h, file-io.h, 19089 gripes.h, ls-oct-ascii.h, mexproto.h, oct-map.h, oct-obj.h, 19090 oct-stream.cc, oct-stream.h, octave.h, ov-base.h, 19091 ov-bool-sparse.cc, ov-bool-sparse.h, ov-cx-sparse.cc, 19092 ov-cx-sparse.h, ov-fcn.h, ov-re-sparse.cc, ov-re-sparse.h, 19093 ov-str-mat.h, ov-typeinfo.cc, ov-typeinfo.h, ov.h, pager.h, 19094 parse.h, pr-output.cc, pr-output.h, procstream.h, sighandlers.h, 19095 symtab.h, unwind-prot.h, utils.h, variables.h: 19096 Sprinkle with OCTINTERP_API as needed. 19097 190982006-10-26 John W. Eaton <jwe@octave.org> 19099 19100 * ov-bool.h (octave_bool::sparse_matrix_value, 19101 octave_bool::sparse_complex_matrix_value 19102 octave_bool::sparse_bool_matrix_value): New functions. 19103 191042006-10-25 John W. Eaton <jwe@octave.org> 19105 19106 * sighandlers.cc: Check defined (RETSIGTYPE_IS_VOID) instead of 19107 RETSIGTYPE == void. 19108 19109 * oct-procbuf.cc (BUFSIZ): Define if not already defined. 19110 (octave_procbuf::open): Pass BUFSIZ as size argument to setvbuf. 19111 191122006-10-25 Michael Goffioul <michael.goffioul@swing.be> 19113 19114 * Makefile.in (XTRA_CDEFS, XTRA_CXXDEFS): Substitute here. 19115 19116 * oct-procbuf.cc [_MSC_VER]: Define W32POPEN and W32PCLOSE the 19117 same as for __MINGW32__. 19118 (octave_procbuf::open, octave_procbuf::close) [_MSC_VER]: 19119 Use the same code as for __MINGW32__ and __CYGWIN__. 19120 19121 * oct-prcstrm.cc [_MSC_VER]: Define popen and pclose. 19122 191232006-10-25 John W. Eaton <jwe@octave.org> 19124 19125 * sysdep.cc (w32_set_octave_home): Correctly initialize bin_dir. 19126 Fill it with '\0' instead of ' '. 19127 191282006-10-24 Michael Goffioul <michael.goffioul@swing.be> 19129 19130 * Makefile.in: Filter out $(XTRA_CXXDEFS) from $(ALL_CXXFLAGS) for 19131 $(DLD_PICOBJ). 19132 191332006-10-24 John W. Eaton <jwe@octave.org> 19134 19135 * sysdep.cc (MSC_init): New function. 19136 (sysdep_init): Call it. 19137 (w32_set_octave_home): New function, based on code from Michael 19138 Goffioul <michael.goffioul@swing.be>. 19139 (MINGW_init): Call w32_set_octave_home here too. 19140 191412006-10-23 John W. Eaton <jwe@octave.org> 19142 19143 * symtab.cc (symbol_table::clear_mex_functions): New function. 19144 * symtab.h: Provide decl. 19145 * vriables.cc (clear_mex_functions): New function. 19146 * variables.h Provide decl. 19147 * toplev.cc: Call clear_mex_functions instead of delete_symbol_tables. 19148 19149 * variables.cc (delete_symbol_tables): Delete. 19150 * variables.h: Delete decl. 19151 19152 * mex.cc (mex::unmark_array): New function. 19153 (mex::persistent): Define with unmark_array. 19154 (maybe_unmark_array): New function. 19155 (mxArray_struct::set_field_by_number, mxArray_cell::set_cell): 19156 Call maybe_unmark_array on val to avoid freeing val twice on exit 19157 from mex function. 19158 (mxFree): Call xfree, not free. 19159 191602006-10-21 John W. Eaton <jwe@octave.org> 19161 19162 * ov-intx.h 19163 (OCTAVE_VALUE_INT_MATRIX_T::OCTAVE_TYPE_PREDICATE_FUNCTION, 19164 (OCTAVE_VALUE_INT_SCALAR_T::OCTAVE_TYPE_PREDICATE_FUNCTION): 19165 Function is now const, so it properly overloads method in base 19166 class. 19167 19168 * mex.cc (mxArray_octave_value::is_uint32): 19169 Call val.is_uint32_type, not val.is_int32_type. 19170 (mxArray_octave_value::is_uint64): 19171 Call val.is_uint64_type, not val.is_int64_type. 19172 (mxArray_octave_value::is_uint8): 19173 Call val.is_uint8_type, not val.is_int8_type. 19174 191752006-10-20 Paul Kienzle <pkienzle@users.sf.net> 19176 19177 * ov-mex-fcn.h (octave_mex_function::atexit): New function. 19178 (octave_mex_function::exit_fcn_ptr): New data member. 19179 * ov-mex-fcn.cc (octave_mex_function::exit_fcn_ptr): New data member. 19180 (octave_mex_function::octave_mex_function): Initialize it. 19181 (octave_mex_function::~octave_mex_function): 19182 If we have an exit function, call it. 19183 191842006-10-20 John W. Eaton <jwe@octave.org> 19185 19186 * variables.cc (delete_symbol_tables): New function. 19187 * variables.h: Provide decl. 19188 * toplev.cc (do_octave_atexit): Call it. 19189 19190 * mex.cc (mex::mex): New arg, a pointer to the current mex function. 19191 (mex::curr_mex_fcn): New data member. 19192 (mex::current_mex_function): New function. 19193 (mexAtExit): Set exit function pointer in current mex file object. 19194 191952006-10-20 Paul Kienzle <pkienzle@users.sf.net> 19196 19197 * mex.cc (enum callstyle): Delete enum definition. 19198 (Fortran_mex, C_mex): Delete functions. 19199 (call_mex): First arg is now bool. 19200 * ov-mex-fcn.cc (call_mex): Fix decl to match new definition. 19201 (Fortran_mex, C_mex): Delete decls. 19202 (octave_mex_function::do_multi_index_op): Simplify call to call_mex. 19203 192042006-10-20 John W. Eaton <jwe@octave.org> 19205 19206 * lex.l (handle_identifier): If a command name is found, skip 19207 starting command mode if parsing an object index. 19208 192092006-10-20 David Bateman <dbateman@free.fr> 19210 19211 * DLD-FUNCTION/spqr.cc (dmperm_internal): New function with core 19212 of Fdmperm. 19213 (Fdmperm): Call dmperm_internal rather then calculating loally. 19214 (Fsprank): New function to calculate the strutural rank also using 19215 dmperm_internal. 19216 192172006-10-19 John W. Eaton <jwe@octave.org> 19218 19219 * ov-struct.cc (octave_struct::as_mxArrary): 19220 Use OCTAVE_LOCAL_BUFFER to allocate tempoarary array of field names. 19221 19222 * mxarray.h (mxArray::persistent): Delete var and all uses. 19223 (mxArray::mark_persistent, mxArray::unmark_persistent, 19224 mxArray::is_persistent): Delete functions. 19225 * mex.cc (mex::function_name): Use mxArray::strsave, not strsave. 19226 (mex::mark_array): New function. 19227 (mex::make_value): Use it. 19228 (mex::free_value): Return true if we found ptr in arraylist. 19229 (mex::persistent (mxArray *)): Remove ptr from arraylist instead 19230 of marking it as persistent. 19231 (mxArray::malloc): Call ::malloc instead of malloc. 19232 (mxArray::calloc): Call ::calloc instead of calloc. 19233 (maybe_mark_array): New function. 19234 (mxCreateCellArray, mxCreateCellMatrix, mxCreateCharArray, 19235 mxCreateCharMatrixFromStrings, mxCreateDoubleMatrix, 19236 mxCreateDoubleScalar, mxCreateLogicalArray, mxCreateLogicalMatrix, 19237 mxCreateLogicalScalar, mxCreateNumericArray, 19238 mxCreateNumericMatrix, mxCreateSparse, 19239 mxCreateSparseLogicalMatrix, mxCreateString, mxCreateStructArray, 19240 mxCreateStructMatrix, mxDuplicateArray): Use it. 19241 (mxDestroyArray): No need to check persistence now. 19242 Also delete ptr if mex_context->free_value does not. 19243 (call_mex): No need to delete elements of argout now. 19244 192452006-10-18 John W. Eaton <jwe@octave.org> 19246 19247 * dynamic-ld.cc (octave_shlib_list::remove, 19248 octave_shlib_list::do_remove, octave_mex_file_list::remove, 19249 octave_mex_file_list::do_remove): New arg, cl_hook. 19250 (octave_shlib_list::do_remove): Pass cl_hook to octave_shlib close 19251 function. 19252 (octave_dynamic_loader::do_load_oct): Don't call close on shl 19253 directly. Pass do_clear_function to octave_shlib_list::remove. 19254 19255 * mex.cc (mexUnlock): Don't warn if unlocking a function that is 19256 not locked. 19257 19258 * pt-fcn-handle.cc (tree_anon_fcn_handle::dup): 19259 Correctly duplicate symbol table info. 19260 192612006-10-17 Michael Goffioul <michael.goffioul@swing.be> 19262 19263 * oct-map.h: Include <algorithm>. 19264 192652006-10-16 John W. Eaton <jwe@octave.org> 19266 19267 * oct-stream.cc (octave_stream_list::do_remove): Handle "all" as a 19268 special case. 19269 192702006-10-13 Michael Goffioul <michael.goffioul@swing.be> 19271 19272 * Makefile.in: Adapt rules to use $(LIBPRE). 19273 192742006-10-11 John W. Eaton <jwe@octave.org> 19275 19276 * mex.h (UINT64_T, uint64_T, INT64_T, int64_T, UINT32_T, uint32_T, 19277 INT32_T, int32_T, UINT16_T, uint16_T, INT16_T, int16_T, UINT8_T, 19278 uint8_T, INT8_T, int8_T): Conditionally define. 19279 From Andy Adler <adler@site.uottawa.ca>. 19280 192812006-10-09 John W. Eaton <jwe@octave.org> 19282 19283 * oct-conf.h.in (OCTAVE_CONF_CURL_LIBS): Substitute. 19284 * toplev.cc (octave_config_info): Add CURL_LIBS to the list. 19285 192862006-10-09 Alexander Barth <abarth@marine.usf.edu> 19287 19288 * DLD-FUNCTIONS/urlwrite.cc: New file providing urlwrite and urlread. 19289 192902006-10-09 John W. Eaton <jwe@octave.org> 19291 19292 * pt-mat.cc (tree_matrix::dup): Append new elements to new matrix. 19293 * pt-cell.cc (tree_cell::dup): Append new elements to new cell array. 19294 192952006-10-04 John W. Eaton <jwe@octave.org> 19296 19297 * version.h (OCTAVE_VERSION): Now 2.9.9+. 19298 19299 * DLD-FUNCTIONS/__gnuplot_raw__.l (F__clear_plot_window__): 19300 Rename from Fclearplot. Only clear plot window. 19301 193022006-10-03 John W. Eaton <jwe@octave.org> 19303 19304 * DLD-FUNCTIONS/luinc.cc (Fluinc): Avoid crash if SparseLU or 19305 SparseComplexLU constructor fails. 19306 19307 * DLD-FUNCTIONS/find.cc (find_nonzero_elem_idx): 19308 Delete unused variable. 19309 193102006-10-03 David Bateman <dbateman@free.fr> 19311 19312 * Makefile.in (OCT_LINK_DEPS) Include $(CAMD_LIBS) in the list. 19313 (octave$(EXEEXT)): Include $(CAMD_LIBS) in link command. 19314 193152006-10-02 John W. Eaton <jwe@octave.org> 19316 19317 * version.h (OCTAVE_VERSION): Now 2.9.9. 19318 (OCTAVE_API_VERSION): Now api-v22. 19319 (OCTAVE_RELEASE_DATE): Now 2006-10-02. 19320 19321 * pr-output.cc (pr_plus_format): Use "inline" instead of "static 19322 inline" for template functions to avoid problems when not 19323 compiling with g++. 19324 19325 * mex.cc (call_mex): Delete elements of argout. 19326 From Kai Labusch <labusch@inb.uni-luebeck.de>. 19327 193282006-09-29 John W. Eaton <jwe@octave.org> 19329 19330 * DLD-FUNCTIONS/spfind.cc (sparse_find_non_zero_elem_idx): 19331 Leading dimension is NR, not NC. 19332 19333 * Makefile.in (DEP_5): Include oct-errno.cc in the list. 19334 193352006-09-27 John W. Eaton <jwe@octave.org> 19336 19337 * pr-output.cc (abs): New template function. Instantiate for 19338 unsigned types. 19339 193402006-09-27 David Bateman <dbateman@free.fr> 19341 19342 * file-io.cc (Fsprintf): If fmt is an sq_string, return an sq_string. 19343 19344 * DLD-FUNCTIONS/sparse.cc (spfind, sparse_find): Delete. 19345 * DLD-FUNCTIONS/spfind.cc: New file implementating compatible 19346 sparse find function. 19347 * Makefile.in (DLD_XSRC): Add spfind.cc. 19348 193492006-09-26 Bill Denney <bill@givebillmoney.com> 19350 19351 * DLD-FUNCTIONS/find.cc (find_nonzero_elem_idx, Ffind): 19352 Handle direction and limit on number of elements to find. 19353 193542006-09-26 John W. Eaton <jwe@octave.org> 19355 19356 * error.cc (warning_1): Call error_2, not error. 19357 193582006-09-15 John W. Eaton <jwe@octave.org> 19359 19360 * ops.h (DEFSTRDBLCONVFN): New arg, TFROM. 19361 * OPERATORS/op-double-conv.cc: Declare and install sq_string 19362 conversions too. 19363 19364 * ov-base-int.cc (octave_base_int_scalar<T>::convert_to_str_internal, 19365 octave_base_int_matrix<T>::convert_to_str_internal): 19366 New functions. 19367 * ov-base-int.h: Provide decls. 19368 193692006-09-15 Søren Hauberg <soren@hauberg.org>. 19370 19371 * data.cc (Fsize): If nargout > ndims, fill with 1. 19372 193732006-09-15 John W. Eaton <jwe@octave.org> 19374 19375 * octave.cc: Fix xerbla decl. 19376 193772006-09-13 John W. Eaton <jwe@octave.org> 19378 19379 * DLD-FUNCTIONS/cellfun.cc: Improve error message for uniform 19380 output case when results are not scalars. Avoid shadow decls. 19381 193822006-09-13 David Bateman <dbateman@free.fr> 19383 19384 * ov-scalar.h (octave_scalar::sparse_matrix_value, 19385 octave_scalar::sparse_complex_matrix_value): New extractor functions. 19386 * ov-complex.h (octave_complex::sparse_matrix_value, 19387 octave_complex::sparse_complex_matrix_value): Ditto. 19388 * DLD-FUNCTIONS/spkron.cc (Fspkron): Change example in help. 19389 193902006-09-12 David Bateman <dbateman@free.fr> 19391 19392 * DLD-FUNCTIONS/cellfun.cc (Fcellfun): Allow matlab compatiable 19393 'UniformOutput' and 'ErrorHandler' options. Change output when 19394 called with function handler or inline function to by default have 19395 'UniformOutput' set to true. Allow functions with multiple inputs 19396 and outputs. Add test code. Replace some int with octave_idx_type. 19397 (Fnum2cell): Replace some int with octave_idx_type. Add test code. 19398 193992006-09-11 Yozo Hida <yozo@cs.berkeley.edu> 19400 19401 * DLD-FUNCTIONS/gcd.cc (Fgcd): Extend range by using std::floor 19402 instead of converting to int. 19403 194042006-09-05 John W. Eaton <jwe@octave.org> 19405 19406 * mex.cc (mxArray_sparse::as_octave_value): Cast nzmax to 19407 octave_idx_type for sparse matrix constructors. 19408 194092006-09-01 John W. Eaton <jwe@octave.org> 19410 19411 * dirfns.cc: Don't handle nargout == 0 as a special case. 19412 (octave_change_to_directory): Perform tilde expansion on directory 19413 name here. 19414 194152006-08-30 John W. Eaton <jwe@octave.org> 19416 19417 * load-save.cc (get_file_format): Fix misplaced #endif. 19418 194192006-08-29 John W. Eaton <jwe@octave.org> 19420 19421 * load-path.cc (execute_pkg_add_or_del): 19422 Source PKG_ADD or PKG_DEL in base workspace. 19423 * parse.y (source_file): New optional arg, context. 19424 * parse.h (source_file): Fix decl. 19425 194262006-08-25 John W. Eaton <jwe@octave.org> 19427 19428 * version.h (OCTAVE_VERSION): Now 2.9.8+. 19429 194302006-08-24 John W. Eaton <jwe@octave.org> 19431 19432 * version.h (OCTAVE_VERSION): Now 2.9.8. 19433 (OCTAVE_API_VERSION): Now api-v21. 19434 (OCTAVE_RELEASE_DATE): Now 2006-08-24. 19435 194362006-08-23 John W. Eaton <jwe@octave.org> 19437 19438 * ov.h (octave_value::save_ascii): Delete strip_nan_and_inf arg. 19439 * ov-base.h, ov-base.cc (octave_base_value::save_ascii): Likewise. 19440 * ov-base-int.h, ov-base-int.cc (octave_base_int_matrix<T>::save_ascii, 19441 octave_base_int_scalar<T>::save_ascii, ): Likewise. 19442 * ov-base-sparse.cc, ov-base-sparse.h 19443 (octave_base_sparse<T>::save_ascii): Likewise. 19444 * ov-bool-mat.cc, ov-bool-mat.h (octave_bool_matrix::save_ascii): 19445 Likewise. 19446 * ov-bool.cc, ov-bool.h (octave_bool::save_ascii): Likewise. 19447 * ov-cell.cc, ov-cell.h (octave_cell::save_ascii): Likewise. 19448 * ov-complex.cc, ov-complex.h (octave_complex::save_ascii): Likewise. 19449 * ov-fcn-handle.cc, ov-fcn-handle.h (octave_fcn_handle::save_ascii): 19450 Likewise. 19451 * ov-fcn-inline.cc, ov-fcn-inline.h (octave_fcn_inline::save_ascii): 19452 Likewise. 19453 * ov-list.cc, ov-list.h (octave_list::save_ascii): Likewise. 19454 * ov-range.cc, ov-range.h (octave_range::save_ascii): Likewise. 19455 * ov-scalar.cc, ov-scalar.h (octave_scalar::save_ascii): Likewise. 19456 * ov-str-mat.cc, ov-str-mat.h (octave_char_matrix_str::save_ascii): 19457 Likewise. 19458 * ov-struct.cc, ov-struct.h (octave_struct::save_ascii): Likewise. 19459 * ov-re-mat.cc, ov-re-mat.cc (octave_matrix::save_ascii): Likewise. 19460 * ov-cx-mat.cc, ov-cx-mat.cc (octave_complex_matrix::save_ascii): 19461 Likewise. 19462 * ov-cx-mat.cc, ov-cx-mat.cc (octave_complex_matrix::save_ascii): 19463 Likewise. 19464 * ov-re-mat.cc, ov-re-mat.cc (octave_matrix::save_ascii): Likewise. 19465 19466 * ls-oct-ascii.cc, ls-oct-ascii.h (save_ascii_data): 19467 Delete strip_nan_and_inf arg. 19468 (save_ascii_data_for_plotting): Delete strip_nan_and_inf arg from 19469 call to save_ascii_data. 19470 19471 * DLD-FUNCTIONS/__gnuplot_raw__.l (handle_using): Accept "(EXPR)" 19472 as components of using clauses. 19473 (enum _toktype): New element DOLLAR. 19474 Accept "$" in lexer. 19475 19476 * ls-oct-ascii.cc (save_ascii_data): Delete arg strip_nan_and_inf. 19477 Change all uses. 19478 19479 * ls-oct-ascii.h (save_three_d): Provide decl. 19480 * load-save.h (save_ascii_data_for_plotting, save_three_d): 19481 Delete decls. 19482 194832006-08-22 John W. Eaton <jwe@octave.org> 19484 19485 * ov.h (octave_value::save_ascii): strip_nan_and_inf is now int, 19486 not bool. 19487 * ov-base.h, ov-base.cc (octave_base_value::save_ascii): Likewise. 19488 * ov-base-int.h, ov-base-int.cc (octave_base_int_matrix<T>::save_ascii, 19489 octave_base_int_scalar<T>::save_ascii, ): Likewise. 19490 * ov-base-sparse.cc, ov-base-sparse.h 19491 (octave_base_sparse<T>::save_ascii): Likewise. 19492 * ov-bool-mat.cc, ov-bool-mat.h (octave_bool_matrix::save_ascii): 19493 Likewise. 19494 * ov-bool.cc, ov-bool.h (octave_bool::save_ascii): Likewise. 19495 * ov-cell.cc, ov-cell.h (octave_cell::save_ascii): Likewise. 19496 * ov-complex.cc, ov-complex.h (octave_complex::save_ascii): Likewise. 19497 * ov-fcn-handle.cc, ov-fcn-handle.h (octave_fcn_handle::save_ascii): 19498 Likewise. 19499 * ov-fcn-inline.cc, ov-fcn-inline.h (octave_fcn_inline::save_ascii): 19500 Likewise. 19501 * ov-list.cc, ov-list.h (octave_list::save_ascii): Likewise. 19502 * ov-range.cc, ov-range.h (octave_range::save_ascii): Likewise. 19503 * ov-scalar.cc, ov-scalar.h (octave_scalar::save_ascii): Likewise. 19504 * ov-str-mat.cc, ov-str-mat.h (octave_char_matrix_str::save_ascii): 19505 Likewise. 19506 * ov-struct.cc, ov-struct.h (octave_struct::save_ascii): Likewise. 19507 * ov-re-mat.cc, ov-re-mat.cc (octave_matrix::save_ascii): Likewise. 19508 * ov-cx-mat.cc, ov-cx-mat.cc (octave_complex_matrix::save_ascii): 19509 Likewise. 19510 19511 * ov-cx-mat.cc, ov-cx-mat.cc (octave_complex_matrix::save_ascii): 19512 Don't strip Inf and NaN here. Call ComplexMatrix::save_ascii to 19513 do the real work. 19514 * ov-re-mat.cc, ov-re-mat.cc (octave_matrix::save_ascii): 19515 Don't strip Inf and NaN here. Call Matrix::save_ascii to do the 19516 real work. 19517 19518 * ov-re-mat.cc, ov-cx-mat.cc (strip_infnan): Delete. 19519 * ls-oct-ascii.cc, ls-oct-ascii.h (save_ascii_data): 19520 strip_nan_and_inf is now int, not bool. 19521 (strip_infnan): Delete. 19522 (save_ascii_data_for_plotting): Call save_ascii_data with 19523 strip_nan_and_inf = 2. 19524 19525 * Makefile.in (INCLUDES): Remove matrix.h from the list. 19526 195272006-08-22 David Bateman <dbateman@free.fr> 19528 19529 * sparse-xpow.cc: Replace all uses of pow by std::pow. 19530 (elem_pow): Simplify for two sparse matrices arguments. 19531 195322006-08-22 John W. Eaton <jwe@octave.org> 19533 19534 * ls-oct-ascii.cc: Increase default value of save_precision to 16. 19535 19536 * ls-mat-ascii.cc (save_mat5_ascii_data): Use scientific format. 19537 195382006-08-21 John W. Eaton <jwe@octave.org> 19539 19540 * ls-mat5.cc (read_mat5_binary_data, read_mat5_integer_data, 19541 write_mat5_array): Unconditionally enable code for 64-bit int types. 19542 19543 * ov-fcn-handle.cc (DEFINE_OV_TYPEID_FUNCTIONS_AND_DATA): 19544 For compatibility, set class to function_handle. 19545 195462006-08-18 John W. Eaton <jwe@octave.org> 19547 19548 * pr-output.cc (set_real_matrix_format): Also always include space 19549 for sign if values are int, inf, or nan. 19550 (set_complex_format, set_complex_matrix_format): Always include 19551 space for sign in real format, but never in imaginary format. 19552 19553 * gripes.cc (gripe_logical_conversion): New function. 19554 * gripes.h: Provide decl. 19555 * ov.h (octave_value::bool_value, octave_value::bool_matrix_value, 19556 octave_value::bool_array_value): New arg, warn. 19557 * ov-base.cc, ov-base.h (octave_base_value::bool_value, 19558 octave_base_value::bool_matrix_value, 19559 octave_base_value::bool_array_value): Likewise. 19560 * ov-intx.h (OCTAVE_VALUE_INT_MATRIX_T::bool_array_value, 19561 OCTAVE_VALUE_INT_SCALAR_T::bool_array_value): Likewise. 19562 * ov-range.h (octave_range::bool_array_value): Likewise. 19563 * ov-re-mat.cc, ov-re-mat.h (octave_matrix::bool_array_value): 19564 Likewise. 19565 * ov-re-sparse.cc, ov-re-sparse.h 19566 (octave_sparse_matrix::bool_array_value): Likewise. 19567 * ov-scalar.h (octave_scalar::bool_value, 19568 octave_scalar::bool_array_value): Likewise. 19569 * OPERATORS/op-bm-b.cc (oct_assignop_conv_and_assign): 19570 Ask for warning from bool_array_value. 19571 * OPERATORS/op-bm-bm.cc (oct_assignop_conv_and_assign): Likewise. 19572 * ov-bool.h (octave_bool::bool_value, 19573 octave_bool::bool_matrix_value, octave_bool::bool_array_value): 19574 Likewise. 19575 * ov-bool-mat.h (octave_bool_matrix::bool_matrix_value, 19576 octave_bool_matrix::bool_array_value): Likewise. 19577 * ov-bool-sparse.cc, ov-bool-sparse.h 19578 (octave_sparse_bool_matrix::bool_matrix_value, 19579 octave_sparse_bool_matrix::bool_array_value): Likewise. 19580 195812006-08-18 Benjamin Lindner <lindnerben@gmx.net> 19582 19583 * ls-mat5.cc (read_mat5_tag): Declare type as int32_t, not int. 19584 (read_mat5_binary_element): Likewise, for len and element_length. 19585 195862006-08-18 John W. Eaton <jwe@octave.org> 19587 19588 * load-save.h (enum load_save_format): New element, LS_MAT_ASCII_LONG. 19589 * load-save.cc (Fload, Fsave): Make -ascii Matlab compatible. 19590 (do_save): Handle LS_MAT_ASCII. 19591 * ls-mat-ascii.cc (save_mat_ascii_data): New function. 19592 * ls-mat-ascii.h: Provide decl. 19593 195942006-08-17 John W. Eaton <jwe@octave.org> 19595 19596 * ls-mat5.cc (save_mat5_element_length): Correctly compute element 19597 length for character data. Handle N-d character data 19598 (save_mat5_binary_element): Handle N-d character data. 19599 196002006-08-16 John W. Eaton <jwe@octave.org> 19601 19602 * parse.y (gobble_leading_white_space): New arg, SKIP_CODE. 19603 Change all uses. 19604 196052006-08-15 John W. Eaton <jwe@octave.org> 19606 19607 * help.cc (help_from_file): Call get_help_from_file with new file 19608 arg. Print file info here. 19609 19610 * parse.y (get_help_from_file): Delete include_file_info arg. 19611 Provide two versions, one that returns the file found in a 19612 reference arg and one that does not. 19613 19614 * variables.cc (do_isglobal): New function. 19615 (Fisglobal): Use it. 19616 (Fis_global): New function. 19617 196182006-08-14 John W. Eaton <jwe@octave.org> 19619 19620 * variables.cc (symbol_record_name_compare): Fix casts. 19621 19622 * ov-cell.cc (octave_cell::subsasgn): Call empty_conv for 0x0 19623 objects, not just empty objects. 19624 19625 * oct-map.h (Octave_map::clear): Also clear key_list. 19626 19627 * load-path.cc (load_path::find_dir_info, load_path::do_add, 19628 load_path::do_remove): Perform tilde expansion on directory here. 19629 196302006-07-29 John W. Eaton <jwe@octave.org> 19631 19632 * matrix.h: Delete to avoid conflict with liboctave/Matrix.h on 19633 case-insensitive filesystems. 19634 19635 * version.h (OCTAVE_VERSION): Now 2.9.7+. 19636 196372006-07-28 John W. Eaton <jwe@octave.org> 19638 19639 * version.h (OCTAVE_VERSION): Now 2.9.7. 19640 (OCTAVE_API_VERSION): Now api-v20. 19641 (OCTAVE_RELEASE_DATE): Now 2006-07-28. 19642 19643 * load-path.cc (path::do_add): Warn for trailing "//". 19644 19645 * strfns.cc: Comment out some tests for snapshot. 19646 196472006-07-27 John W. Eaton <jwe@octave.org> 19648 19649 * defaults.cc (Vlocal_api_arch_lib_dir): New variable. 19650 (set_default_local_api_arch_lib_dir): New function. 19651 (install_defaults): Call it. 19652 (set_exec_path): Put Vlocal_api_arch_lib_dir in the list. 19653 * toplev.cc (localapiarchlibdir): Include it in the list. 19654 * defaults.h.in (OCTAVE_LOCALAPIARCHLIBDIR): Substitute here. 19655 196562006-07-26 John W. Eaton <jwe@octave.org> 19657 19658 * mex.cc (mxArray::as_octave_value (mxArray *)): New static function. 19659 (call_mex, mexPutVariable, mexCallMATLAB, 19660 mxArray_cell::as_octave_value, mxArray_struct::as_octave_value): 19661 Use static version of as_octave_value here. 19662 (mxArray_sparse::mxArray_sparse (const mxArray_sparse&)): 19663 Check pr, ir, and jc before calling memcpy. 19664 (mxArray_number::mxArray_number): Check pr before calling memcpy 19665 19666 * mxarray.h (mxArray::as_octave_value (mxArray *)): Provide decl. 19667 (mxArray::as_octave_value): Now protected. 19668 19669 * file-io.cc (Ffeof, Fferror): Use DEFUNX instead of DEFUN. 19670 19671 * mex.cc (xfree): New function. 19672 (mex::free): Use it. 19673 (mxArray_struct::~mxArray_struct, mxArray_cell::~mxArray_cell): 19674 Delete elements with delete, not mxDestroyArray. 19675 (mex::cleanup): Don't call mex::free or mex::free_value. 19676 (mex::free_value): Add debug warning. 19677 (mex::mark, mex::unmark): Fix debug warning. 19678 (call_mex): Use unwind_protect frame. 19679 (mexUnlock): Use iterator to remove item from mex_lock_count. 19680 19681 * octave.cc (maximum_braindamage): Use disable_warning instead of 19682 bind_internal_variable to disable function-name-clash warning. 19683 * error.cc (disable_warning): No longer static. 19684 * error.h: Provide decl. 19685 196862006-07-25 David Bateman <dbateman@free.fr> 19687 19688 * mex.cc (mxArray_octave_value::get_class_id): Handle sparse. 19689 (class mxArray_sparse): Derive from mxArray_matlab, not 19690 mxArray_number. 19691 (mxArray_sparse::as_octave_value): Implement function. 19692 * ov-bool-sparse.cc (octave_sparse_bool_matrix::as_mxArray): 19693 Implement function. 19694 * ov-cx-sparse.cc (octave_sparse_complex_matrix::as_mxArray): 19695 Implement function. 19696 * ov-re-sparse.cc (octave_sparse_matrix::as_mxArray): 19697 Implement function. 19698 196992006-07-25 John W. Eaton <jwe@octave.org> 19700 19701 * mex.cc (mxArray_struct::as_octave_value, call_mex, 19702 mexCallMATLAB, mxArray_cell::as_octave_value): 19703 Convert NULL mxArray* pointers to empty matrix values. 19704 (mxArray_octave_value:get_ir): Fix typo. 19705 197062006-07-22 John W. Eaton <jwe@octave.org> 19707 19708 * mxarray.h: New file. 19709 * mex.h, mexproto.h, mex.cc: New implementation of mxArray and MEX 19710 interface. 19711 19712 * ov.h (octave_value::mex_get_ir, octave_value::mex_get_jc): 19713 New functions. 19714 * ov-base.h (octave_base_value::mex_get_ir, 19715 octave_base_value::mex_get_jc): New virtual functions. 19716 * ov-base-sparse.h (octave_base_sparse<T>::mex_get_ir, 19717 octave_base_sparse<T>::mex_get_jc): New functions. 19718 19719 * ov-intx.h (OCTAVE_VALUE_INT_SCALAR_T::as_mxArray, 19720 OCTAVE_VALUE_INT_MATRIX_T::as_mxArray): New functions. 19721 * ov-int8.h, ov-int16.h, ov-int32.h, ov-int64.h, ov-uint8.h, 19722 ov-uint16.h, ov-uint32.h, ov-uint64.h: Define OCTAVE_INT_MX_CLASS 19723 before including ov-intx.h. Undef it after. 19724 * ov-range.cc (octave_range::as_mxArray): New function. 19725 * ov-range.h: Provide decl. 19726 * ov-scalar.cc (octave_scalar::as_mxArray): New function. 19727 * ov-scalar.h: Provide decl. 19728 * ov-complex.cc (octave_complex::as_mxArray): New function. 19729 * ov-complex.h: Provide decl. 19730 * ov-re-mat.cc (octave_matrix::as_mxArray): New function. 19731 * ov-re-mat.h: Provide decl. 19732 * ov-cx-mat.cc (octave_complex_matrix::as_mxArray): New function. 19733 * ov-cx-mat.h: Provide decl. 19734 * ov-ch-mat.cc (octave_char_matrix::as_mxArray): New function. 19735 * ov-ch-mat.h: Provide decl. 19736 * ov-bool-mat.cc (octave_bool_matrix::as_mxArray): New function. 19737 * ov-bool-mat.h: Provide decl. 19738 * ov-bool.cc (octave_bool::as_mxArray): New function. 19739 * ov-bool.h: Provide decl. 19740 19741 * ov-struct.h (octave_struct::numel): New function. 19742 19743 * ls-mat5.cc (arrayclasstype): Use "MAT_FILE_" instead of "mx" as 19744 prefix for element names. 19745 19746 * ov.h (octave_value::as_mxArray): New function. 19747 * ov-base.cc (octave_base_value::as_mxArray): New function. 19748 * ov-base.h: Provide decl. 19749 19750 * ov.h (octave_value::mex_get_data): New function. 19751 * ov-base.h (octave_base_value::mex_get_data): New function. 19752 * ov-base-scalar.h (octave_base_scalar<ST>::mex_get_data): New function. 19753 * ov-base-matrix.h (octave_base_matrix<MT>::mex_get_data): New function. 19754 * ov-intx.h (OCTAVE_VALUE_INT_SCALAR_T::mex_get_data): New function. 19755 19756 * ov.h (octave_value::nfields): New function. 19757 * ov-base.cc (octave_base_value::nfields): New virtual function. 19758 * ov-base.h: Provide decl. 19759 * ov-struct.h (octave_struct::nfields): New function. 19760 197612006-07-19 John W. Eaton <jwe@octave.org> 19762 19763 * OPERATORS/op-bm-bm.cc (oct_assignop_conv_and_assign): New function. 19764 (install_bm_bm_ops): Install it for various types. 19765 * OPERATORS/op-bm-b.cc (oct_assignop_conv_and_assign): New function. 19766 (install_bm_b_ops): Install it for various types. 19767 * ov-intx.h (OCTAVE_VALUE_INT_MATRIX_T::bool_array_value, 19768 OCTAVE_VALUE_INT_SCALAR_T::bool_array_value): New functions. 19769 * ov-range.h (octave_range::bool_array_value): New function. 19770 * ov-re-sparse.cc (octave_sparse_matrix::bool_array_value): 19771 New function. 19772 * ov-re-sparse.h: Provide decl. 19773 * ov-re-mat.cc (octave_matrix::bool_array_value): New function. 19774 * ov-re-mat.h: Provide decl. 19775 19776 * ov-base.cc (octave_base_value::numeric_assign): 19777 Avoid memory leak when converting LHS. 19778 197792006-07-18 John W. Eaton <jwe@octave.org> 19780 19781 * ov.h (octave_value::is_int8_type, octave_value::is_int16_type, 19782 octave_value::is_int32_type, octave_value::is_int64_type, 19783 octave_value::is_uint8_type, octave_value::is_uint16_type, 19784 octave_value::is_uint32_type, octave_value::is_uint64_type): 19785 New functions. 19786 * ov-base.h (octave_base_value::is_int8_type, 19787 octave_base_value::is_int16_type, 19788 octave_base_value::is_int32_type, 19789 octave_base_value::is_int64_type, 19790 octave_base_value::is_uint8_type, 19791 octave_base_value::is_uint16_type, 19792 octave_base_value::is_uint32_type, 19793 octave_base_value::is_uint64_type): New functions. 19794 * ov-int8.h, ov-int16.h, ov-int32.h, ov-int16.h, ov-uint8.h, 19795 ov-uint16.h, ov-uint32.h, ov-uint16.h: Define OCTAVE_BASE_INT_T. 19796 * ov-intx.h: Use OCTAVE_BASE_INT_T to define type-specific predicate. 19797 19798 * ov.h (octave_value::is_double_type, octave_value::is_single_type): 19799 New functions. 19800 * ov-base.h (octave_base_value::is_double_type, 19801 octave_base_value::is_single_type): New functions. 19802 * ov-re-mat.h (octave_matrix::is_double_type): New function. 19803 * ov-cx-mat.h (octave_matrix::is_double_type): New function. 19804 * ov-scalar.h (octave_scalar::is_double_type): New function. 19805 * ov-complex.h (octave_complex::is_double_type): New function. 19806 * ov-range.h (octave_range::is_double_type): New function. 19807 * ov-re-sparse.h (octave_sparse_matrix::is_double_type): New function. 19808 * ov-cx-sparse.h (octave_sparse_complex_matrix::is_double_type): 19809 New function. 19810 198112006-07-15 John W. Eaton <jwe@octave.org> 19812 19813 * ov-typeinfo.cc: Also instantiate arrays of assignany_ops. 19814 19815 * oct-errno.cc.in (octave_errno::octave_errno): VALUE field in 19816 errno_struct no longer const. 19817 19818 * DLD-FUNCTIONS/dispatch.cc (octave_dispatch::do_index_op): 19819 Declare resize_ok arg as bool, not int. 19820 Provide default value for resize_ok. 19821 198222006-07-14 John W. Eaton <jwe@octave.org> 19823 19824 * oct-stream.cc (do_write): Include explicit instantiations. 19825 19826 * ov-str-mat.h (octave_char_matrix_sq_str::resize): 19827 Include fill arg to match base class. 19828 * ov-struct.h (octave_struct::resize): Likewise. 19829 19830 * ov-base-mat.cc, ov-base-mat.h, ov-base-sparse.cc, 19831 ov-base-sparse.h, ov-base.cc, ov-base.h, ov-bool.cc, 19832 ov-bool.h, ov-complex.cc, ov-complex.h, ov-intx.h, ov-list.cc, 19833 ov-list.h, ov-range.cc, ov-range.h, ov-scalar.cc, ov-scalar.h, 19834 ov-str-mat.cc, ov-str-mat.h, ov.h (do_index_op): 19835 Declare resize_ok arg as bool, not int. 19836 Provide default value for resize_ok. 19837 19838 * c-file-ptr-stream.h (c_file_ptr_stream::c_file_ptr_stream): 19839 Qualify init. 19840 198412006-07-13 John W. Eaton <jwe@octave.org> 19842 19843 * oct-map.h (Octave_map::del): Add missing std:: qualifier to use 19844 of find template. 19845 198462006-07-07 John W. Eaton <jwe@octave.org> 19847 19848 * ov.h (octave_value::is_bool_scalar): New function. 19849 * ov-base.h (octave_base_value::is_bool_scalar): New function. 19850 * ov-bool.h (octave_bool::is_bool_scalar): New function. 19851 19852 * oct-map.cc (Octave_map::keys): Use assert. 19853 (Octave_map::assign): Avoid inserting new key in map unless 19854 assignment to cell succeeds. 19855 19856 * oct-map.h (Octave_map::del): Only touch key_list if map contains key. 19857 Assert that key_list contains key. 19858 19859 * oct-map.h (Octave_map::maybe_add_to_key_list): For efficiency, 19860 check map, not key_list. From Paul Kienzle <pkienzle@users.sf.net>. 19861 198622006-07-06 John W. Eaton <jwe@octave.org> 19863 19864 * DLD-FUNCTIONS/__glpk__.cc (F__glpk__): Declare mrowsc volatile. 19865 19866 * ov-struct.cc (octave_struct::print_raw): Print keys in key_list 19867 order. 19868 19869 * oct-map.h (Octave_map::key_list): New data member. 19870 (Octave_map::maybe_add_to_key_list): New function. 19871 (Octave_map::key_list_iterator, Octave_map::const_key_list_iterator): 19872 New typedefs. 19873 (Octave_map::del): Also delete key from key_list. 19874 * oct-map.cc (Octave_map::keys): Compute return value from 19875 key_list instead of map. 19876 (Octave_map::assign, Octave_map::contents): Call maybe_add_to_key_list. 19877 * oct-map.h, oct-map.cc (Octave_map::Octave_map): 19878 Insert keys in key_list. 19879 19880 * oct-map.h (Octave_map::Octave_map (const dim_vector&, 19881 const string_vector&)): New arg, key_list_arg. 19882 * oct-map.cc: Move definition here. 19883 198842006-07-05 John W. Eaton <jwe@octave.org> 19885 19886 * mex.cc (mexGetVariable): Rename from mexGetArray, swap arguments. 19887 (mexGetVariablePtr): Rename from mexGetArrayPtr, swap arguments. 19888 (mexErrMsgIdAndTxt, mexWarnMsgIdAndTxt): New functions. 19889 * mexproto.h: Provide decls. 19890 Include decls for as yet unsupported functions. 19891 * mex.h: Add enum for class ids. 19892 (mexGetArray): Define using mexGetVariable. 19893 (mexGetArrayPtr): Define using mexGetVariablePtr. 19894 198952006-07-02 John W. Eaton <jwe@octave.org> 19896 19897 * ov-str-mat.cc (CHAR_MATRIX_CONV): Omit "warn-" from label. 19898 * parse.y (maybe_warn_variable_switch_label): Likewise. 19899 199002006-07-01 John W. Eaton <jwe@octave.org> 19901 19902 * parse.y (finish_cell): Use finish_matrix to do constant folding. 19903 199042006-06-30 John W. Eaton <jwe@octave.org> 19905 19906 * ov-base.cc (octave_base_value::numeric_assign): 19907 Avoid memory leak when converting LHS. 19908 19909 * oct-hist.cc (do_history, initialize_history, Fhistory_file): 19910 Don't perform tilde expansion on history file name. 19911 19912 * syscalls.cc (Flstat, Fstat): Don't perform tilde expansion on arg. 19913 * input.cc (Fread_readline_init_file): Likewise. 19914 * dirfns.cc (Fcd, Freaddir): Likewise. 19915 19916 * load-path.cc (genpath): Don't perform tilde expansion on name. 19917 (load_path::do_add): Don't warn about moving "." to front of list. 19918 199192006-06-28 John W. Eaton <jwe@octave.org> 19920 19921 * load-path.cc (Faddpath): Don't treat "." specially here. 19922 Don't check directory status here. 19923 (Fpath): Handle all args. Don't treat "." specially here. 19924 (Faddpath, Frmpath): Delete unused variable xpath. 19925 (load_path::do_add): New function. 19926 (load_path::do_prepend, load_path::do_append): Use it. 19927 (load_path::do_remove): Really prevent removal of ".". 19928 (load_path::do_clear): Clearing doesn't remove ".". 19929 (load_path::append, load_path::prepend, load_path::do_append, 19930 load_path::do_prepend): New arg, warn. 19931 19932 * load-path.h: Fix decls. 19933 19934 * DLD-FUNCTIONS/regexp.cc (octregexp_list): 19935 Avoid bug in older versions of g++. 19936 199372006-06-27 John W. Eaton <jwe@octave.org> 19938 19939 * Makefile.in (clean): Also remove $(DLD_OBJ). 19940 19941 * sighandlers.cc (install_signal_handlers): Don't handle SIGPROF. 19942 From Geoffrey Knauth <geoff@knauth.org>. 19943 199442006-06-25 John W. Eaton <jwe@octave.org> 19945 19946 * mk-pkg-add: Avoid apparently non-portable sed patterns. 19947 199482006-06-21 John W. Eaton <jwe@octave.org> 19949 19950 * variables.cc (do_who): Handle mex. 19951 19952 * symtab.cc (SYMBOL_DEF::type_as_string, SYMBOL_DEF::which, 19953 symbol_table::clear_functions, table::clear_function, 19954 symbol_table::clear_function_pattern): 19955 Handle mex. 19956 * symtab.h (symbol_record::is_mex_function, 19957 symbol_record::symbol_def::is_mex_function): New functions. 19958 (symbol_record::TYPE): New value, MEX_FUNCTION. 19959 (symbol_record::is_function, symbol_table::user_function_name_list, 19960 SYMTAB_ALL_TYPES): Handle MEX_FUNCTION. 19961 19962 * ov-fcn.h (octave_function::octave_function): 19963 Provide default for doc string arg. 19964 19965 * defun.cc (install_mex_function): New function. 19966 * defun-int.h: Provide decl. 19967 19968 * ov-builtin.cc (any_arg_is_magic_colon): Delete. 19969 (octave_builtin::do_multi_index_op): Call has_magic_colon method 19970 for args instead of any_arg_is_magic_colon. 19971 19972 * ov-base.h (octave_base_value::is_mex_function): New function. 19973 * ov.h (octave_value::is_mex_function): New function. 19974 19975 * ov-mex-fcn.h, ov-mex-fcn.cc: New files. 19976 19977 * parse.y (load_fcn_from_file): Also handle .mex files. 19978 19979 * dynamic-ld.cc (octave_dynamic_loader::load_oct): Rename from load. 19980 (octave_dynamic_loader::do_load_oct): Rename from do_load. 19981 * dynamic-ld.h: Fix decls. 19982 19983 * utils.cc (mex_file_in_path): New function. 19984 * utils.h: Provide decl. 19985 19986 * variables.cc (symbol_out_of_date): Also handle mex files. 19987 19988 * load-path.cc (load_path::dir_info::get_file_list, 19989 load_path::dir_info::get_private_function_map, 19990 load_path::do_find_fcn, load_path::add_to_fcn_map, 19991 load_path::do_display): Also handle mex files. 19992 * load-path.h (load_path::find_mex_file): New static function. 19993 (load_path::MEX_FILE): New static data member. 19994 (load_path::do_find_fcn): By default, also look for mex files. 19995 19996 * matrix.h, mex.h, mex.cc: New files from Octave Forge 19997 * mexproto.h: New file, extracted from mex.h. 19998 * Makefile.in: Add them to the appropriate lists. 19999 200002006-06-20 John W. Eaton <jwe@octave.org> 20001 20002 * ov-re-mat.cc (octave_matrix::convert_to_str_internal): 20003 Don't lose empty dimensions on conversion to char. 20004 20005 * strfns.cc (Fstrcmp): Handle comparison of cellstr and empty string. 20006 200072006-06-16 John W. Eaton <jwe@octave.org> 20008 20009 * parse.y (%union): New type, anon_fcn_handle_type. 20010 (anon_fcn_handle): Now anon_fcn_handle_type, not tree_constant_type. 20011 (make_anon_fcn_handle): Return tree_anon_fcn_handle, not tree_constant. 20012 20013 * comment-list.cc (octave_comment_list::dup): New function. 20014 * comment-list.h: Provide decl. 20015 20016 * pt-cmd.cc (tree_no_op_command::dup): New function. 20017 * pt-cmd.h: Provide decl. 20018 (tree_command::dup): New pure virtual function. 20019 20020 * pt-loop.cc (tree_while_command::dup, tree_do_until_command::dup, 20021 tree_simple_for_command::dup, tree_complex_for_command::dup): 20022 New functions. 20023 * pt-loop.h: Provide decls. 20024 20025 * pt-jump.cc (tree_break_command::dup, tree_continue_command::dup, 20026 tree_return_command::dup): New functions. 20027 * pt-jump.h: Provide decls. 20028 20029 * pt-except.cc (tree_try_catch_command::dup, 20030 tree_unwind_protect_command::dup): New functions. 20031 * pt-except.h: Provide decls. 20032 20033 * pt-select.cc (tree_if_clause::dup, tree_if_command_list::dup, 20034 tree_if_command::dup, tree_switch_case::dup, 20035 tree_switch_case_list::dup, tree_switch_command::dup): 20036 New functions. 20037 * pt-select.h: Provide decls. 20038 20039 * pt-decl.cc (tree_decl_elt::dup, tree_decl_init_list::dup, 20040 tree_global_command::dup, tree_static_command::dup): New functions. 20041 * pt-decl.h: Provide decls. 20042 20043 * pt-exp.h (tree_expression::copy_base): New function. 20044 (tree_expression::dup): New pure virtual function. 20045 20046 * pt-fcn-handle.cc, pt-fcn-handle.h (tree_anon_fcn_handle): New class. 20047 20048 * pt-fcn-handle.cc (tree_function_handle::dup): New function. 20049 * pt-fcn-handle.h: Provide decl. 20050 20051 * pt-colon.cc (tree_colon_expression::dup): New function. 20052 * pt-colon.h: Provide decl. 20053 (tree_colon_expression::tree_colon_expression (tree_expression *, 20054 tree_expression *, tree_expression *, int, int)): New constructor. 20055 20056 * pt-const.cc (tree_constant::dup): New function. 20057 (tree_constant::tree_constant (const octave_value&, const 20058 std::string&, int, int)): New constructor. 20059 * pt-const.h: Provide decls. 20060 20061 * pt-idx.cc (tree_index_expression::dup): New functoin. 20062 (tree_index_expression::tree_index_expression (int, int)): 20063 New constructor. 20064 * pt-idx.h: Provide decls. 20065 20066 * pt-arg-list.cc (tree_argument_list::dup): New function. 20067 * pt-arg-list.h: Provide decl. 20068 20069 * pt-id.cc (tree_identifier::dup): New function. 20070 * pt-id.h: Provide decl. 20071 20072 * pt-cell.cc (tree_cell::dup): New function. 20073 * pt-cell.h: Provide decl. 20074 20075 * pt-mat.cc (tree_matrix::dup): New function. 20076 * pt-mat.h: Provide decl. 20077 20078 * pt-assign.cc (tree_simple_assignment::dup, 20079 tree_multi_assignment::dup): New functions. 20080 * pt-assign.h: Provide decls. 20081 20082 * pt-binop.cc (tree_binary_expression::dup, 20083 tree_boolean_expression::dup): New functions. 20084 * pt-binop.h: Provide decls. 20085 20086 * pt-unop.cc (tree_prefix_expression::dup, 20087 tree_postfix_expression::dup): New functions. 20088 * pt-unop.h: Provide decls. 20089 20090 * pt-stmt.cc (tree_statement::dup, tree_statement_list::dup): 20091 New functions. 20092 * pt-stmt.h: Provide decls. 20093 20094 * pt-misc.cc (tree_parameter_list::dup, 20095 tree_return_list::dup): New functions. 20096 * pt-misc.h: Provide decls. 20097 20098 * symtab.cc (symbol_table::dup, symbol_table::inherit, 20099 symbol_record:is_automatic_variable): New functions. 20100 * symtab.h: Provide decls. 20101 (symbol_record::automatic_variable): New data member. 20102 (symbol_record::symbol_record): Initialize it. 20103 (symbol_record::mark_as_automatic_variable): New function. 20104 20105 * pt-walk.h (tree_walker::visit_anon_fcn_handle): 20106 New pure virtual function. 20107 * pt-pr-code.cc (tree_print_code::visit_anon_fcn_handle): New function. 20108 * pt-pr-code.h: Provide decl. 20109 * pt-bp.cc (tree_breakpoint::visit_anon_fcn_handle): New function. 20110 * pt-bp.h: Provide decl. 20111 * pt-check.cc (tree_checker::visit_anon_fcn_handle): New function. 20112 * pt-check.h: Provide decl. 20113 201142006-06-13 John W. Eaton <jwe@octave.org> 20115 20116 * pt-stmt.cc (tree_statement_list::eval): Revise previous change 20117 to preserve return-last-value-computed semantics. 20118 20119 * DLD-FUNCTIONS/fsolve.cc (hybrd_info_to_fsolve_info): 20120 Warn about invalid values of INFO from MINPACK instead of calling 20121 panic_impossible. 20122 20123 * ov-usr-fcn.cc (octave_user_function::do_multi_index_op): 20124 Don't assign values returned by evaluation of cmd_list to 20125 temporary variable. Delete unused variable last_computed_value. 20126 20127 * pt-stmt.cc (tree_statement_list::eval): 20128 Clear retval before each statement is evaluated. 20129 201302006-06-12 John W. Eaton <jwe@octave.org> 20131 20132 * unwind-prot.h (unwind_protect_fptr): New macro. 20133 * load-path.cc (load_path::do_set): Use it instead of 20134 unwind_protect_ptr when protecting add_hook function pointer. 20135 * dynamic-ld.cc (octave_dynamic_loader::do_load): Use FCN_PTR_CAST 20136 here instead of reinterpret_cast. 20137 201382006-06-09 John W. Eaton <jwe@octave.org> 20139 20140 * version.h (OCTAVE_VERSION): Now 2.9.6+. 20141 201422006-06-09 John W. Eaton <jwe@octave.org> 20143 20144 * version.h (OCTAVE_VERSION): Now 2.9.6. 20145 (OCTAVE_API_VERSION): Now api-v19. 20146 (OCTAVE_RELEASE_DATE): Now 2006-06-09. 20147 20148 * ov-cell.cc (cell::save_hdf5): Use leading zeros to keep elements 20149 correctly sorted in the HDF file. 20150 From Stephen Fegan <sfegan@astro.ucla.edu>. 20151 201522006-06-08 John W. Eaton <jwe@octave.org> 20153 20154 * ov-usr-fcn.cc (function::do_multi_index_op): Append contents of 20155 varargout to ret_list before calling convert_to_const_vector. 20156 20157 * pt-arg-list.cc (tree_argument_list::convert_to_const_vector): 20158 No need to handle all_va_args here. 20159 20160 * ov-va-args.h, ov-va-args.cc: Delete files. 20161 * Makefile.in (OV_INCLUDES, OV_SRC): Delete from the lists. 20162 20163 * ov.cc (install_types): Don't register octave_all_va_args type. 20164 * ov.h, ov.cc (octave_value::octave_value (octave_value::all_va_args)): 20165 Delete. 20166 * ov.h (octave_value::is_all_va_args): Delete. 20167 (octave_value::enum all_va_args): Delete. 20168 20169 * pt-pr-code.cc (tree_print_code::visit_octave_user_function_header): 20170 Print "varargout" and "varargin" instead of "...". 20171 20172 * pt-misc.h, pt-misc.cc (tree_parameter_list::convert_to_const_vector): 20173 Arg is now const Cell& instead of tree_va_return_list*. 20174 20175 * ov-usr-fcn.h, ov-usr-fcn.cc (octave_user_function::vr_list, 20176 octave_user_function::curr_va_arg_number): 20177 Delete variables and all uses. 20178 (octave_function::octave_va_start, octave_function::octave_va_arg, 20179 octave_function::octave_vr_val, octave_function::has_varargout): 20180 Delete functions and all uses. 20181 20182 * ov-fcn.h (octave_function::octave_va_start, 20183 octave_function::octave_va_arg, octave_function::octave_vr_val, 20184 octave_function::has_varargout): Delete. 20185 20186 * ov-usr-fcn.cc (Fva_arg, Fva_start, Fvr_val): Delete. 20187 20188 * lex.l ({EL}): Don't handle "..." as varargin or varargout. 20189 * octave.gperf (all_va_args, ALL_VA_ARGS, all_va_args_kw): Delete. 20190 * parse.y (ALL_VA_ARGS): Delete token and all uses. 20191 20192 * defaults.h.in (OCTAVE_DATAROOTDIR): Substitute here. 20193 * toplev.cc (octave_config_info): Add datarootdir to the struct. 20194 201952006-06-07 John W. Eaton <jwe@octave.org> 20196 20197 * ov-cell.cc (octave_cell::subsasgn): Handle c-s list object on 20198 RHS if last index is '{'. 20199 * pt-assign.cc (tree_multi_assignment::rvalue): Compute all LHS 20200 lvalues before evaluating RHS. If LHS lvalue expects more than 20201 one output, pass octave_cs_list object to assign method. 20202 * pt-idx.cc (tree_index_expression::lvalue): Compute expected 20203 number of values if '{' index appears last. 20204 * pt-arg-list.cc (tree_argument_list::lvalue_list): New function. 20205 * pt-arg-list.h (tree_argument_list::lvalue_list): Provide decl. 20206 * oct-lvalue.h (octave_lvalue::nel): New data member. 20207 (octave_lvalue::numel): New functions 20208 * oct-obj.cc (octave_value_list::has_magic_colon): New function. 20209 * oct-obj.h (octave_value_list::has_magic_colon): Provide decl. 20210 * pt-arg-list.cc (tree_argument_list::nargout_count): Delete function. 20211 * pt-arg-list.h (tree_argument_list::nargout_count): Delete decl. 20212 202132006-06-06 John W. Eaton <jwe@octave.org> 20214 20215 * sighandlers.cc (generic_sig_handler, sigint_handler): 20216 Use strsignal instead of accessing sys_siglist directly. 20217 * siglist.h: Use HAVE_DECL_SYS_SIGLIST instead of SYS_SIGLIST_DECLARED. 20218 * siglist.c: Update sys_siglist. 20219 (init_signals, strsignal): New functions. 20220 * octave.cc (octave_main): Call init_signals here. 20221 20222 * toplev.cc (Foctave_config_info): Delete LIBPLPLOT from struct. 20223 202242006-06-05 John W. Eaton <jwe@octave.org> 20225 20226 * pt-assign.cc (Vprint_rhs_assign_val): Delete variable. 20227 (Fprint_rhs_assign_val): Delete function. 20228 tree_simple_assignment::rvalue, tree_multi_assignment::rvalue): 20229 No special case for Vprint_rhs_assign_val. 20230 202312006-06-02 John W. Eaton <jwe@octave.org> 20232 20233 * pt-arg-list.h (tree_argument_list::mark_as_simple_assign_lhs, 20234 tree_argument_list::is_simple_assign_lhs): New functions. 20235 (tree_argument_list::simple_assign_lhs): New data member. 20236 * parse.y (assign_lhs): Classify LHS here. 20237 (make_assign_op): Create simple or multi assign op based on 20238 classification of LHS, not its length. 20239 202402006-06-01 John W. Eaton <jwe@octave.org> 20241 20242 * Makefile.in (DLD_XSRC): Add __pchip_deriv__.cc to the list. 20243 202442006-06-01 David Bateman <dbateman@free.fr> 20245 20246 * DLD-FUNCTIONS/__pchip_deriv__.cc: New file. 20247 202482006-05-31 John W. Eaton <jwe@octave.org> 20249 20250 * load-path.h (load_path::set_command_line_path): Make it 20251 additive. 20252 202532006-05-26 John W. Eaton <jwe@octave.org> 20254 20255 * load-path.cc (genpath, maybe_add_path_elts, Fgenpath, Frehash, 20256 Fpath, Fpathdef): Move here from defaults.cc. 20257 * load-path.cc, load-path.h: New files. 20258 * Makefile.in (INCLUDES, DIST_SRC): Add them to the lists. 20259 * help.cc (make_name_list, simple_help): Use load_path instead of 20260 octave_fcn_file_name_cache. 20261 (Flookfor): Use load_path instead of Vload_path_dir_path. 20262 * octave.cc (octave_main): Likewise. 20263 * parse.y (load_fcn_from_file): Likewise. 20264 * utils.cc (Ffile_in_loadpath, file_in_path, fcn_file_in_path, 20265 oct_file_in_path): Likewise. 20266 * variables.cc (symbol_exist, symbol_out_of_date): Likewise. 20267 * DLD-FUNCTIONS/fftw_wisdom.cc (Ffftw_wisdom): Likewise. 20268 * utils.cc (Ffind_first_of_in_loadpath): Delete. 20269 * input.cc (octave_gets): Call load_path::update here. 20270 * dirfns.cc (octave_change_to_directory): Likewise. 20271 * defaults.cc (VLOADPATH, VDEFAULT_LOADPATH, Vload_path_dir_path, 20272 maybe_add_or_del_packages, update_load_path_dir_path, 20273 execute_default_pkg_add_files, set_load_path): Delete. 20274 * defaults.h.in (Vload_path_dir_path, 20275 execute_default_pkg_add_files, maybe_add_default_load_path, 20276 set_load_path): Delete decls. 20277 20278 * fn-cache.h, fn-cache.cc: Delete. 20279 * Makefile.in (INCLUDES, DIST_SRC): Remove them from the lists. 20280 20281 * input.cc (octave_gets): Only update Vlast_prompt_time if we are 20282 interactive and actually printing a prompt. Don't print prompt if 20283 reading startup files or command line files. Initialize 20284 Vlast_prompt_time to 0. 20285 20286 * pr-output.cc (set_format): Always include space for sign. 20287 202882006-05-23 John W. Eaton <jwe@octave.org> 20289 20290 * load-save.cc (Fsave): Use tellp instead of pubseekoff to 20291 determine whether we are at beginning of file. 20292 20293 * ov-intx.h (OCTAVE_VALUE_INT_SCALAR_T::increment, 20294 OCTAVE_VALUE_INT_SCALAR_T::decrement, 20295 OCTAVE_VALUE_INT_MATRIX_T::increment, 20296 OCTAVE_VALUE_INT_MATRIX_T::decrement): New functions. 20297 * OPERATORS/op-int.h (OCTAVE_INSTALL_M_INT_UNOPS, 20298 OCTAVE_INSTALL_S_INT_UNOPS, OCTAVE_M_INT_UNOPS, 20299 OCTAVE_S_INT_UNOPS): Uncomment increment and decrement ops. 20300 203012006-05-19 John W. Eaton <jwe@octave.org> 20302 20303 * symtab.cc (SYMBOL_DEF::document): If definition is a function, 20304 also pass doc string to function object. 20305 * ov-fcn.h (octave_function::document): New function. 20306 * defun.cc (print_usage (octave_function *)): New function. 20307 (print_usage (void)): New function. 20308 (print_usage (const std::string&)): Provide for backward 20309 compatibility. Ignore arg. 20310 (Fprint_usage): Don't accept arg. 20311 * defun-int.h (print_usage (void)): Provide decl. 20312 (print_usage (const std::string&)): Tag with GCC_ATTR_DEPRECATED. 20313 203142006-05-04 David Bateman <dbateman@free.fr> 20315 20316 * DLD-FUNCTIONS/conv2.cc: New file from Octave Forge. 20317 * Makefile.in (DLD_XSRC): Add it to the list 20318 203192006-05-17 Bill Denney <bill@givebillmoney.com> 20320 20321 * help.cc (keywords): Improve and Texinfoize. 20322 203232006-05-17 John W. Eaton <jwe@octave.org> 20324 20325 * symtab.cc (Vwhos_line_format): Show class instead of type. 20326 (symbol_table::parse_whos_line_format): 20327 Use 't' for "Type" and 'c' for "Class". 20328 (symbol_record::print_symbol_info_line): Likewise. 20329 (maybe_list_cmp_fcn): Fix casts. 20330 203312006-05-11 John W. Eaton <jwe@octave.org> 20332 20333 * octave.cc (IMAGE_PATH_OPTION): New macro. 20334 (usage_string, verbose_usage): Include --image-path option. 20335 (long_opts): Include --image-path. 20336 (octave_main): Handle IMAGE_PATH_OPTION. 20337 20338 * toplev.cc (Foctave_config_info): Delete fcnfilepath, imagepath, 20339 localfcnfilepath, and localoctfilepath from the struct. 20340 * defaults.h.in (OCTAVE_FCNFILEPATH, OCTAVE_IMAGEPATH, 20341 OCTAVE_LOCALFCNFILEPATH, OCTAVE_LOCALOCTFILEPATH): Delete variables. 20342 20343 * octave.cc (octave_main): Call set_exec_path and set_load_path 20344 instead of bind_internal_variable. 20345 20346 * defaults.cc (Fpathdef): Rename from FDEFAULT_LOADPATH. 20347 Don't allow default path to be set. 20348 (Fpath): Rename from FLOADPATH. Make Matlab-compatible. 20349 (update_load_path_dir_path): No need to pass VDEFAULT_LOADPATH to 20350 dir_path constructor now. 20351 (update_exec_path, FDEFAULT_EXEC_PATH, 20352 set_default_default_exec_path, set_default_exec_path, 20353 maybe_add_default_load_path): Delete functions. 20354 (VDEFAULT_EXEC_PATH): Delete variable. 20355 (FEXEC_PATH): Leading and trailing colons no longer special. 20356 (set_exec_path, set_load_path, set_image_path, 20357 maybe_add_path_elts): New functions. 20358 (install_defaults): Call set_exec_path and set_load_path instead 20359 of set_default_exec_path and set_default_path. Don't call 20360 set_default_default_exec_path. Do call set_image_path. 20361 * defaults.cc (genpath, Fgenpath): New functions. 20362 (Vlocal_ver_oct_file_dir, Vlocal_api_oct_file_dir, 20363 Vlocal_oct_file_dir, Vlocal_ver_fcn_file_dir, 20364 Vlocal_api_fcn_file_dir, Vlocal_fcn_file_dir, Vimage_dir): 20365 New variables. 20366 (set_default_local_ver_oct_file_dir, 20367 set_default_local_api_oct_file_dir, 20368 set_default_local_oct_file_dir, 20369 set_default_local_ver_fcn_file_dir, 20370 set_default_local_api_fcn_file_dir, 20371 set_default_local_fcn_file_dir, set_default_image_dir): 20372 New functions. 20373 (install_defaults): Call them. 20374 * defaults.h.in (set_exec_path, set_load_path, set_image_path, 20375 Vlocal_ver_oct_file_dir, Vlocal_api_oct_file_dir, 20376 Vlocal_oct_file_dir, Vlocal_ver_fcn_file_dir, 20377 Vlocal_api_fcn_file_dir, Vlocal_fcn_file_dir, 20378 Vlocal_fcn_file_dir, Vimage_dir): Provide decls. 20379 203802006-05-10 John W. Eaton <jwe@octave.org> 20381 20382 * ov-cell.cc (Fcellstr): Trim trailing blanks. 20383 * Cell.h (Cell::Cell (const string_vector&)): New arg, TRIM. 20384 20385 * oct-hist.cc (initialize_history, Fhistory_size): 20386 Also call command_history::set_size here. 20387 20388 * defun.cc (Fprint_usage): New function. 20389 * help.cc (display_usage_text): New function. 20390 203912006-05-09 Keith Goodman <kwgoodman@gmail.com> 20392 20393 * DLD-FUNCTIONS/rand.cc: Doc string fix. 20394 203952006-05-09 Jorge Barros de Abreu <ficmatin01@solar.com.br> 20396 20397 * data.cc (FInf, FNaN): Fix typo in doc string. 20398 203992006-05-08 John W. Eaton <jwe@octave.org> 20400 20401 * Makefile.in (DEFUN_PATTERN): Match DEFUNX_DLD. 20402 * mkbuiltins: Handle XDEFUNX_DLD_INTERNAL. 20403 * mkgendoc: Likewise. 20404 * mk-pkg-add: Likewise. Do all the matching with sed. 20405 * defun-int.h (DEFINE_FUNX_INSTALLER_FUN, DEFINE_FUNX_INSTALLER_FUN2, 20406 DEFINE_FUNX_INSTALLER_FUN3): New macros. 20407 (DEFINE_FUN_INSTALLER_FUN3): Define using DEFINE_FUNX_INSTALLER_FUN3. 20408 (DEFUNX_DLD_INTERNAL): New macro. 20409 * defun-dld.h (DEFUNX_DLD): New macro. 20410 20411 * DLD-FUNCTIONS/__gnuplot_raw__.l: Mark __gnuplot_set__ as a 20412 command, not a rawcommand. 20413 20414 * load-save.cc: No need to handle built-in variables. 20415 * help.cc (simple_help): No need to handle built-in variables. 20416 20417 * variables.cc (is_builtin_variable, builtin_string_variable, 20418 builtin_real_scalar_variable, builtin_any_variable): 20419 Delete functions. 20420 (Fexist, Fdocument, do_who, Fwho, link_to_builtin_or_function): 20421 No need to handle built-in variables. 20422 * variables.h (is_builtin_variable, builtin_string_variable, 20423 builtin_real_scalar_variable, builtin_any_variable): Delete decls. 20424 20425 * symtab.h (symbol_record::symbol_def::is_builtin_variable, 20426 symbol_record::is_builtin_variable): Delete. 20427 (symbol_record::TYPE): Remove BUILTIN_VARIABLE from enum. 20428 (symbol_record::symbol_def::is_variable, SYMTAB_ALL_TYPES, 20429 SYMTAB_VARIABLES): No need to handle built-in variables now. 20430 (symbol_record::define_builtin_variable, 20431 symbol_record::link_to_builtin_variable): Delete decls. 20432 * symtab.cc (record::define, SYMBOL_DEF::type, 20433 SYMBOL_DEF::type_as_string): No need to handle built-in variables. 20434 (symbol_record::define_builtin_variable): Delete. 20435 (symbol_record::variable_reference): No need to attemp to link to 20436 built-in variable. 20437 20438 * utils.cc (check_preference, warn_old_style_preference): Delete. 20439 * utils.h (check_preference): Delete decl. 20440 20441 * defun-int.h: Delete all DEFVAR macros. 20442 20443 * Makefile.in, mkbuiltins: No need for VAR_FILES. 20444 20445 * parse.y (current_script_file_name): Delete all uses. 20446 (clear_current_script_file_name): Delete function. 20447 20448 * variables.cc (symbols_of_variables): Delete DEFVAR and function. 20449 (bind_ans): Lookup ans in curr_sym_tab, not fbi_sym_tab. 20450 SR is no longer static, so we insert value in local scope. 20451 20452 * defun.cc (bind_builtin_variable): Delete function. 20453 * defun-int.h: Delete decl. 20454 20455 * defaults.cc (fftw_wisdom_program): Rename from fftw_wisdom_prog. 20456 Change all uses. 20457 (VDEFAULT_LOADPATH): Rename from Vdefault_load_path. Change all uses. 20458 (VLOADPATH): Rename from Vload_path. Change all uses. 20459 (VDEFAULT_EXECPATH): Rename from Vdefault_exec_path. Change all uses. 20460 (VEXECPATH): Rename from Vexec_path. Change all uses. 20461 (VEDITOR): Rename from Veditor. Change all uses. 20462 (Ffftw_wisdom_program, FDEFAULT_LOADPATH, FLOADPATH, 20463 FDEFAULT_EXEC_PATH, FEXEC_PATH, FEDITOR, FIMAGEPATH): New functions. 20464 (fftw_wisdom_program, default_load_path, loadpath, 20465 default_exec_path, exec_path, editor, image_path): Delete functions. 20466 (symbols_of_defaults): Delete DEFVARs and function. 20467 20468 * pr-output.cc (set_output_prec_and_fw): Set Voutput_precision and 20469 Voutput_max_field_width directly instead of calling 20470 bind_builtin_variable. 20471 20472 * octave.cc (octave_main, maximum_braindamage): 20473 Call bind_internal_variable instead of bind_builtin_variable. 20474 20475 * pager.cc (Fmore): Set Vpage_screen_output directly instead of 20476 calling bind_builtin_variable. 20477 20478 * error.cc (Fwarning): Set Vdebug_on_warning directly instead of 20479 calling bind_builtin_variable. 20480 20481 * error.cc (initialize_warning_options): Now static. 20482 (disable_warning, initialize_default_warning_state): New functions. 20483 20484 * error.h (initialize_warning_options): Delete decl. 20485 (initialize_default_warning_state): Provide decl. 20486 * octave.cc (octave_main): Call initialize_default_warning_state 20487 instead initialize_warning_options. 20488 20489 * lex.l (warn_matlab_incompatible, warn_separator_insert, 20490 warn_single_quote_string): Delete functions. 20491 (symbols_of_lex): Delete DEFVARS. 20492 (Vwarn_matlab_incompatible, Vwarn_separator_insert, 20493 Vwarn_single_quote_string): Delete variables. 20494 (maybe_warn_separator_insert, gripe_single_quote_string, 20495 gripe_matlab_incompatible): Call warning_with_id instead of warning. 20496 20497 * variables.h (SET_NONEMPTY_INTERNAL_STRING_VARIABLE, 20498 SET_INTERNAL_VARIABLE_WITH_LIMITS): New macros. 20499 20500 * ls-oct-ascii.cc (Fsave_precision): New function. 20501 (save_precision): Delete function. 20502 (symbols_of_ls_oct_ascii): Delete DEFVAR and function. 20503 20504 * oct-hist.cc (initialize_history): New function. 20505 * oct-hist.h: Provide decl. 20506 * octave.cc (octave_main): Call initialize_history instead of 20507 command_history::read. 20508 20509 * oct-hist.cc (Fhistory_size, Fhistory_file, 20510 Fhistory_timestamp_format_string, Fsaving_history): New functions. 20511 (history_size, history_file, history_timestamp_format_string, 20512 saving_history): Delete functions. 20513 (symbols_of_oct_hist): Delete DEFVARs and function. 20514 20515 * pt-mat.cc (Fstring_fill_char): New function. 20516 (string_fill_char): Delete function. 20517 (symbols_of_pt_mat): Delete DEFVAR and function. 20518 20519 * variables.cc (Fignore_function_time_stamp, ans): New functions. 20520 (ignore_function_time_stamp): Delete function. 20521 (symbols_of_variables): Delete DEFVARs and function. 20522 20523 * oct-procbuf.cc: (Vkluge_procbuf_delay): Delete variable. 20524 (octave_procbuf::open): Never delay after fork. 20525 (kluge_procbuf_delay): Delete function. 20526 (symbols_of_oct_procbuf): Delete DEFVAR and function. 20527 20528 * dirfns.cc (Fconfirm_recursive_rmdir): New function. 20529 (confirm_recursive_rmdir): Delete function. 20530 (symbols_of_dirfns): Delete DEFVAR and function. 20531 20532 * error.cc (initialize_warning_options): Now extern. 20533 Rename from init_warning_options. 20534 * error.h: Provide decl. 20535 * octave.cc (octave_main): Call it here. 20536 20537 * error.cc (Fbeep_on_error, Fdebug_on_error, Fdebug_on_warning): 20538 New functions. 20539 (beep_on_error, debug_on_error, debug_on_warning): Delete Functions. 20540 (symbols_of_error): Delete DEFVARs and function. 20541 20542 * help.cc (Finfo_file, Finfo_program, Fmakeinfo_program, 20543 Fsuppress_verbose_help_message): New function. 20544 (info_file, info_program, makeinfo_program, 20545 suppress_verbose_help_message): Delete function. 20546 (symbols_of_help): Delete DEFVARs and function. 20547 (Vinfo_program): Rename from Vinfo_prog. Change all uses. 20548 20549 * input.cc (FPS1, FPS2, FPS4, Fcompletion_append_char, 20550 Fecho_executing_commands): New functions. 20551 (ps1, ps2, ps4, completion_append_char, echo_executing_commands): 20552 Delete functions. 20553 (symbols_of_input): Delete DEFVARs and function. 20554 (VPS1, VPS2, VPS4): Rename from Vps1, Vps2, Vps4. Change all uses. 20555 (Fecho): Set Vecho_executing_commands directly. 20556 20557 * load-save.cc (crash_dumps_octave_core, Fdefault_save_options, 20558 Foctave_core_file_limit, Foctave_core_file_name, 20559 Foctave_core_file_options, Fsave_header_format_string): 20560 New functions. 20561 (crash_dumps_octave_core, default_save_options, 20562 octave_core_file_limit, octave_core_file_name, 20563 octave_core_file_options, save_header_format_string): 20564 Delete functions. 20565 (symbols_of_load_save): Delete DEFVARs and function. 20566 20567 * ov-base.cc (Fprint_answer_id_name, Fsilent_functions): New functions. 20568 (print_answer_id_name, silent_functions): Delete functions. 20569 (symbols_of_ov_base): Delete DEFVARs and function. 20570 20571 * ov-usr-fcn.cc (Fmax_recursion_depth): New function. 20572 (max_recursion_depth): Delete function. 20573 (symbols_of_ov_usr_fcn): Delete DEFVAR for max_recursion_depth. 20574 Delete function. 20575 20576 * pager.cc (Fpage_output_immediately, Fpage_screen_output, FPAGER): 20577 New functions. 20578 (page_output_immediately, page_screen_output, pager_binary): 20579 Delete functions. 20580 (symbols_of_pager): Delete DEFVARs and function. 20581 (VPAGER): Rename from Vpager_binary. Change all uses. 20582 20583 * pr-output.cc (Ffixed_point_format, Fprint_empty_dimensions, 20584 Fsplit_long_rows, Foutput_max_field_width, Foutput_precision, 20585 Fstruct_levels_to_print): New functions. 20586 (fixed_point_format, print_empty_dimensions, split_long_rows, 20587 output_max_field_width, output_precision, struct_levels_to_print): 20588 Delete functions. 20589 (symbols_of_pr_output): Delete DEFVARs and function. 20590 20591 * pt-assign.cc (Fprint_rhs_assign_val): New function. 20592 (print_rhs_assign_val): Delete function. 20593 (symbols_of_pt_assign): Delete DEFVAR. Delete function. 20594 20595 * sighandlers.cc (Fdebug_on_interrupt, Fsighup_dumps_octave_core, 20596 Fsigterm_dumps_octave_core): New functions. 20597 (debug_on_interrupt, sighup_dumps_octave_core, 20598 sigterm_dumps_octave_core): Delete functions. 20599 (symbols_of_sighanlders): Delete DEFVARs. Delete function. 20600 20601 * symtab.cc (Vdebug_symtab_lookups): Now bool. 20602 (Fdebug_symtab_lookups, Fwhos_line_format, 20603 Fvariables_can_hide_functions): New functions. 20604 (debug_symtab_lookups, whos_line_format, 20605 variables_can_hide_functions): Delete functions. 20606 (symbols_of_symtab): Delete DEFVARs and function. 20607 206082006-05-04 David Bateman <dbateman@free.fr> 20609 20610 * DLD-FUNCTIONS/sqqr (Fdmperm): Allow compilation with versions 20611 v2.0.0 of CXSparse or later. 20612 206132006-05-04 John W. Eaton <jwe@octave.org> 20614 20615 * variables.cc (set_internal_variable): Move here from 20616 DLD-FUNCTIONS/__gnuplot_raw__.l. 20617 * variables.h (SET_INTERNAL_VARIABLE): Likewise. 20618 (set_internal_variable): Provide decls. 20619 20620 * DLD-FUNCTIONS/__gnuplot_raw__.l: Convert all DEFVARs to DEFUN_DLDs. 20621 (gnuplot::init): Delete. 20622 (gnuplot::gnuplot): Don't call init here. 20623 (set_internal_variable): New functions. 20624 (SET_INTERNAL_VARIABLE): New macro. 20625 20626 * Makefile.in: Undo changes of 2006-03-16. 20627 * DLD-FUNCTINS/__gnuplot_raw__.l: Move here from __gnuplot_raw__.l. 20628 Undo changes of 2006-03-16. 20629 206302006-05-03 David Bateman <dbateman@free.fr> 20631 20632 * ov-base-mat.h: Add caching of matrix type, and code to supply 20633 and copy matrix type. 20634 * ov-bool-mat.h: Add caching to constructor. 20635 * ov-re-mat.h: ditto. 20636 * ov-cx-mat.h: ditto. 20637 * ov.cc: Add to the BoolMatrix, Matrix and the ComplexMatrix 20638 octave_value constructors, the ability to specify the matrix type. 20639 * ov.h: Adapt declaration of above constructors. 20640 (MatrixType matrix_type(void) const, MatrixType matrix_type (const 20641 MatrixType&)): New functions for probing and setting matrix type. 20642 * ov-base.cc (virtual MatrixType matrix_type(void) const, virtual 20643 MatrixType matrix_type (const MatrixType&)): New default functions 20644 for probing and setting matrix type. 20645 * ov-base.h (virtual MatrixType matrix_type(void) const, virtual 20646 MatrixType matrix_type (const MatrixType&)): Declarations. 20647 * ov-base-sparse.h: Replace all uses of SparseType with 20648 MatrixType. Replace sparse_type function with matrix_type function. 20649 * ov-bool-sparse.h: Replace all uses of SparseType with MatrixType. 20650 * ov-cx-sparse.h: ditto. 20651 * ov-re-sparse.h: ditto. 20652 * sparse-xdiv.cc: ditto. 20653 * sparse-xdiv.h: ditto. 20654 * sparse-xpow.cc: ditto. 20655 * DLD-FUNCTIONS/luinc.cc: ditto. 20656 * DLD-FUNCTIONS/splu.cc: ditto. 20657 * xdiv.cc (xdiv, xleftdiv): Pass the matrix type, simplfy since 20658 the matrix solve function now calls lssolve if singular. 20659 * xdiv.h (xdvi, xleftdiv): Update the declarations 20660 * OPERATORS/op-cm-cm.cc, OPERATORS/op-cm-cs.cc, 20661 OPERATORS/op-cm-m.cc, OPERATORS/op-cm-s.cc, 20662 OPERATORS/op-cm-scm.cc, OPERATORS/op-cm-sm.cc, 20663 OPERATORS/op-cs-cm.cc, OPERATORS/op-cs-m.cc, 20664 OPERATORS/op-m-cm.cc, OPERATORS/op-m-cs.cc, 20665 OPERATORS/op-m-m.cc, OPERATORS/op-m-s.cc, 20666 OPERATORS/op-m-scm.cc, OPERATORS/op-m-sm.cc, 20667 OPERATORS/op-s-cm.cc, OPERATORS/op-s-m.cc, 20668 OPERATORS/op-scm-cm.cc, OPERATORS/op-scm-m.cc, 20669 OPERATORS/op-sm-cm.cc, OPERATORS/op-sm-m.cc: Update use of 20670 xdiv and xleftdiv functions to allow matrix type caching. 20671 * DLD-FUNCTIONS/matrix_type.cc (Fmatrix_type): Update to allow typing 20672 of Matrix, and ComplexMatrix types. Add new test code for this. 20673 20674 * DLD-FUNCTIONS/cellfun.cc (Fmat2cell): new function. 20675 20676 * DLD-FUNCTIONS/regexp.cc (class regexp_elem): New class to store 20677 matched element in a std::list. 20678 (octregexp_list): Take algorithm from octregexp and construct a 20679 list of matches. 20680 (octregexp): Rewrite to use linked list of matches. 20681 (Fregexprep): New function, working directly in linked list of 20682 matches. 20683 206842006-05-02 John W. Eaton <jwe@octave.org> 20685 20686 * lex.l ({CCHAR}): Exit rawcommand mode if returning '\n' token. 20687 206882006-05-02 David Bateman <dbateman@free.fr> 20689 20690 * DLD-FUNCTIONS/rand.cc (do_rand): Require real scalar for seed. 20691 206922006-05-01 John W. Eaton <jwe@octave.org> 20693 20694 * error.h (Vwarning_option): Delete. 20695 * variables.cc (looks_like_struct): Remove use from commented code. 20696 20697 * gripes.cc, gripes.h (gripe_implicit_conversion): New arg, ID. 20698 Change all uses. 20699 20700 * defaults.cc (set_local_site_defaults_file, set_site_defaults_file): 20701 Allow filenames to be set from the environment. 20702 20703 * oct-map.cc (octave_map::resize): No longer const. 20704 * ov-struct.h (octave_struct::resize): Deal with it. 20705 20706 * octave.cc (initialize_error_handlers): Also call 20707 set_liboctave_warning_with_id_handler. 20708 (execute_startup_files): Check that home_rc is not an empty string. 20709 (F__version_info__): Resize vinfo before assigining elements. 20710 20711 * ov-base.cc (warn_num_to_str, warn_resize_on_range_error): 20712 Delete functions. 20713 (symbols_of_ov_base): Delete DEFVARS. 20714 (Vwarn_num_to_str, Vwarn_resize_on_range_error): Delete variables. 20715 (value::convert_to_str): Check state of warning ID 20716 Octave:num-to-str instead of using Vwarn_num_to_str. 20717 * OPERATORS/op-chm.cc: Likewise. 20718 * ov-base.h (Vwarn_num_to_str, Vwarn_resize_on_range_error): 20719 Delete decls. 20720 20721 * ov-list.cc (octave_list::assign): Call warning_with_id instead 20722 of warning. 20723 20724 * parse.y (warn_assign_as_truth_value, warn_associativity_change, 20725 warn_function_name_clash, warn_future_time_stamp, 20726 warn_missing_semicolon, warn_precedence_change, 20727 warn_variable_switch_label, symbols_of_parse): 20728 Delete DEFVARs and functions. 20729 (Vwarn_assign_as_truth_value, Vwarn_associativity_change, 20730 Vwarn_function_name_clash, Vwarn_future_time_stamp, 20731 Vwarn_missing_semicolon, Vwarn_precedence_change, 20732 Vwarn_variable_switch_label): Delete variables. 20733 * parse.h (Vwarn_future_time_stamp): Delete decl. 20734 * parse.y (fold): Check state of warning ID 20735 Octave:associativity-change and Octave:precedence-change instead 20736 of using Vwarn_associativity_change and Vwarn_precedence_change. 20737 (maybe_warn_associativity_change, maybe_warn_missing_semi, 20738 maybe_warn_assign_as_truth_value, make_binary_op, make_boolean_op, 20739 frob_function): Call warning_with_id instead of warning. 20740 * dynamic-ld.cc (octave_dynamic_loader::do_load): Likewise. 20741 20742 * ov.cc (warn_fortran_indexing, warn_imag_to_real, symbols_of_ov): 20743 Delete DEFVARs and functions. 20744 (Vwarn_fortran_indexing, Vwarn_imag_to_real): Delete variables. 20745 20746 * ov.cc (octave_value::vector_value, octave_value::int_vector_value, 20747 octave_value::complex_vector_value): Check state of warning ID 20748 Octave:fortran-indexing instead of using Vwarn_fortran_indexing. 20749 * ov-cx-sparse.cc (octave_sparse_complex_matrix::double_value, 20750 octave_sparse_complex_matrix::complex_value): Likewise. 20751 * ov-cx-mat.cc (octave_complex_matrix::matrix_value, 20752 octave_complex_matrix::complex_value): Likewise. 20753 * ov-re-mat.cc (octave_matrix::complex_value, 20754 octave_matrix::double_value): Likewise. 20755 * ov-streamoff.cc (octave_streamoff::streamoff_value): Likewise. 20756 * ov-re-sparse.cc (octave_sparse_matrix::complex_value, 20757 octave_sparse_matrix::double_value): Likewise. 20758 * ov-range.cc (octave_range::complex_value, 20759 octave_range::double_value): Likewise. 20760 * ov-ch-mat.cc (octave_char_matrix::complex_value, 20761 octave_char_matrix::double_value): Likewise. 20762 * ov-bool-sparse.cc (octave_sparse_bool_matrix::complex_value, 20763 octave_sparse_bool_matrix::double_value): Likewise. 20764 * ov-bool-mat.cc (octave_bool_matrix::complex_value, 20765 octave_bool_matrix::double_value): Likewise. 20766 20767 * ov-cx-sparse.cc (octave_sparse_complex_matrix::double_value, 20768 octave_sparse_complex_matrix::matrix_value, 20769 octave_sparse_complex_matrix::sparse_matrix_value): Check state of 20770 warning ID Octave:imag-to-real instead of using Vwarn_imag_to_real. 20771 * ov-cx-mat.cc (octave_complex_matrix::double_value, 20772 octave_complex_matrix::matrix_value, 20773 octave_complex_matrix::complex_value, 20774 octave_complex_matrix::sparse_matrix_value): Likewise. 20775 * ov-complex.cc (octave_complex::double_value, 20776 octave_complex::matrix_value, octave_complex::array_value): Likewise. 20777 20778 * ov.h (Vwarn_fortran_indexing, Vwarn_imag_to_real): Delete decls. 20779 20780 * pt-mat.cc (warn_empty_list_elements, warn_string_concat): 20781 Delete functions. 20782 (symbols_of_pt_mat): Delete DEFVARs. 20783 (Vwarn_empty_list_elements, Vwarn_string_concat): Delete variables. 20784 (tm_row_const::tm_row_const_rep::eval_warning, tm_const::init, 20785 maybe_warn_string_concat): Call warning_with_id instead of warning. 20786 20787 * ov-str-mat.cc (warn_str_to_num, symbols_of_ov_str_mat): 20788 Delete DEFVAR and functions. 20789 (Vwarn_str_to_num): Delete variable. 20790 (CHAR_MATRIX_CONV): Call warning_with_id instead of warning. 20791 20792 * utils.cc (warn_neg_dim_as_zero, symbols_of_utils): 20793 Delete DEFVAR and functions. 20794 (Vwarn_neg_dim_as_zero): Delete variable. 20795 (check_dimensions): Call warning_with_id instead of warning. 20796 20797 * pt-misc.cc (warn_undefined_return_values, symbols_of_pt_misc): 20798 Delete DEFVAR and functions. 20799 (Vwarn_undefined_return_values): Delete variable. 20800 (tree_parameter_list::initialize_undefined_elements): 20801 Call warning_with_id instead of warning. 20802 20803 * dynamic-ld.cc (warn_reload_forces_clear, symbols_of_dynamic_ld): 20804 Delete DEFVAR and functions. 20805 (Vwarn_reload_forces_clear): Delete variable. 20806 (do_clear_function, octave_dynamic_loader::do_load): 20807 Call warning_with_id instead of warning. 20808 * error.cc (warning_enabled): Now extern. 20809 (Fwarning): If specific id is not found, return state of "all". 20810 20811 * error.h: Provide decl. 20812 20813 * gripes.cc (warn_divide_by_zero, symbols_of_gripes): 20814 Delete DEFVAR and functions. 20815 (gripe_divide_by_zero): Check whether warning is enabled, then 20816 call warning_with_id instead of warning. 20817 (Vwarn_divide_by_zero): Delete variable. 20818 208192006-04-27 John W. Eaton <jwe@octave.org> 20820 20821 * variables.cc (Fexist): Fix doc string. 20822 20823 * help.cc (simple_help): No need to handle built-in constants now. 20824 * variables.cc (do_who): Likewise. 20825 (symbol_exist): Likewise. 20826 (link_to_builtin_or_function): Likewise. 20827 * symtab.cc (SYMBOL_DEF::type_as_string): Likewise. 20828 (record::read_only_error): Likewise. 20829 (SYMBOL_DEF::type): Likewise. 20830 (record::variable_reference): Likewise. 20831 (symbol_record::define_builtin_const): Delete function. 20832 20833 * symtab.h (symbol_record::define_builtin_const): Delete decl. 20834 (symbol_record::symbol_def::is_constant): Delete function. 20835 (symbol_record::symbol_def::is_builtin_constant): Delete function. 20836 (symbol_record::symbol_def::is_constant): Delete function. 20837 (symbol_record::is_builtin_constant): Delete function. 20838 (SYMTAB_ALL_TYPES): No need to handle builtin-constants now. 20839 (symbol_record::TYPE): Remove BUILTIN_CONSTANT from enum. 20840 20841 * defun.cc (install_builtin_constant): Delete function. 20842 * defun-int.h (install_builtin_constant): Delete decl. 20843 20844 * variables.cc (bind_builtin_constant): Delete function. 20845 * variables.h (bind_builtin_constant): Delete decl. 20846 20847 * defun-int.h (DEFCONST, DEFCONSTX, DEFCONST_INTERNAL, 20848 DEFCONSTX_INTERNAL): Delete definitions. 20849 20850 * sighandlers.cc (FSIG): New function to replace DEFCONST in 20851 symbols_of_sighandlers. 20852 20853 * octave.cc (intern_argv): Set octave_argv instead of calling 20854 bind_builtin_variable here. 20855 (Fargv, Fprogram_invocation_name, Fprogram_name): New functions to 20856 replace DEFCONSTs in symbols_of_toplvev in toplev.cc. 20857 (octave_program_invocation_name, octave_program_name): 20858 New static variables. 20859 (execute_command_line_file): Use unwind_protect_str to protect 20860 octave_program_invocation_name, octave_program_name instead of 20861 using a restore function. 20862 (restore_program_name): Delete. 20863 20864 * defaults.cc (FOCTAVE_HOME): New function to replace DEFCONST in 20865 symbols_of_defaults. 20866 208672006-04-27 David Bateman <dbateman@free.fr> 20868 20869 * DLD-FUNCTIONS/regexp.cc (octregexp): Fix for infinite loop in 20870 regexp. Include news regexp arguments, and associated tests. 20871 208722006-04-26 John W. Eaton <jwe@octave.org> 20873 20874 * oct-stream.cc: Also instantiate do_read functions for boolNDArray. 20875 208762006-04-26 Bill Denney <denney@seas.upenn.edu> 20877 20878 * pager.cc (Fterminal_size): Add list_in_columns to @seealso. 20879 208802006-04-26 John W. Eaton <jwe@octave.org> 20881 20882 * dirfns.cc (Ffilesep): New function to replace DEFCONST in 20883 symbols_of_dirfns. 20884 (Fpathsep): New function. 20885 20886 * defaults.cc (set_default_default_exec_path): Use 20887 dir_path::path_sep_str instead of std::string (SEPCHAR_STR). 20888 (set_default_exec_path): Likewise. 20889 (set_default_path): Likewise. 20890 (maybe_add_default_load_path): Likewise. Use dir_path::is_path_sep. 20891 208922006-04-18 John W. Eaton <jwe@octave.org> 20893 20894 * DLD-FUNCTIONS/regexp.cc: Include <algorithm>, for transform decl. 20895 20896 * DLD-FUNCTIONS/ccolamd.cc (Fccolamd, Fcsymamd): 20897 Always return something. 20898 20899 * sighandlers.cc (octave_set_signal_handler, 20900 octave_set_interrupt_handler): New arg, restart_syscalls, with 20901 default value true. 20902 * sighandlers.h: Fix decls to match. 20903 * sysdep.cc (octave_kbhit): Disable restarting of system calls. 20904 20905 * help.cc (Flookfor): Add std qualifier to transform function. 20906 Include <algorithm>, for transform decl. 20907 209082006-04-16 John W. Eaton <jwe@octave.org> 20909 20910 * pager.h (octave_diary_buf, octave_pager_buf): Use std:stringbuf 20911 directly. 20912 20913 * ls-mat-ascii.cc (read_mat_ascii_data): Use std::istringstream 20914 directly. 20915 * load-save.cc (parse_save_options): Likewise. 20916 * ls-mat5.cc (read_mat5_binary_element): Likewise. 20917 * oct-strstrm.h (octave_istrstream::is): Likewise. 20918 20919 * __gnuplot_raw__.l (printrange, handle_using, gnuplot::do_open, 20920 gnuplot::do_set, gnuplot::do_show, gnuplot::makeplot, 20921 gnuplot::handle_title): Use std::ostringstream directly. 20922 * toplev.cc (run_command_and_return_output): Likewise. 20923 * symtab.h (symbol_table::symbol_table): Likewise. 20924 * strfns.cc (Flist_in_columns): Likewise. 20925 * pt.cc (tree::str_print_code): Likewise. 20926 * parse.y (yyerror, fold, finish_matrix): Likewise. 20927 * pr-output.cc (PRINT_ND_ARRAY, octave_print_internal, Fdisp): 20928 Likewise. 20929 * symtab.cc (symbol_table::print_descriptor): Likewise. 20930 * ov-list.cc (octave_list::print_raw, octave_list::save_ascii, 20931 octave_list::save_binary, octave_list::save_hdf5): Likewise. 20932 * ov-fcn-inline.cc (octave_fcn_inline::octave_fcn_inline, 20933 octave_fcn_inline::load_ascii, octave_fcn_inline::print_raw, 20934 Finline): Likewise. 20935 * ov-fcn-handle.cc (octave_fcn_handle::load_ascii, 20936 octave_fcn_handle::save_binary, octave_fcn_handle::save_hdf5): 20937 Likewise. 20938 * ov-cs-list.cc (octave_cs_list::print_raw): Likewise. 20939 * ov-cell.cc (octave_cell::print_raw, octave_cell::save_hdf5): 20940 Likewise. 20941 * oct-strstrm.h (octave_ostrstream::os, octave_ostrstream::str): 20942 Likewise. 20943 * oct-stream.h (scanf_format_list::buf, printf_format_list::buf): 20944 Likewise. 20945 * oct-stream.cc (scanf_format_list::scanf_format_list, 20946 printf_format_list::printf_format_list, 20947 octave_base_stream::do_gets, BEGIN_CHAR_CLASS_CONVERSION, 20948 octave_stream_list::do_list_open_files): Likewise. 20949 * ls-oct-ascii.h (extract_keyword): Likewise. 20950 * load-save.cc (do_load): Likewise. 20951 * lex.l (have_continuation, handle_string): Likewise. 20952 * input.cc (get_user_input): Likewise. 20953 * dirfns.cc (Fls): Likewise. 20954 * error.cc (error_message_buffer, vwarning, verror, pr_where): 20955 Likewise. 20956 * defun.cc (print_usage): Likewise. 20957 * help.cc (display_help_text, Ftype, first_help_sentence): 20958 Likewise. 20959 * ls-mat5.cc (save_mat5_binary_element): Likewise. 20960 * DLD-FUNCTIONS/regexp.cc (octregexp): Likewise. 20961 * DLD-FUNCTIONS/fftw_wisdom.cc (Ffftw_wisdom): Likewise. 20962 209632006-04-13 John W. Eaton <jwe@octave.org> 20964 20965 * Makefile.in (lex.o parse.o __gnuplot_raw__.o, pic/parse.o 20966 pic/__gnuplot_raw__.o): Omit -Wold-style-cast from CXXFLAGS. 20967 20968 * ls-mat5.cc (READ_INTEGER_DATA): Allocate local buffer to avoid 20969 pointer tricks. 20970 20971 * DLD-FUNCTIONS/regexp.cc (octregexp): Use OCTAVE_LOCAL_BUFFER 20972 instead of allocting memory with malloc. 20973 20974 * DLD-FUNCTIONS/sparse.cc (Fsparse): Use octave_value extractors 20975 instead of using get_rep. 20976 20977 * DLD-FUNCTIONS/dispatch.cc (dispatch_record): Use dynamic_cast, 20978 not reinterpret_cast. 20979 20980 * DLD-FUNCTIONS/besselj.cc (Fairy): Use int_value instead of 20981 double_value and cast to extract kind arg. 20982 (int_arrayN_to_array): Arg is ArrayN<octave_idx_type>, not ArrayN<int>. 20983 20984 * OPERATORS/op-cm-scm.cc, OPERATORS/op-cm-sm.cc, 20985 OPERATORS/op-cs-scm.cc, OPERATORS/op-cs-sm.cc, 20986 OPERATORS/op-m-scm.cc, OPERATORS/op-m-sm.cc, 20987 OPERATORS/op-s-scm.cc, OPERATORS/op-s-sm.cc, 20988 OPERATORS/op-scm-cm.cc, OPERATORS/op-scm-cs.cc, 20989 OPERATORS/op-scm-m.cc, OPERATORS/op-scm-s.cc, 20990 OPERATORS/op-scm-scm.cc, OPERATORS/op-scm-sm.cc, 20991 OPERATORS/op-sm-cm.cc, OPERATORS/op-sm-cs.cc, 20992 OPERATORS/op-sm-m.cc, OPERATORS/op-sm-s.cc, 20993 OPERATORS/op-sm-scm.cc, OPERATORS/op-sm-sm.cc: No need to cast 20994 away const just to cache sparse type. 20995 * ov-base-sparse.h (octave_base_sparse::typ): Now mutable. 20996 (octave_base_sparse::sparse_type): Now const. 20997 20998 * OPERATORS/op-cm-scm.cc (DEFBINOP(div)): Explicitly cast args 20999 here instead of using CAST_BINOP_ARGS. 21000 21001 * OPERATORS/op-streamoff.cc (STREAMOFF_COMP_OP): Second arg to 21002 CAST_BINOP_ARGS is also const. 21003 21004 * DLD-FUNCTIONS/chol.cc (Fcholinv, Fchol2inv): Eliminate nargout 21005 arg to avoid unused variable warnings. 21006 21007 * unwind-prot.h, unwind-prot.cc (unwind_protect::save_bool, 21008 unwind_protect::save_int, unwind_protect::save_str, 21009 unwind_protect::save_ptr, unwind_protect::save_var): 21010 Pointer args now const. 21011 (unwind_protect_const_ptr): New macro. 21012 21013 * symtab.cc (maybe_list_cmp_fcn): Use static_cast instead of X_CAST. 21014 * variables.cc (symbol_record_name_compare): Likewise. 21015 * ls-mat5.cc (MAT5_DO_WRITE, save_mat5_binary_element): Likewise. 21016 21017 * ov-fcn-handle.cc (octave_fcn_handle::save_hdf5, 21018 octave_fcn_handle::load_hdf5): Eliminate unnecessary casts. 21019 * ov-fcn-inline.cc (octave_fcn_inline::save_hdf5, 21020 octave_fcn_inline::load_hdf5): Likewise. 21021 * ov-str-mat.cc (octave_char_matrix_str::save_hdf5, 21022 octave_char_matrix_str::load_hdf5): Likewise. 21023 * ov-bool-sparse.cc (octave_sparse_bool_matrix::save_hdf5, 21024 octave_sparse_bool_matrix::load_hdf5): Likewise. 21025 * ov-cx-sparse.cc (octave_sparse_complex_matrix::save_hdf5, 21026 octave_sparse_complex_matrix::load_hdf5): Likewise. 21027 * ov-re-sparse.cc (octave_sparse_matrix::save_hdf5, 21028 octave_sparse_matrix::load_hdf5): Likewise. 21029 * ov-str-mat.cc (octave_char_matrix_str::save_ascii, 21030 octave_char_matrix_str::load_ascii): Likewise. 21031 * mappers.cc (xtoascii): Likewise. 21032 * load-save.cc (read_binary_file_header, write_header): Likewise. 21033 * parse.y (get_help_from_file, parse_fcn_file): Likewise. 21034 * DLD-FUNCTIONS/rand.cc (do_rand): Likewise. 21035 * ls-hdf5.cc (read_hdf5_data, hdf5_add_attr, save_hdf5_empty, 21036 load_hdf5_empty add_hdf5_data): Likewise. 21037 * ls-mat4.cc (read_mat_binary_data): Likewise. 21038 * ls-mat5.cc (read_mat5_binary_element): Likewise. 21039 21040 * oct-stream.cc (expand_char_class, octave_base_stream::do_gets): 21041 Use static_cast instead of C-style cast. 21042 * oct-procbuf.cc (kluge_procbuf_delay): Likewise. 21043 * parse.y (gobble_leading_white_space,: Likewise. 21044 * DLD-FUNCTIONS/besselj.cc (int_array2_to_matrix, 21045 int_arrayN_to_array): Likewise. 21046 * DLD-FUNCTIONS/colamd.cc (Fcolamd, Fsymamd): Likewise. 21047 * DLD-FUNCTIONS/ccolamd.cc (Fcsymamd): Likewise. 21048 * pt-pr-code.cc (tree_print_code::print_comment_elt): Likewise. 21049 * DLD-FUNCTIONS/besselj.cc (do_bessel): Likewise. 21050 * DLD-FUNCTIONS/spchol.cc (Fsymfact): Likewise. 21051 * DLD-FUNCTIONS/sparse.cc (sparse_find): Likewise. 21052 * DLD-FUNCTIONS/sort.cc (FloatFlip): Likewise. 21053 * DLD-FUNCTIONS/matrix_type.cc (Fmatrix_type): Likewise. 21054 * ls-mat5.cc (read_mat5_binary_element, OCTAVE_MAT5_INTEGER_READ, 21055 read_mat5_binary_element, save_mat5_binary_element): Likewise. 21056 21057 * DLD-FUNCTIONS/splu.cc (Fspinv): Use dynamic_cast instead of 21058 C-style cast. 21059 * DLD-FUNCTIONS/matrix_type.cc (Fmatrix_type): Likewise. 21060 21061 * DLD-FUNCTIONS/sort.cc (mx_sort): Use reinterpret_cast instead of 21062 C-style cast. 21063 * ls-mat5.cc (write_mat5_tag): Likewise. 21064 21065 * ov-typeinfo.h (octave_value_typeinfo::octave_value_typeinfo): 21066 Eliminate unnecessary casts in constructor initializers. 21067 21068 * ops.h (CAST_CONV_ARG, CAST_UNOP_ARG, CAST_BINOP_ARGS, 21069 DEFASSIGNANYOP_FN): Use C++ dynamic_cast instead of DYNAMIC_CAST macro. 21070 21071 * unwind-prot.h (unwind_protect_ptr): Use combination of 21072 reinterpret_cast and const_cast instead of X_CAST. 21073 21074 * dynamic-ld.cc (loader::do_load): Use reinterpret_cast instead of 21075 X_CAST. 21076 * ov-base-int.cc (octave_base_int_matrix<T>::save_binary, 21077 octave_base_int_matrix<T>::load_binary, 21078 octave_base_int_scalar<T>::save_binary, 21079 octave_base_int_scalar<T>::load_binary): Likewise. 21080 * ov-bool-mat.cc (octave_bool_matrix::save_binary, 21081 octave_bool_matrix::load_binary): Likewise. 21082 * ov-bool-sparse.cc (octave_sparse_bool_matrix::save_binary, 21083 octave_sparse_bool_matrix::load_binary): Likewise. 21084 * ov-bool.cc (octave_bool::save_binary, octave_bool::load_binary): 21085 Likewise. 21086 * ov-cell.cc (octave_cell::save_binary, octave_cell::load_binary): 21087 Likewise. 21088 * ov-complex.cc (octave_complex::save_binary, 21089 octave_complex::load_binary): Likewise. 21090 * ov-cx-mat.cc (octave_matrix::save_binary, 21091 octave_matrix::load_binary): Likewise. 21092 * ov-cx-sparse.cc (octave_sparse_complex_matrix::save_binary, 21093 octave_sparse_complex_matrix::load_binary): Likewise. 21094 * ov-fcn-handle.cc (octave_fcn_handle::save_binary, 21095 octave_fcn_handle::load_binary): Likewise. 21096 * ov-fcn-inline.cc (octave_fcn_inline::save_binary, 21097 octave_fcn_inline::load_binary): Likewise. 21098 * ov-list.cc (octave_list::save_binary, octave_list::load_binary): 21099 Likewise. 21100 * ov-range.cc (octave_range::save_binary, octave_range::load_binary): 21101 Likewise. 21102 * ov-re-mat.cc (octave_matrix::save_binary, 21103 octave_matrix::load_binary): Likewise. 21104 * ov-re-sparse.cc (octave_sparse_matrix::save_binary, 21105 octave_sparse_matrix::load_binary): Likewise. 21106 * ov-scalar.cc (octave_scalar::save_binary, 21107 octave_scalar::load_binary): Likewise. 21108 * ov-str-mat.cc (octave_char_matrix_str::save_binary, 21109 (octave_char_matrix_str::load_binary): Likewise. 21110 * ov-struct.cc (octave_struct::save_binary, 21111 octave_struct::load_binary): Likewise. 21112 * ls-oct-binary.cc (save_binary_data, read_binary_data): Likewise. 21113 * ls-mat4.cc (read_mat_file_header, save_mat_binary_data): Likewise. 21114 * ls-mat5.cc (read_mat5_tag, read_mat5_binary_element, 21115 read_mat5_binary_element, read_mat5_binary_file_header, 21116 MAT5_DO_WRITE, write_mat5_array, write_mat5_integer_data, 21117 save_mat5_binary_element, READ_INTEGER_DATA): Likewise. 21118 211192006-04-12 John W. Eaton <jwe@octave.org> 21120 21121 * ov.h (OV_REP_TYPE): New macro. 21122 21123 * DLD-FUNCTIONS/sparse.cc (MINMAX_BODY): No need to cast arg1 to 21124 const octave_sparse_matrix&. 21125 21126 * ov-base.cc (print_answer_id_name, warn_resize_on_range_error, 21127 warn_num_to_str, silent_functions): Move here, from ov.cc. 21128 (Vwarn_resize_on_range_error, Vsilent_functions): Likewise. 21129 (Vprint_answer_id_name): Likewise. Now static. 21130 (symbols_of_ov_base): New function. Move DEFVARs for 21131 print_answer_id_name, warn_resize_on_range_error, warn_num_to_str, 21132 and silent_functions here from symbols_of_ov in ov.cc. 21133 * ov.h (Vprint_answer_id_name): Delete decl. 21134 * ov-base.h (Vwarn_resize_on_range_error, Vwarn_num_to_str): 21135 Move decls here from ov.h. 21136 21137 * ov-str-mat.cc (warn_str_to_num): Move here, from ov.cc. 21138 (Vwarn_str_to_num): Likewise. Now static. 21139 (symbols_of_ov_str_mat): New function. Move DEFVAR for 21140 warn_str_to_num here from symbols_of_ov in ov.cc. 21141 * ov.h (Vwarn_str_to_num): Delete decl. 21142 21143 * ov-struct.cc (octave_struct::load_ascii): Pass loop counter, not 21144 count, to read_ascii. 21145 * ov-list.cc (octave_list::load_ascii): Likewise. 21146 21147 * ov-list.cc (octave_list::do_index_op): Allow index to extract 21148 multiple items. Result is always a list. 21149 21150 * pr-output.cc (struct_levels_to_print): Move here from ov.cc. 21151 (Vstruct-levels_to_print): Likewise. 21152 (symbols_of_pr_output): Move DEFVAR for struct_levels_to_print here 21153 from symbols_of_ov in ov.cc. 21154 * pr-output.h (Vstruct_levels_to_print): Nove decl here from ov.h. 21155 21156 * gripes.cc (warn_divide_by_zero): Move here from ov.cc. 21157 (Vwarn_divide_by_zero): Likewise. Now static. 21158 (symbols_of_gripes): New function. Move DEFVAR for 21159 warn_divide_by_zero here from symbols_of_ov in ov.cc. 21160 * ov.h (Vwarn_divide_by_zero): Delete decl. 21161 21162 * load-save.cc (do_load): Declare count octave_idx_type, not int. 21163 * ls-oct-ascii.cc, ls-oct-ascii.h (read_ascii_data): Likewise. 21164 21165 Rearrange octave_value class hierarchy so that rep is a pointer 21166 an octave_base_value object and the octave_base_value class 21167 stores the reference count. Virtualness now goes with the 21168 octave_base_value class, not the octave_value class. 21169 21170 * ops.h, ov-base-int.cc, ov-base-int.h, ov-base-mat.h, 21171 ov-base-scalar.h, ov-base-sparse.h, ov-base.cc, ov-base.h, 21172 ov-bool-mat.cc, ov-bool-mat.h, ov-bool-sparse.cc, 21173 ov-bool-sparse.h, ov-bool.cc, ov-bool.h, ov-cell.cc, ov-cell.h, 21174 ov-ch-mat.h, ov-colon.h, ov-complex.cc, ov-complex.h, 21175 ov-cs-list.h, ov-cx-mat.cc, ov-cx-mat.h, ov-cx-sparse.cc, 21176 ov-cx-sparse.h, ov-fcn-handle.h, ov-fcn-inline.h, ov-fcn.cc, 21177 ov-fcn.h, ov-intx.h, ov-list.cc, ov-list.h, ov-range.cc, 21178 ov-range.h, ov-re-mat.cc, ov-re-mat.h, ov-re-sparse.cc, 21179 ov-re-sparse.h, ov-scalar.h, ov-str-mat.cc, ov-str-mat.h, 21180 ov-streamoff.h, ov-struct.cc, ov-struct.h, ov-type-conv.h, 21181 ov-typeinfo.cc, ov-typeinfo.h, ov-va-args.h, ov.cc, ov.h, 21182 variables.cc, DLD-FUNCTIONS/matrix_type.cc, DLD-FUNCTIONS/splu.cc, 21183 OPERATORS/op-chm.cc: Cope with octave_value hierarchy changes 21184 (apologies for the lack of detail). 21185 21186 * ov.cc (octave_value::nil_rep): Delete. 21187 * ov.h (octave_value::nil_rep): Delete decl. 21188 21189 * ov-base.h (DECLARE_OV_TYPEID_FUNCTIONS_AND_DATA, 21190 DECLARE_OV_BASE_TYPEID_FUNCTIONS_AND_DATA, 21191 DECLARE_OV_TYPEID_FUNCTIONS_AND_DATA2, 21192 DEFINE_OV_TYPEID_FUNCTIONS_AND_DATA): 21193 Move macro definitions here from ov.h. 21194 (struct_indent, increment_struct_indent, decrement_struct_indent, 21195 list_indent, increment_list_indent, decrement_list_indent): 21196 Delete decls. 21197 21198 * ov-base.cc. ov-base.h (do_index_op, ndims, all, any, 21199 convert_to_str, print_with_name, numeric_assign, 21200 reset_indent_level, increment_indent_level, 21201 decrement_indent_level, current_print_indent_level, newline, 21202 indent, reset): Move member functions here from octave_value class. 21203 (count, curr_print_indent_level, beginning_of_line): 21204 Move data members here from octave_value class. 21205 (gripe_indexed_assignment, gripe_assign_conversion_failed, 21206 gripe_no_conversion): Move here from ov.cc. 21207 21208 * ov.h (class octave_xvalue): Delete. 21209 (octave_value::octave_value (const octave_xvalue&)): Delete. 21210 (anonymous union): Delete. 21211 (octave_value::rep): Now a pointer to octave_base_value instead of 21212 octave_value. 21213 21214 (octave_value::internal_rep): Return pointer to octave_base_value, 21215 not octave_value. 21216 212172006-04-11 John W. Eaton <jwe@octave.org> 21218 21219 * pt-assign.cc (tree_simple_assignment::rvalue, 21220 tree_multi_assignment::rvalue): 21221 Error if RHS is a comma-separated list. 21222 212232006-04-07 John W. Eaton <jwe@octave.org> 21224 21225 * defaults.cc (FOCTAVE_VERSION): New function to replace 21226 corresponding DEFCONSTX macro in symbols_of_defaults. 21227 21228 * file-io.cc (FP_tmpdir, FSEEK_SET, FSEEK_CUR, FSEEK_END, Fstdin, 21229 Fstdout, Fstderr): New functions to replace DEFCONSTX macros in 21230 symbols_of_file_io. 21231 (const_value): New static function. 21232 (symbols_of_file_io): Delete. 21233 21234 * syscalls.cc (FF_DUPFD, FF_GETFD, FF_GETFL, FF_SETFD, FF_SETFL, 21235 FO_APPEND, FO_ASYNC, FO_CREAT, FO_EXCL, FO_NONBLOCK, FO_RDONLY, 21236 FO_RDWR, FO_SYNC, FO_TRUNC, FO_WRONLY, FWNOHANG, FWUNTRACED, 21237 FWCONTINUE): New functions to replace DEFCONSTX macros in 21238 symbols_of_syscalls. 21239 (const_value): New static function. 21240 (symbols_of_syscalls): Delete. 21241 21242 * pr-output.cc (pr_max_internal, pr_min_internal): 21243 Return 0 if all values are Inf or NaN. 21244 Always leave space for sign when printing Inf or NaN values. 21245 21246 * parse.y (Fmfilename): Don't let filenames like ../foo fake us out. 21247 21248 * data.cc (fill_matrix): Create separate versions for int, bool, 21249 and double, and Complex values. 21250 (FInf, FNaN, Fe, Feps, Fpi, Frealmax, Frealmin, FI, FNA, Ffalse, 21251 Ftrue): New functions to replace DEFCONST and DEFCONSTX macros in 21252 symbols_of_data. Provide i, J, and j aliases for I. 21253 Provide nan alias for NaN. Provide inf alias for Inf. 21254 (symbols_of_data): Delete. 21255 212562006-04-06 John W. Eaton <jwe@octave.org> 21257 21258 * parse.y (parse_and_execute, parse_fcn_file): 21259 Create octave_script_function object and push it on the call stack. 21260 21261 * parse.y (Fmfilename): Check for script or user function file on 21262 call stack. 21263 21264 * ov-builtin.cc (octave_builtin::do_multi_index_op): 21265 Use octave_call_stack instead of curr_function to save pointer to 21266 current function. 21267 * ov-mapper.cc (octave_mapper::do_multi_index_op): Likewise. 21268 * ov-usr-fcn.cc (octave_user_function::do_multi_index_op): Likewise. 21269 21270 * pt-bp.h (MAYBE_DO_BREAKPOINT): Use octave_call_stack instead of 21271 curr_function to get pointer to current function. 21272 * pt-arg-list.cc (list::convert_to_const_vector): Likewise. 21273 * variables.cc (Fmlock, Fmunlock, Fmislocked): Likewise. 21274 * input.cc (get_user_input): Likewise. 21275 * error.cc (warning_1, error_2): Likewise. Only enter debug mode 21276 if there is a scripting language caller. 21277 * ov-usr-fcn.cc (Fva_arg, Fva_start, Fvr_val): Likewise. Check 21278 scripting language caller, not current function. 21279 21280 * toplev.cc (curr_caller_function, curr_function): Delete. 21281 * toplev.h: Delete decls. 21282 21283 * ov-usr-fcn.cc (octave_user_function::do_multi_index_op): 21284 Don't protect and set curr_caller_function. 21285 * ov-builtin.cc (octave_builtin::do_multi_index_op): Likewise. 21286 * ov-mapper.cc (octave_mapper::do_multi_index_op): Likewise. 21287 21288 * variables.cc (do_who): Use octave_call_stack instead of 21289 curr_caller_function to get pointer to calling function. 21290 * input.cc (get_user_input): Likewise. 21291 * error.cc (pr_where): Likewise. No need for curr_function now. 21292 * parse.y (Fmfilename): Likewise. Check for scripting language 21293 caller, not any calling function. 21294 21295 * ov-usr-fcn.h (octave_user_script): New class. 21296 * ov-fcn.h (octave_function::is_user_script): New virtual function. 21297 21298 * toplev.h, toplev.cc (octave_call_stack): New class. 21299 21300 * debug.cc (Fdbwhere): Use get_user_function here. 21301 213022006-04-05 John W. Eaton <jwe@octave.org> 21303 21304 * Makefile.in (mk-pkg-add): Use mfilename to simplify. 21305 (PKG_ADD): Don't pass --prefix arg to mk-pkg-add. 21306 (PKG_ADD.inst): Delete target. 21307 (clean): Don't remove PKG_ADD.inst. 21308 (install-oct): Don't depend on PKG_ADD.inst. Install PKG_ADD, not 21309 PKG_ADD.inst. 21310 21311 * parse.y (Fmfilename): New function. 21312 213132006-04-04 David Bateman <dbateman@free.fr> 21314 21315 * help.cc (Flookfor): Skip overloaded functions. Lookup help text 21316 of autoloaded function, not parent that contains the autoload. 21317 213182006-04-03 David Bateman <dbateman@free.fr> 21319 21320 * data.cc (Fresize): New function. 21321 * oct-map.cc, ov-base-mat.cc, ov-base-sparse.cc, ov-base.cc, 21322 ov-bool.cc, ov-complex.cc, ov-range.cc, ov-scalar.cc, 21323 ov-str-mat.cc (resize): Add boolean fill argument. 21324 * oct-map.h, ov-base-mat.h, ov-base-sparse.h, ov-base.h, 21325 ov-bool.h, ov-complex.h, ov-intx.h, ov-range.h, ov-scalar.h, 21326 ov-str-mat.h, ov.h (resize): Ditto. 21327 21328 * DLD-FUNCTIONS/rand.cc (do_rand): Additional argument for 21329 gamma and poisson distributions. Change "state" and "seed" 21330 arguments so that they choose between generators. 21331 Add, poisson, gamma and exponential generators. 21332 (Frand, Frandn): Update docs for new generators, add tests. 21333 (Frande, Frandp, Frandg): New generators, with test code. 21334 21335 * DLD-FUNCTIONS/daspk.cc (Fdaspk): Allow functions to be passed 21336 using function handles, inline functions, and cell arrays of 21337 strings, inline and function handles. 21338 * DLD-FUNCTIONS/dasrtk.cc (Fdasrt): Likewise. 21339 * DLD-FUNCTIONS/dassl.cc (Fdassl): Likewise. 21340 * DLD-FUNCTIONS/fsolve.cc (Ffsolve): Likewise. 21341 * DLD-FUNCTIONS/lsode.cc (Flsode): Likewise. 21342 21343 * ls-hdf5.h (hdf5_fstreambase::open): Remove unused arg prot. 21344 213452006-03-30 Bill Denney <denney@seas.upenn.edu> 21346 21347 * data.cc: Include numel in @seealso. 21348 213492006-03-30 David Bateman <dbateman@free.fr> 21350 21351 * DLD-FUNCTIONS/fftw_wisdom.cc: Don't attempt to save wisdom to 21352 an empty filename or invalid filename. 21353 213542006-03-28 John W. Eaton <jwe@octave.org> 21355 21356 * DLD-FUNCTIONS/matrix_type.cc: Update copyright notice and FSF 21357 address. 21358 213592006-03-24 John W. Eaton <jwe@octave.org> 21360 21361 * DLD-FUNCTIONS/spchol.cc (Fsymbfact): Use CHOLMOD_NAME to select 21362 proper version of row_subtree function. 21363 21364 * ov-cell.cc (octave_cell::save_hdf5): Use OSSTREAM instead of 21365 fixed character buffer and sprintf. 21366 * ov-list.cc (octave_list::save_hdf5, octave_list::save_ascii, 21367 octave_list::save_binary): Likewise. 21368 21369 * ov-cell.h (octave_cell::convert_to_str_internal): 21370 Undo previous change for pad arg. 21371 * ov-cell.cc (octave_cell::all_strings): Reinstate pad arg, pass 21372 it on to all_strings. 21373 * ov.h (octave_value::all_strings): Reinstate pad arg. 21374 * ov-base.cc (octave_base_value::all_strings): Likewise. 21375 * ov-str-mat.cc (octave_char_matrix_str::all_strings): Likewise. 21376 * ov.h, ov-base.h, ov-cell.h, ov-str-mat.h: Fix all_strings decls. 21377 213782005-10-25 David Bateman <dbateman@free.fr> 21379 21380 * data.cc (do_cat): With 1 arg, return [](0x0) for compatibility. 21381 213822006-03-23 John W. Eaton <jwe@octave.org> 21383 21384 * version.h (OCTAVE_VERSION): Now 2.9.5+. 21385 213862006-03-22 John W. Eaton <jwe@octave.org> 21387 21388 * version.h (OCTAVE_VERSION): Now 2.9.5. 21389 (OCTAVE_API_VERSION): Now api-v18. 21390 (OCTAVE_RELEASE_DATE): Now 2006-03-22. 21391 213922006-03-21 John W. Eaton <jwe@octave.org> 21393 21394 * ov-cell.h (octave_cell::convert_to_str_internal): 21395 Ignore pad and force args. 21396 * ov-cell.cc (octave_cell::all_strings): Delete args. Never pad. 21397 * ov-base.cc (octave_base_value::all_strings): Delete args. 21398 Always force string conversion, never pad. 21399 * ov-str-mat.cc (octave_char_matrix_str::all_strings): 21400 Delete args. Don't strip whitespace. 21401 * ov.h, ov-base.h, ov-cell.h, ov-str-mat.h: Fix all_strings decls. 21402 * strfns.cc (Fchar): No args for all_strings. 21403 214042006-03-21 David bateman <dbateman@free.fr> 21405 21406 * DLD-FUNCTIONS/getrusage.cc (Fgetrusage): Use GetProcessTimes for 21407 MinGW to obtain user and system times. 21408 214092006-03-17 John W. Eaton <jwe@octave.org> 21410 21411 * strfns.cc (F__list_in_columns__): New function. 21412 214132006-03-16 Bill Denney <bill@givebillmoney.com> 21414 21415 * DLD-FUNCTIONS/time.cc: Improve @seealso entries in doc strings. 21416 214172006-03-16 John W. Eaton <jwe@octave.org> 21418 21419 * __gnuplot_raw__.l (F__gnuplot_show__): Temporarily use DEFCMD 21420 instead of DEFUN. 21421 (symbols_of___gnuplot_raw__): Temporarily mark __gnuplot_plot__, 21422 __gnuplot_set__, __gnuplot_splot__, and __gnuplot_replot__ as raw 21423 commands. 21424 21425 * variables.cc (is_marked_as_rawcommand, unmark_rawcommand, 21426 mark_as_rawcommand): Temporarily not static. 21427 * variables.h: Temporarily Provide decls. 21428 214292006-03-16 David Bateman <dbateman@free.fr> 21430 21431 * sparse-xdiv.cc (result_ok): delete. 21432 (xdiv, xleftdiv): Simplify to use version of SpareMatrix::solve 21433 and SparseComplexMatrix::solve which internally treats rectangular 21434 and singular matrices. 21435 * DLD-FUNCTIONS/luinc.cc: Remove error test for singular matrix as 21436 QR solver now implemented. 21437 * DLD-FUNCTIONS/matrix_type.cc (Fmatrix_type): Paranoid check on 21438 error_state. Disable tests for the detection of underdetermined 21439 lower and over-determined upper matrix due to problems with 21440 non minimum norm solutions. 21441 * DLD-FUNCTIONS/spqr.cc: Warning for issue of use of Fspqr for 21442 under-determined problems. 21443 214442006-03-16 John W. Eaton <jwe@octave.org> 21445 21446 * __gnuplot_raw__.l: Move here from DLD-FUNCTIONS/__gnuplot_raw__.l. 21447 Use DEFUN, not DEFUN_DLD. Include defun.h, not defun-dld.h. 21448 (gnuplot::do_init):Move guts to symbols_of___gnuplot_raw__. 21449 (symbols_of___gnuplot_raw__): New function. 21450 21451 * Makefile.in (DLD_XSRC): Delete __gnuplot_raw__.l from the list. 21452 (DIST_SRC): Include __gnuplot_raw__.l in the list. 21453 (__gnuplot_raw__.cc): Depend on __gnuplot_raw__.l, not 21454 DLD-FUNCTIONS/__gnuplot_raw__.l 21455 21456 * ls-oct-ascii.h (extract_keyword): Use std::string compare method 21457 instead of strncmp. 21458 * ls-oct-ascii.cc (extract_keyword): Likewise. 21459 214602006-03-15 William Poetra Yoga Hadisoeseno <williampoetra@gmail.com> 21461 21462 * data.cc (Frows, Fcolumns): New functions. 21463 21464 * DLD-FUNCTIONS/time.cc (Fstrptime, Fstrftime): Fix docstring. 21465 21466 * strfns.cc (Fstrcmp): Fixed docstring. 21467 214682006-03-15 John W. Eaton <jwe@octave.org> 21469 21470 * pager.cc (Fterminal_size): New function. 21471 21472 * help.cc (help_from_info): Simplify. 21473 (try_info): Use feval to call doc instead of executing info program. 21474 (additional_help_message): Point users to doc instead of help -i. 21475 From Søren Hauberg <soren@hauberg.org>. 21476 21477 * toplev.cc (Fsystem): Return output if nargout > 1, not 0. 21478 214792006-03-14 Keith Goodman <kwgoodman@gmail.com> 21480 21481 * help.cc (Fhelp, Fwhich, Flookfor): Doc string fix. 21482 214832006-03-14 John W. Eaton <jwe@octave.org> 21484 21485 * defun.cc (print_usage): New arg, extra_msg. 21486 21487 * xpow.cc: Omit tests for now. 21488 21489 * parse.y (QUOTE, TRANSPOSE): For compatibility, now have same 21490 precedence as POW and EPOW. 21491 214922006-03-14 Bill Denney <bill@givebillmoney.com> 21493 21494 * load-save.cc (Fload, Fsave): Update docstring for functional form. 21495 214962006-03-14 John W. Eaton <jwe@octave.org> 21497 21498 * xpow.cc (elem_xpow): Undo previous change. 21499 215002006-03-14 Paul Kienzle <pkienzle@users.sf.net> 21501 21502 * xpow.cc: New tests. 21503 215042006-03-13 John W. Eaton <jwe@octave.org> 21505 21506 * variables.cc (fcn_out_of_date): No longer static. 21507 * ov-fcn-handle.cc (warn_reload): New function. 21508 (octave_fcn_handle::subsref): Implement basic logic for updating 21509 when pointed-to function changes. 21510 215112006-03-10 John W. Eaton <jwe@octave.org> 21512 21513 * xpow.cc (elem_xpow): Only use complex pow if really necessary. 21514 21515 * symtab.cc (symbol_table::glob, symbol_table::symbol_list, 21516 symbol_table::subsymbol_list): Force result to be a column 21517 vector. 21518 21519 * oct-stream.h (octave_stream::stream_ok): Undo previous change. 21520 Eliminate who parameter. Change all callers. 21521 21522 * variables.cc (do_who): Return more info in structure array for 21523 verbose output. 21524 * symtab.h (symbol_record::size, symbol_record::class_name, 21525 symbol_record::is_sparse_type, symbol_record::is_complex_type, 21526 symbol_record::size, symbol_record::symbol_def::class_name, 21527 symbol_record::symbol_def::is_sparse_type, 21528 symbol_record::symbol_def::is_complex_type): New functions. 21529 * ov.h (octave_value::size): New function. 21530 215312006-03-09 John W. Eaton <jwe@octave.org> 21532 21533 * toplev.cc (run_command_and_return_output): Swap output and 21534 status for compatibility. 21535 21536 * Makefile.in (defaults.h, oct-conf.h): Force updates. 21537 21538 * defaults.h.in (OCTAVE_RELEASE): New macro. 21539 21540 * octave.cc (F__version_info__): New arg, release. 21541 (initialize_version_info): Pass release arg to F__version_info__. 21542 21543 * toplev.cc: Include api_version in the list. 21544 21545 * Makefile.in (DIST_SRC): Include octave.cc here. 21546 (DISTFILES, DEP_5): Not here. 21547 21548 * octave.cc (F__version_info__): New function. 21549 (initialize_version_info): New function. 21550 (octave_main): Call initialize_version_info just before reading 21551 init files. 21552 21553 * version.h (OCTAVE_RELEASE_DATE): New macro. 21554 21555 * ov-fcn-handle.h (octave_fcn_handle::dims): New function. 21556 215572006-03-08 John W. Eaton <jwe@octave.org> 21558 21559 * oct-stream.cc (octave_stream::stream_ok): Move definition here, 21560 from oct-stream.h. New arg, warn. If warn is true and stream is 21561 invalid, print warning. 21562 (octave_stream::error): Always avoid warning message from 21563 stream_ok. Return "invalid stream object" if stream is not ok. 21564 215652006-03-08 David Bateman <dbateman@free.fr> 21566 21567 * ov-mapper.cc (SPARSE_MAPPER_LOOP_2): Change nnz to nz to remove 21568 shadowed variable warning. 21569 * DLD-FUNCTIONS/spqr.cc: Update for new upstream CXSPARSE release. 21570 215712006-03-06 John W. Eaton <jwe@octave.org> 21572 21573 * help.cc (display_help_text): Force linebreak with @sp. 21574 215752006-03-06 Keith Goodman <kwgoodman@gmail.com> 21576 21577 * bitfcns.cc, data.cc, debug.cc, file-io.cc, help.cc, 21578 load-save.cc, mappers.cc, ov-cell.cc, ov-fcn-inline.cc, 21579 ov-struct.cc, ov-usr-fcn.cc, ov.cc, pr-output.cc, utils.cc, 21580 variables.cc, DLD-FUNCTIONS/ccolamd.cc, DLD-FUNCTIONS/cellfun.cc, 21581 DLD-FUNCTIONS/colamd.cc, DLD-FUNCTIONS/daspk.cc, 21582 DLD-FUNCTIONS/dasrt.cc, DLD-FUNCTIONS/dassl.cc, 21583 DLD-FUNCTIONS/fft.cc, DLD-FUNCTIONS/fft2.cc, 21584 DLD-FUNCTIONS/fftn.cc, DLD-FUNCTIONS/fftw_wisdom.cc, 21585 DLD-FUNCTIONS/gammainc.cc, DLD-FUNCTIONS/gcd.cc, 21586 DLD-FUNCTIONS/luinc.cc, DLD-FUNCTIONS/sparse.cc, 21587 DLD-FUNCTIONS/spchol.cc, DLD-FUNCTIONS/splu.cc, 21588 DLD-FUNCTIONS/spqr.cc, DLD-FUNCTIONS/sqrtm.cc: 21589 Move @seealso inside @defXXX macro. Remove "and" from @seealso. 21590 215912006-03-04 John W. Eaton <jwe@octave.org> 21592 21593 * help.cc (additional_help_message): Don't print "\n" before message. 21594 (help_from_symbol_table): If Vsuppress_verbose_help_message is 21595 true, don't print which info. 21596 215972006-03-03 John W. Eaton <jwe@octave.org> 21598 21599 * dirfns.cc (Vconfirm_recursive_rmdir): New static variable. 21600 (symbols_of_dirfns): DEFVAR it. 21601 (confirm_recursive_rmdir): New function. 21602 (Frmdir): Maybe ask for confirmation for recursive removal. 21603 Require second arg to be "s". 21604 21605 * input.cc (octave_yes_or_no): New function. 21606 (Fyes_or_no): New function. 21607 * input.h (octave_yes_or_no): Provide decl. 21608 216092006-03-02 John W. Eaton <jwe@octave.org> 21610 21611 * dirfns.cc (Fmkdir, Frmdir): Now commands. 21612 216132006-02-20 David Bateman <dbateman@free.fr> 21614 21615 * ov.h (virtual bool is_sparse_type (bool)): New virtual function 21616 * ov-base.h (bool is_sparse_type (bool)): New function 21617 * ov-base-sparse.h (bool is_sparse_type (bool)): New function 21618 * DLD-FUNCTIONS/ccolamd.cc, DLD-FUNCTION/colamd.cc, 21619 DLD-FUNCTIONS/__glpk__.cc, DLD-FUNCTIONS/splu.cc, 21620 DLD-FUNCTIONS/sparse.cc, DLD-FUNCTIONS/matrix_type.cc, pt-mat.cc: 21621 Replace us of 'arg.class_name () == "sparse"' with 21622 'arg.is_sparse_type ()' 21623 216242006-02-20 David Bateman <dbateman@free.fr> 21625 21626 * pt-mat.cc (class tm_row_const): Add any_sparse bool variable. 21627 (tm_row_const::tm_row_const_rep::do_init_element): Initialize 21628 any_sparse variable if any matrice is sparse. 21629 (class tm_const): Add any_sparse bool variable. 21630 (tm_const::init): Initialize any_sparse variable. 21631 (tree_matrix::rvalue): If any matrix is sparse use sparse matrix 21632 as initial matrix for concatenation 21633 * DLD-FUNCTIONS/matrix_type.cc: Add tests for new rectangular 21634 diagonal, permuted diagonal, triangular and permuted triangular 21635 matrices 21636 216372006-02-20 John W. Eaton <jwe@octave.org> 21638 21639 * toplev.cc (__builtin_delete, __builtin_new): Use std::cerr for 21640 messages instead of std::cout. 21641 (main_loop, do_octave_atexit): Use octave_stdout, not std::cout. 21642 216432006-02-15 John W. Eaton <jwe@octave.org> 21644 21645 * parse.y (Fautoload): Return struct array of autoload info if 21646 nargin == 0. 21647 216482006-02-15 Keith Goodman <kwgoodman@gmail.com> 21649 21650 * help.cc (keywords): Doc string fix. 21651 216522006-02-15 John W. Eaton <jwe@octave.org> 21653 21654 * oct-procbuf.cc (close): Use __CYGWIN__ instead of __CYGWIN32__. 21655 216562006-02-13 David Bateman <dbateman@free.fr> 21657 21658 * DLD_FUNCTIONS/regexp.cc (octregexp): Add matlab compatiable 21659 named tokens. Update the tests 21660 216612006-02-10 John W. Eaton <jwe@octave.org> 21662 21663 * lex.l (\[{S}*): Maybe set lexer_flags.looking_at_return_list or 21664 lexer_flags.looking_at_matrix_or_assign_lhs here. 21665 * parse.y 21666 (return_list_beg): Don't use in_return_list here. 21667 (assign_lhs, matrix): Don't use in_matrix_or_assign_lhs here. 21668 (in_matrix_or_assign_lhs, in_return_list): Delete unused macros. 21669 (matrix): Clear lexer_flags.looking_at_matrix_or_assign_lhs in all 21670 cases. 21671 216722006-02-09 John W. Eaton <jwe@octave.org> 21673 21674 * utils.cc (oct_file_in_path): Check len > 4, not len > 2. 21675 From Larrie Carr <larrie@telus.net>. 21676 216772006-02-09 David Bateman <dbateman@free.fr> 21678 21679 * DLD-FUNCTIONS/spqr.cc: New file for sparse QR and dmperm based on 21680 CSparse. 21681 * DLD-FUNCTIONS/matrix_type.cc (Fmatrix_type): dintinguish between 21682 rectangular and singular matrices. Add tests. 21683 * DLD-FUNCTIONS/luinc.cc: Add tests. 21684 * DLD-FUNCTIONS/spkron.cc: Ditto. 21685 * Makefile.in (DLD_XSRC): Add spqr.cc. 21686 (OCT_LINK_DEPS): Add CSSPARSE_LIBS. 21687 * sparse-xdiv.h: Remove conditio of lssolve. 21688 216892006-02-08 John W. Eaton <jwe@octave.org> 21690 21691 * parse.y (frob_function): Clear ID_NAME from top_level symbol 21692 table if we are defining a function at the top-level and a 21693 function with the same name is already in the top-level symbol 21694 table. 21695 216962006-01-31 John W. Eaton <jwe@octave.org> 21697 21698 * ov-base-sparse.h (octave_base_sparse<T>::nzmax): New function. 21699 * ov.h (octave_value::nzmax): New function. 21700 * ov-base.cc (octave_base_value::nzmax): New function. 21701 * ov-base.h: Provide decl. 21702 * data.cc (Fnzmax): New function. 21703 * DLD-FUNCTIONS/sparse.cc (Fnzmax): Delete. 21704 217052006-01-31 Kim Hansen <kim@i9.dk> 21706 21707 * __glpk__.cc (F__glpk__): Fix for sparse matrices. 21708 217092006-01-30 John W. Eaton <jwe@octave.org> 21710 21711 * gripes.cc (gripe_wrong_type_arg (const char*, const char*, bool)): 21712 New function. 21713 (gripe_wrong_type_arg (const char*, const std::string&, bool)): 21714 Define using const char*, const char*, bool version. 21715 (gripe_wrong_type_arg (const char*, const octave_value&, bool)): 21716 Define using const char*, const std::string&, bool version. 21717 21718 * ov.h (octave_value::nnz): New function. 21719 * ov-base.cc (octave_base_value::nnz): New function. 21720 * ov-base.h: Provide decl. 21721 * ov-base-mat.h (octave_base_matrix<MT>::nnz): New function. 21722 * ov-base-scalar.h (octave_base_scalar<MT>::nnz): New function. 21723 * Cell.cc (Cell::nnz): New function. 21724 * Cell.h: Provide decl. 21725 * data.cc (Fnnz): New function. 21726 * DLD-FUNCTIONS/sparse.cc (Fnnz): Delete. 21727 217282006-01-13 John W. Eaton <jwe@octave.org> 21729 21730 * ov-struct.cc (octave_struct::print_raw): Correctly print scalar 21731 structs and empty struct arrays. 21732 21733 * DLD-FUNCTIONS/__gnuplot_raw__.l (Fclearplot): For compatibility, 21734 also turn off hold state for current figure. 21735 217362006-01-13 Bill Denney <bill@givebillmoney.com> 21737 21738 * dirfns.cc: Add @seealso{} to docstrings. 21739 217402006-01-13 John W. Eaton <jwe@octave.org> 21741 21742 * help.cc (display_help_text): Use warning() to print raw Texinfo 21743 source. Don't redirect error output for makeinfo process. 21744 21745 * DLD-FUNCTIONS/__gnuplot_raw__.l (F__gnuplot_init__): Delete 21746 function and PKG_ADD directive. 21747 (gnuplot::gnuplot): Call do_init here. 21748 (gnuplot::init): Delete static function. 21749 (gnuplot::close_all): New static function. 21750 (class gnuplot_X): New class. 21751 (gnpulot_X::X): New static instance. 21752 217532006-01-12 David Bateman <dbateman@free.fr> 21754 21755 * help.cc (make_name_list): Add autoload functions to list of 21756 available completions. 21757 (simple_help): Add autoloaded functions to functions listed 21758 (first_help_sentence): Avoid issue with single line help string 21759 that is not terminated in \n. 21760 (Flookfor): Check for string match in the keyword/function, etc 21761 name. Also look for string match in help of autoloaded functions. 21762 Load oct-files to be able to access their help string. 21763 * parse.y (string_vector autoloaded_functions (void)): New 21764 function to list all autloaded functions. 21765 (string_vector reverse_lookup_autoload (const std::string& nm)): 21766 Reverse lookup function to match file to autoloaded functions. 21767 * parse.h (autoloaded_functions, reverse_lookup_autoload): 21768 Declaration. 21769 21770 * oct-map.cc (maybe_delete_elements): New function. 21771 * oct-map.h (maybe_delete_elements): Declare it. 21772 * ov-struct.cc (octave_struct::subsref): Handle indexing empty 21773 structure. 21774 (octave_struct::subsasgn): If rhs is [], delete elements. 21775 (octave_struct::print_raw): Handle printing empty structure. 21776 21777 * ls-mat5.cc (read_mat5_binary_element): Allow reading of sparse 21778 elements when nnz doesn't equal nzmax. 21779 217802006-01-10 David Bateman <dbateman@free.fr> 21781 21782 * DLD-FUNCTIONS/sparse.cc (sparse_find): Use Sparse<T>::nonzero() 21783 rather than Sparse<T>::nnz(), due to possibility of overallocation 21784 of memory. 21785 217862006-01-06 John W. Eaton <jwe@octave.org> 21787 21788 * oct-map.cc (Octave_map::transpose): Avoid GCC 3.3.x parse error. 21789 217902005-12-14 John W. Eaton <jwe@octave.org> 21791 21792 * oct-stream.cc (octave_stream::invalid_stream_error): Delete. 21793 * oct-stream.h (octave_stream::stream_ok): Don't fail with error. 21794 217952005-12-14 David Bateman <dbateman@free.fr> 21796 21797 * DLD-FUNCTIONS/regexp.cc: New file. 21798 21799 * DLD-FUNCTIONS/dispatch.cc: Update tests for string/sq_string 21800 differences. 21801 21802 * error.cc (Vquiet_warning): New variable. 21803 (vwarning): Use Vquiet_warning to prevent warning output. 21804 (Fwarning): Include "quiet" option to Fwarning function. 21805 Assign retval when using "query". Typo in error message. 21806 (Flastwarn): Clear warning_state when using Flastwarn to probe warning 21807 message. 21808 21809 * ov-struct.cc: Update Fstruct tests for change in error output. 21810 21811 * Makefile.in: Include regexp when needed with appropriate libraries. 21812 218132005-12-13 David Bateman <dbateman@free.fr> 21814 21815 * Makefile.in: Change references to gplot.l to __gnuplot_raw__.l. 21816 * DLD-FUNCTIONS/__gnuplot_raw__.l: Rename from DLD-FUNCTIONS/gplot.l. 21817 Remove all references to deprecated gplot, gsplot, graw, gset and 21818 gshow functions. 21819 * help.cc (static help_list keywords[]): Remove gsplot and gplot. 21820 21821 * ls-oct-ascii.cc (save_three_d): Don't strip Inf or NaN. 21822 (save_ascii_data_for_plotting): Ditto. 21823 218242005-12-13 John W. Eaton <jwe@octave.org> 21825 21826 * oct-stream.cc (octave_stream_list::do_insert): Check open state 21827 of stream in list instead of whether stream state is OK. 21828 218292005-12-12 David Bateman <dbateman@free.fr> 21830 21831 * OPERATORS/op-struct.cc (transpose): New function. 21832 (install_struct_ops): Install it. 21833 21834 * oct-map.cc (Octave_map::transpose): New function. 21835 * oct-map.h: Provide decl. 21836 218372005-12-08 John W. Eaton <jwe@octave.org> 21838 21839 * Cell.cc (Cell::column): New function. 21840 * pt-loop.cc (DO_ND_LOOP): Simplify. 21841 (simple_for_loop_command::eval): Correctly handle N-d numeric and 21842 cell arrays when only the first dimension is 0. 21843 218442005-12-07 John W. Eaton <jwe@octave.org> 21845 21846 * lex.l (NL): Also accept '\r'. 21847 21848 * error.cc (Vbacktrace_on_warning, warning_options, 21849 Vlast_warning_id, Vlast_error_id): New file-scope variables. 21850 (Vwarning_frequency, Vwarning_option): Delete unused variables. 21851 (set_warning_option): Delete unused function. 21852 (Fwarning): Update for compatibility. Use DEFCMD, not DEFUN. 21853 (warning_enabled, check_state): New functions. 21854 (warning (const char *fmt, ...)): Use it. 21855 (init_warning_options): New function. 21856 (symbols_of_error): Call it. 21857 (vwarning, Flastwarn): Handle Vlast_warning_id. Improve compatibility. 21858 (handle_message): New arg, ID. Change all callers. 21859 (vwarning, verror, error_1): New arg, ID. Change all callers. 21860 (verror, Flasterr): Handle Vlast_error_id. Improve compatibility. 21861 21862 * error.cc (message_with_id, usage_with_id, warning_with_id, 21863 error_with_id, parse_error_with_id): New functions. 21864 (error_2, warning_1, usage_1): New functions. 21865 * error.h (message_with_id, usage_with_id, warning_with_id, 21866 error_with_id, parse_error_with_id): Provide decls. 21867 218682005-11-30 John W. Eaton <jwe@octave.org> 21869 21870 * DLD-FUNCTIONS/schur.cc (Fschur): Doc string fix. 21871 From Jorge Barros de Abreu <ficmatin01@solar.com.br>. 21872 218732005-11-28 John W. Eaton <jwe@octave.org> 21874 21875 * syscalls.cc (Funame): New function. 21876 218772005-11-21 John W. Eaton <jwe@octave.org> 21878 21879 * pr-output.cc (pr_int): Fix thinko in byte-swapping for bit format. 21880 21881 * DLD-FUNCTIONS/cellfun.cc (Fcellfun): 21882 Use C++ static_cast instead of C-style casts. 21883 218842005-11-21 William Poetra Yoga H <williampoetra@yahoo.com> 21885 21886 * DLD-FUNCTIONS/cellfun.cc (Fcellfun): 21887 Docstring and error message fixes. 21888 218892005-11-17 John W. Eaton <jwe@octave.org> 21890 21891 * DLD-FUNCTIONS/minmax.cc (MINMAX_BODY): Don't cast arg1 to 21892 const octave_complex_matrix&. 21893 218942005-11-16 John W. Eaton <jwe@octave.org> 21895 21896 * Makefile.in (PKG_ADD.inst): New target. 21897 (install-oct): Depend on it. 21898 (clean): Remove it. 21899 21900 * mk-pkg-add: New option --install. Don't use --prefix option. 21901 Delete obsolete comments. 21902 21903 * Cell.cc (Cell::index): Indexing with () is a no-op, not an error. 21904 * oct-map.cc (Octave_map::index): Likewise. 21905 * ov-base-mat.cc (octave_base_matrix<MT>::do_index_op): Likewise. 21906 * ov-base-sparse.cc (octave_base_sparse<T>::do_index_op): Likewise. 21907 * ov-str-mat.cc (octave_char_matrix_str::do_index_op_internal): 21908 Likewise. 21909 219102005-11-11 John W. Eaton <jwe@octave.org> 21911 21912 * Makefile.in (install-oct): Fix thinko in previous change. 21913 21914 * version.h (OCTAVE_VERSION): Now 2.9.4 21915 (OCTAVE_API_VERSION): Now api-v17. 21916 21917 * variables.cc (symbol_out_of_date): Check for autoloads here too. 21918 21919 * Makefile.in (PKG_ADD): Depend on $(DLD_DEF_FILES), not $(DLD_SRC). 21920 (%.df : %.cc): Also insert PKG_ADD commands in .df files. 21921 (install-oct): Generate PKG_ADD file for install directory here. 21922 Don't depend on PKG-ADD. No need to make .oct file links. 21923 (clean): No need to delete links. 21924 (stamp-oct-links): Delete target. 21925 (distclean): No need to remove stamp-oct-links. 21926 (all): Depend on $(OCT_FILES), not stamp-oct-links. 21927 21928 * mk-pkg-add: New file. 21929 * Makefile.in (DISTFILES): Add it to the list. 21930 21931 * mk-oct-links: Delete. 21932 * Makefile.in (DISTFILES): Remove it from the list. 21933 219342005-11-10 John W. Eaton <jwe@octave.org> 21935 21936 * ov-str-mat.h (octave_char_matrix_str::permute, 21937 octave_char_matrix_str::resize): New functions. 21938 (octave_char_matrix_sq_str::reshape, 21939 octave_char_matrix_sq_str::permute, 21940 octave_char_matrix_sq_str::resize): New functions. 21941 21942 * OPERATORS/op-str-str.cc, OPERATORS/op-str-s.cc, 21943 OPERATORS/op-str-m.cc: Use DEFNDCHARCATOP_FN. 21944 21945 * data.cc (do_cat): No need to handle character arrays specially here. 21946 21947 * ops.h (DEFNDCHARCATOP_FN): New macro. 21948 * OPERATORS/op-int.h (OCTAVE_INT_CHAR_CONCAT_FN, 21949 OCTAVE_CHAR_INT_CONCAT_FN, OCTAVE_INSTALL_INT_CHAR_CONCAT_FN, 21950 OCTAVE_INSTALL_CHAR_INT_CONCAT_FN): New macros. 21951 * OPERATORS/op-int-concat.cc: Use them do define char/int op functions. 21952 (install_int_concat_ops): Install char/int concat ops. 21953 21954 * ov-scalar.h (class octave_scalar): Provide extractors 21955 for all int array types and char array type. 21956 219572005-11-09 John W. Eaton <jwe@octave.org> 21958 21959 * ov-bool-mat.h (class octave_bool_matrix): Provide extractors 21960 for all int array types and char array type. 21961 * ov-bool.h (class octave_bool): Likewise. 21962 21963 * ov-intx.h (class OCTAVE_VALUE_INT_MATRIX_T): Provide extractors 21964 for all int array types and char array type. 21965 (class OCTAVE_VALUE_INT_SCALAR_T): Provide extractors for all int 21966 scalar and array types and char array type. 21967 21968 * pt-mat.cc (tm_const::class_nm): New data member. 21969 (tm_const::tm_const): Initialize it. 21970 (tm_const::class_name): New function. 21971 (tm_row_const::tm_row_const_rep::class_nm): New data member. 21972 (tm_row_const::tm_row_const_rep::tm_row_const_rep): Initialize it. 21973 (tm_row_const::class_name): New function. 21974 (get_concat_class): New function. 21975 (tm_row_const::tm_row_const_rep::do_init_element): Use it. 21976 (tm_const::init): Use it. 21977 219782005-11-07 John W. Eaton <jwe@octave.org> 21979 21980 * strfns.cc (Fstrcmp): If args are not strings or cell arrays of 21981 strings, return false. 21982 219832005-11-01 John W. Eaton <jwe@octave.org> 21984 21985 * Makefile.in (oct-gperf.h): Avoid extra temporary file. 21986 (distclean): Delete oct-errno.cc here. 21987 From Quentin Spencer <qspencer@ieee.org>. 21988 219892005-11-01 Quentin Spencer <qspencer@ieee.org> 21990 21991 * DLD-FUNCTIONS/spchol.cc: Use C++ true/false instead of 21992 preprocessor defined TRUE/FALSE. 21993 * Makefile.in (DISTFILES): Add mk-errno-list to the list. 21994 219952005-10-30 John W. Eaton <jwe@octave.org> 21996 21997 * DLD-FUNCTIONS/gplot.l (gnuplot::set_gnuplot_exe, 21998 gnuplot::do_set_gnuplot_exe): New functions. 21999 (gnuplot_binary): Call gnuplot::set_gnuplot_exe here. 22000 22001 * DLD-FUNCTIONS/gplot.l (gnuplot::set_gnuplot_use_title_option, 22002 gnuplot::do_set_gnuplot_use_title_option): New functions. 22003 (gnuplot_use_title_option): 22004 Call gnuplot::set_gnuplot_use_title_option here. 22005 220062005-10-27 James R. Van Zandt <jrvz@comcast.net> 22007 22008 * mappers.cc: Doc fix for lgamma. 22009 * DLD-FUNCTIONS/gammainc.cc (Fgammainc): Doc fix. 22010 220112005-10-27 John W. Eaton <jwe@octave.org> 22012 22013 * DLD-FUNCTIONS/__glpk__.cc (F__glpk__): Declare mrowsA volatile. 22014 22015 * pt-mat.cc (tm_row_const::tm_row_const_rep::tm_row_const_rep): 22016 Ensure that we always have at least two dimensions here. 22017 (tm_const::tm_const): Likewise. 22018 (tm_const::rows, tm_const::columns): Simplify. 22019 (tm_row_const::rows, tm_row_const::columns)): Simplify. 22020 220212005-10-26 John W. Eaton <jwe@octave.org> 22022 22023 * oct-procbuf.cc (octave_procbuf::open): Cast 0 to void * to avoid 22024 new g++ warning. 22025 * toplev.cc (Fsystem): Likewise. 22026 22027 Changes for GCC 4.1, tip from Arno J. Klaassen 22028 <arno@heho.snv.jussieu.fr>: 22029 22030 * ov.h (do_unary_op (octave_value::unary_op, const octave_value&)): 22031 Publish externally used friend function. 22032 (do_unary_op (octave_value::unary_op, const octave_value&, 22033 const octave_value&)): Likewise. 22034 220352005-10-25 David Bateman <dbateman@free.fr> 22036 22037 * data.cc (do_cat): called with 2 args, should return args(1) 22038 for compatibility. 22039 220402005-10-23 David Bateman <dbateman@free.fr> 22041 22042 * Makefile.in (DLD_XSRC): Add spchol.cc. 22043 * sparse-xpow.cc (xpow): Change call to sparse inverse to include 22044 SparseType. 22045 * DLD-FUNCTIONS/colamd.c (Fsymbfact): Remove. 22046 * DLD-FUNCTIONS/matrix_type.cc (Fmatrix_type): 64-bit fixes and fix 22047 for permutation of upper/lower triangular matrices. 22048 * DLD-FUNCTIONS/splu.cc (Fspinv): Implemtation of sparse inverse 22049 function. 22050 * DLD-FUNCTIONS/spchol.cc (sparse_chol): Static function for core of 22051 the sparse cholesky factorization. 22052 (Fspchol): New function for sparse cholesky factorization R'R. 22053 (Fsplchol): New function for sparse cholesky factorization LL'. 22054 (Fspcholinv): New cholesky inverse function. 22055 (Fspchol2inv): New cholesky inverse function. 22056 (Fsymbfact): Implementation of symbolic factorization using cholmod. 22057 220582005-10-21 John W. Eaton <jwe@octave.org> 22059 22060 * DLD-FUNCTIONS/gplot.l (read_until): Special case STRING. 22061 (handle_string): Restore function. 22062 ("'", "\""): Call handle string when matching these tokens.. 22063 220642005-10-20 John W. Eaton <jwe@octave.org> 22065 22066 * pt-mat.cc (tm_row_const::all_real): New data member. 22067 (tm_row_const::all_real_p): New function. 22068 (tm_row_const::tm_row_const_rep::all_real): New data member. 22069 (tm_row_const::tm_row_const_rep::all_real_p): New function. 22070 (tm_row_const::tm_row_const_rep::init): Set all_real and all_cmplx 22071 to true here. 22072 (tm_row_const::all_cmplx): Rename from is_cmplx. 22073 (tm_row_const::all_complex_p): Rename from complex_p. 22074 (tm_row_const::tm_row_const_rep::all_cmplx): Rename from is_cmplx. 22075 (tm_row_const::tm_row_const_rep::all_complex_p): Rename from complex_p. 22076 (tm_row_const::tm_row_const_rep::init): Set all_real and all_cmplx 22077 to true here. 22078 (SINGLE_TYPE_CONCAT): New macro. 22079 (tree_matrix::rvalue): Use it for single type cases. 22080 22081 * pt-mat.cc: Sprinkle with OCTAVE_QUIT. 22082 220832005-10-18 John W. Eaton <jwe@octave.org> 22084 22085 * octave.cc (octave_main): If not embedded, call clean_up_and_exit 22086 instead of return to exit function. 22087 220882005-10-18 Arno J. Klaassen <arno@heho.snv.jussieu.fr> 22089 22090 * DLD-FUNCTIONS/gplot.l (gnuplot::handle_title): 22091 Omit class name from declaration. 22092 220932005-10-17 Keith Goodman <kwgoodman@gmail.com> 22094 22095 * DLD-FUNCTIONS/sort.cc: Doc string fix. 22096 220972005-10-17 John W. Eaton <jwe@octave.org> 22098 22099 * oct-conf.h.in (OCTAVE_CONF_F77_FLOAT_STORE_FLAG): Substitute 22100 OCTAVE_CONF_F77_FLOAT_STORE_FLAG here. 22101 221022005-10-14 John W. Eaton <jwe@octave.org> 22103 22104 * mk-errno-list: New script. 22105 * Makefile.in (oct-errno.cc): Use it. 22106 221072005-10-13 John W. Eaton <jwe@octave.org> 22108 22109 * DLD-FUNCTIONS/gplot.l (F__gnuplot_raw__): 22110 Call print_usage with correct function name. 22111 221122005-10-12 John W. Eaton <jwe@octave.org> 22113 22114 * DLD-FUNCTIONS/gplot.l: Major cleanup. 22115 Built-in variable gnuplot_has_frames no longer necessary. 22116 (gnuplot): New class to manage multiple gnuplot processes. 22117 (handle_string): Delete. It was only used for the case of 22118 __gnuplot_plot__ "file", which is no longer allowed. 22119 221202005-10-05 John W. Eaton <jwe@octave.org> 22121 22122 * variables.cc (symbol_exist): Chekck for autoloaded functions. 22123 22124 * parse.y (Fautoload): New function. 22125 (autoloading, autoload_map): New static variables. 22126 (load_fcn_from_file, frob_function): Handle autoloading. 22127 (lookup_autoload): New function. 22128 (get_help_from_file): New args, symbol_found and include_file_info. 22129 Change all callers. 22130 221312005-10-05 David Bateman <dbateman@free.fr> 22132 22133 * help.cc (try_info): format in command string for mingw. 22134 221352005-09-30 John W. Eaton <jwe@octave.org> 22136 22137 * ov.cc (octave_value::~octave_value): No need to set rep to zero 22138 after deleting. 22139 221402005-09-29 John W. Eaton <jwe@octave.org> 22141 22142 * syscalls.cc (mk_stat_map): Store mode too. 22143 (FS_ISREG, FS_ISDIR, FS_ISCHR, FS_ISBLK, FS_ISFIFO, FS_ISLNK, 22144 FS_ISSOCK): New functions. 22145 (Fstat): Fix docstring. 22146 221472005-09-28 John W. Eaton <jwe@octave.org> 22148 22149 * oct-stream.cc (printf_value_cache::double_value): Force 22150 character strings to be converted to ASCII equivalents. 22151 22152 * data.cc (Fcomplex): New function. 22153 22154 * ov-type-conv.h (OCTAVE_TYPE_CONV_BODY3): Return arg unchanged if 22155 class name is same as name of conversion. 22156 22157 * dirfns.cc (Frmdir, Fmkdir): For compatibility, return true for 22158 success and false for failure. Return third value, msgid. 22159 (Frmdir): Handle second arg for recursive behavior. 22160 221612005-09-23 John W. Eaton <jwe@octave.org> 22162 22163 * parse.y (load_fcn_from_file): Don't look in path if file is 22164 absolute and has .oct or .m extension. 22165 22166 * utils.cc (Ferrno_list): New function. 22167 22168 * oct-errno.h, oct-errno.cc.in: New files. 22169 * Makefile.in: Add them to the appropriate lists. 22170 (oct-errno.cc): New rule. 22171 ($(OPT_HANDLERS)): Use $(PERL) instead of just perl. 22172 22173 * utils.cc: Include oct-errno.h. 22174 (Ferrno): Rename from FERRNO. Allow errno to be set. Allow 22175 lookups of errno codes by name and access to structure containing 22176 all errno names and codes. 22177 221782005-09-19 John W. Eaton <jwe@octave.org> 22179 22180 * pt-bp.cc (tree_breakpoint::visit_index_expression): 22181 Avoid dereferencing invalid pointer. 22182 221832005-09-19 David Bateman <dbateman@free.fr> 22184 22185 * Makefile.in (OCT_LINK_DEPS): Include UFsparse libraries. 22186 22187 * DLD_FUNCTIONS/__glpk__.cc (F__glpk__): Replace isinf with 22188 xisinf. Allow sparse matrices as second argument. 22189 22190 * syscalls.cc: Typos. 22191 * sysdep.cc: Typos. 22192 221932005-09-16 John W. Eaton <jwe@octave.org> 22194 22195 * syscalls.cc (Fwaitpid): Doc fix. Expect WNOHANG, WUNTRACED, 22196 WCONTINUED as args instad of int values. 22197 Return values are now [pid, status, msg] instad of [pid, msg]. 22198 (WIFEXITED, WEXITSTATUS, WIFSIGNALED, WTERMSIG, WCOREDUMP, 22199 WIFSTOPPED, WSTOPSIG, WIFCONTINUED): New functions. 22200 (symbols_of_syscalls): DEFCONST WNOHANG, WUNTRACED, and WCONTINUE. 22201 22202 * oct-procbuf.cc (octave_procbuf::close): Call octave_syscalls::waitpid 22203 here instead of calling waitpid directly. 22204 * sighandlers.cc (OCL_REP::wait): Likewise. 22205 22206 * sysdep.h [__MINGW32__]: Don't define waitpid here. 22207 222082005-09-15 John W. Eaton <jwe@octave.org> 22209 22210 * sysdep.h [__MINGW32__]: Move to definition of waitpid sysdep.h. 22211 22212 * sysdep.cc, sighandlers.cc: Rename all win32_ symbols to w32. 22213 22214 * sysdep.cc (w32_set_quiet_shutdown): New function. 22215 * sysdep.h: Provide decl. 22216 * sysdep.cc (MINGW_signal_cleanup): Use it. 22217 * sighandlers.cc (octave_catch_interrupts): Use it. 22218 22219 * sysdep.h: Provide decl. 22220 (MINGW_SIGNAL_CLEANUP): New macro. 22221 (USE_W32_SIGINT): Move definition here. 22222 * sighandlers.cc: From here. 22223 22224 * DLD-FUNCTIONS/cellfun.cc (Fnum2cell): Use print_usage, not usage. 22225 * DLD-FUNCTIONS/colamd.cc (Fcolamd, Fsymamd, Fetree): Likewise. 22226 (Fcolamd, Fsymamd) [! HAVE_COLAMD]: Return empty octave_value_list 22227 object. 22228 22229 * sysdep.cc (sysdep_cleanup): New function. 22230 Move w32 clean up code here. 22231 * toplev.cc (clean_up_and_exit): From here. 22232 Call sysdep_cleanup here. 22233 222342005-09-15 David Bateman <dbateman@free.fr> 22235 22236 * Makefile.in (DLD_XSRC): Add ccolamd.cc 22237 (OCTAVE_LIBS): Add LIBGLOB. 22238 (OCT_LINK_DEPST, octave): Add AMD, COLAMD, CCOLAMD and CHOLMOD 22239 libraries. 22240 * default.cc (set_default_exec_path, set_default_path, 22241 maybe_add_default_load_path, LOADPATH): Use SEPCHAR_STR and SEPCHAR. 22242 * help.cc (display_help_text): Exclude /dev/null on mingw. 22243 * oct-procbuf.cc (W32POPEN, W32PCLOSE): Macros for cygwin/mingw. 22244 (octave_procbuf::open, octave_probuf::close): Use them. 22245 * sighandler.cc (user_abort): New function with core of old 22246 sigint_handler. 22247 (sigint_handler): Simplify and specialize for w32. 22248 (w32_sigint_handler): W32 version of sigint handler. 22249 (octave_catch_interrupts): Initialize w32 siginit handler. 22250 * sysdep.cc (MINGW_init): New function. 22251 (sysdep_init): Use it. 22252 * toplev.cc (clean_up_and_exit): Clean w32 signalling shutdown. 22253 * DLD-FUNCTIONS/cellfun.cc (Fnum2cell): New function. 22254 * DLD-FUNCTIONS/colamd.cc (Fcolamd, Fsymamd): Allow conditional build. 22255 Include oct-sparse.h rather than colamd.h. 22256 * DLD-FUNCTIONS/ccolamd.cc: New file with Fccolamd a Fcsymamd. 22257 222582005-09-14 John W. Eaton <jwe@octave.org> 22259 22260 * ov-complex.cc (octave_complex::try_narrowing_conversion): 22261 Don't drop -0i. 22262 * ov-cx-mat.cc (octave_complex_matrix::try_narrowing_conversion): 22263 Likewise. 22264 222652005-09-14 Daniel <durbano@shbano.com> 22266 22267 * DLD-FUNCTIONS/besselj.cc, DLD-FUNCTIONS/chol.cc, 22268 DLD-FUNCTIONS/fft.cc, DLD-FUNCTIONS/fftw_wisdom.cc, utils.cc: 22269 Doc string fixes. 22270 From Jorge Barros de Abreu <ficmatin01@solar.com.br>. 22271 222722005-09-14 David Bateman <dbateman@free.fr> 22273 22274 * help.cc (Flookfor, print_lookfor, first_help_sentence): 22275 New functions. 22276 222772005-09-07 Bill Denney <denney@seas.upenn.edu> 22278 22279 * dirfns.cc (Fglob): Doc fix. 22280 222812005-09-07 John W. Eaton <jwe@octave.org> 22282 22283 * ov-struct.cc (Fstruct): Allow struct (zeros (0, N)) to create a 22284 0xN struct array. 22285 222862005-09-04 David Bateman <dbateman@free.fr> 22287 22288 * DLD-FUNCTIONS/colamd.c (COLAMD_NAME, SYMAMD_NAME): New macros 22289 (symetree, make_set, link, finf, etdfs, TreePostorder, coletree, 22290 Fcolamd, Fsymamd, Fetree): Update for 64-bit indexing and colamd 22291 versin 2.4. 22292 222932005-09-01 John W. Eaton <jwe@octave.org> 22294 22295 * variables.cc (symbol_out_of_date): Don't check nested functions. 22296 222972005-08-31 John W. Eaton <jwe@octave.org> 22298 22299 * oct-map.cc (Octave_map::index): Don't crash if index list is empty. 22300 * ov-str-mat.cc (octave_char_matrix_str::do_index_op_internal): 22301 Likewise. 22302 22303 * oct-map.h (Octave_map::ndims): New function. 22304 223052005-08-30 John W. Eaton <jwe@octave.org> 22306 22307 * ov-range.h (octave_range::permute): New function. 22308 22309 * ov-struct.cc (octave_struct::load_ascii, 22310 octave_struct::load_binary, octave_struct::load_hdf5): Try harder 22311 to read old-style files correctly. 22312 223132005-08-25 David Bateman <dbateman@free.fr> 22314 22315 * OPERATORS/op-sm-m.cc, OPERATORS/op-sm-cm.cc, OPERATORS/op-scm-m.cc, 22316 OPERATORS/op-scm-cm.cc, OPERATORS/op-m-sm.cc, OPERATORS/op-m-scm.cc, 22317 OPERATORS/op-cm-sm.cc, OPERATORS/op-cm-scm.cc: Use mixed matrix/sparse 22318 multiply operator rather than casting sparse to matrix. 22319 223202005-07-18 John W. Eaton <jwe@octave.org> 22321 22322 * strfns.cc (Fstrcmp): New function from Søren Hauberg 22323 <soren@hauberg.org> and Tom Holroyd <tomh@kurage.nimh.nih.gov>. 22324 Adapt to Octave conventions. 22325 223262005-07-11 David Bateman <dbateman@free.fr> 22327 22328 * ov-fc-inline.cc (Fvectorize): Allow string arguments 22329 223302005-07-08 John W. Eaton <jwe@octave.org> 22331 22332 * DLD-FUNCTIONS/gplot.l (Fhold, Fishold): Delete. 22333 (clear_before_plotting): Delete static variable. 22334 Delete PKG_ADD line for hold. 22335 223362005-07-07 John W. Eaton <jwe@octave.org> 22337 22338 * pr-output.cc (pr_plus_format): Delete "static" from template decl. 22339 22340 * oct-stream.cc (octave_scan): Delete explicit instantiation of 22341 octave_scan<double> since a specialization is provided. 22342 22343 * DLD-FUNCTIONS/matrix_type.cc (Fmatrix_type): Include 22344 <algorithm>, for std::transform decl. Use std qualifier for 22345 transform and tolower. 22346 223472005-07-05 Antoine Moreau <antoine.moreau@univ-bpclermont.fr> 22348 22349 * DLD-FUNCTIONS/betainc.cc (Fbetainc): Fix doc string to match 22350 function definition.. 22351 223522005-07-05 Mats Jansson <mats.e.jansson@home.se> 22353 22354 * file-io.cc (Fmkstemp): Check if second argument is true 22355 before marking file for deletion. 22356 223572005-07-05 John W. Eaton <jwe@octave.org> 22358 22359 * ov-str-mat.cc (octave_char_matrix_str::do_index_op_internal): 22360 Rename from char_matrix_str::do_index_op. New arg, type. 22361 ov-str-mat.h (octave_char_matrix_str::do_index_op): Define using 22362 do_index_op_internal. 22363 (octave_char_matrix_sq_str::do_index_op): New function. 22364 223652005-07-01 John W. Eaton <jwe@octave.org> 22366 22367 * parse.y (end_error): Also handle end_try_catch case. 22368 223692005-06-17 John W. Eaton <jwe@octave.org> 22370 22371 * help.cc (help_from_list, help_from_symbol_table, 22372 help_from_file): New arg, symbol_found. 22373 (builtin_help): Use symbol_found arg to determine whether help 22374 text is empty or symbol is not available. 22375 22376 * symtab.cc (symbol_record::print_info): Print more info. 22377 22378 * DLD-FUNCTIONS/dispatch.cc (Fdispatch_help): Delete. 22379 (dispatch_record): Don't prepend "<>" to help text. 22380 (Fdispatch): Don't setup dispatched help. 22381 22382 * help.cc (extract_help_from_dispatch): New function. 22383 (help_from_symbol_table): Use it. 22384 * defun.cc (print_usage): Use it. 22385 22386 * toplev.cc (octave_config_info): Include localapifcnfiledir and 22387 localapioctfiledir in the list. 22388 22389 * symtab.h (symbol_record::alias): New arg, mark_to_clear. 22390 (symbol_record::aliases_to_clear): New data member. 22391 (symbol_record::push_alias_to_clear): New function. 22392 * symtab.cc (symbol_record::alias): If mark_to_clear is true, push 22393 this pointer on aliases_to_clear stack for s. 22394 (symbol_record::clear): Also clear aliases_to_clear_stack. 22395 22396 * defun.cc (install_dld_function): Create full file name alias in 22397 fbi_sym_tab and hide it from view. 22398 Don't call protect or make_eternal on sym_rec. 22399 22400 * variables.cc (fcn_out_of_date): New function. 22401 (symbol_out_of_date): Also check for symbol using full function 22402 file name. 22403 22404 * symtab.h (symbol_record::visible): New data member. 22405 (symbol_record::hide, symbol_record::show, symbol_record::is_visible): 22406 New functions. 22407 22408 * symtab.h (symbol_record::maybe_delete_def): New private function. 22409 * symtab.cc (symbol_record::clear, symbol_record::alias, 22410 symbol_record::pop_context, 22411 symbol_record::define (octave_function *, unsigned int)): Use it. 22412 (symbol_table::symbol_list): Only include visible symbols in list. 22413 22414 * parse.y (frob_function): Hide nested function names. 22415 22416 * parse.y (frob_function): Create full file name alias in 22417 fbi_sym_tab and hide it from view. 22418 * defun.cc (install_dld_function): Likewise. 22419 224202005-06-16 John W. Eaton <jwe@octave.org> 22421 22422 * ov-dld-fcn.cc (octave_dld_function): Check Voct_file_dir to see 22423 if function is system file, Vfcn_file_dir. 22424 * defaults.cc (set_default_oct_file_dir): New function. 22425 (install_defaults): Call it. 22426 (Voct_file_dir): New global variable. 22427 * defaults.h.in (Voct_file_dir): Provide decl. 22428 22429 * variables.cc (function_out_of_date_internal): Use 22430 Vignore_function_time_stamp only to avoid calling stat. 22431 (symbol_out_of_date): Don't check Vignore_function_time_stamp here. 22432 (function_out_of_date): Rename from function_out_of_date_internal. 22433 22434 * defaults.cc (loadpath): Don't do anything if value is unchanged. 22435 If loadpath changes, also update Vlast_prompt_time. 22436 224372005-06-14 John W. Eaton <jwe@octave.org> 22438 22439 * pt-mat.cc (Vwarn_string_concat): Default value now false. 22440 (symbols_of_pt_mat): Change initial value here as well. 22441 22442 * ls-mat5.cc, mappers.cc, oct-stream.cc, pr-output.cc: Change all 22443 uses of octave_is_NaN_or_NA to xisnan. 22444 224452005-06-14 Keith Goodman <kwgoodman@gmail.com> 22446 22447 * input.cc (get_user_input): Renamed debug commands to dbnext, 22448 dbstep, and dbcont. 22449 * pt.cc: Renamed dbg_next to dbnext in comment string. 22450 * pt.h: Renamed dbg_next to dbnext in comment string. 22451 224522005-06-14 David Bateman <dbateman@free.fr> 22453 22454 * pt-arg-list.cc (F__end__): Return 1 for dimensions larger than ndim. 22455 224562005-06-14 John W. Eaton <jwe@octave.org> 22457 22458 * ls-mat5.cc (save_mat5_array_length): Special case for NaN, NA, 22459 and Inf values. Only check if abs value is greater than FLT_MAX. 22460 224612005-06-09 David Bateman <dbateman@free.fr> 22462 22463 * ls-mat5.cc (save_mat5_element_length): 1 element strings will be 22464 saved in a compressed format, so calculate the length accordingly. 22465 224662005-05-30 David Bateman <dbateman@free.fr> 22467 22468 * ls-mat5.cc (read_mat5_binary_element): Don't convert to string 22469 if matrix is not of type mxCHAR_CLASS. 22470 224712005-05-23 John W. Eaton <jwe@octave.org> 22472 22473 * file-io.cc (Ffopen): Don't fail with internal error message if 22474 we fail to create a valid stream object. 22475 (do_stream_open (const std::string&, const std::string&, 22476 const std::string&, int&): Always create octave_stream object, 22477 even if file pointer returne from fopen is 0. 22478 22479 * load-save.cc (gripe_file_open): New function. 22480 (get_file_format, Fload, Fsave): Use it. 22481 22482 * DLD-FUNCTIONS/sort.cc (mx_sort, mx_sort_indexed): Return 22483 appropriately sized empty values for empty args. 22484 22485 * debug.cc (Fdbwhere, get_user_function): Look at 22486 curr_caller_function, not curr_function, since function is now set 22487 inside mapper, built-in (and therefore dld) functions too. 22488 224892005-05-21 John W. Eaton <jwe@octave.org> 22490 22491 * pr-output.cc, pr-output.h (Vprint_empty_dimensions): Now extern. 22492 * ov-cell.cc (octave_cell::print_raw): Conditionally print 22493 dimensions of empty 2-d cell arrays. 22494 22495 * DLD-FUNCTIONS/sort.cc (mx_sort, mx_sort_indexed): Return empty 22496 values for empty args. 22497 22498 * lex.l (handle_string): If single-quote string, \ and . have no 22499 special meaning. 22500 225012005-05-18 John W. Eaton <jwe@octave.org> 22502 22503 * pt-colon.cc (tree_colon_expression::make_range): Don't require 22504 scalars values as range components. 22505 22506 * version.h (OCTAVE_VERSION): Now 2.9.3 22507 (OCTAVE_API_VERSION): Now api-v16. 22508 22509 * ov-base-sparse.cc (octave_base_sparse<T>::print_raw): 22510 Make spacing of output consistent with other parts of Octave. 22511 22512 * DLD-FUNCTIONS/rand.cc (do_rand): Chop trailing singelton 22513 dimensions before generating array. 22514 225152005-05-17 John W. Eaton <jwe@octave.org> 22516 22517 * ov.cc (install_types): Don't call octave_stream::register_type. 22518 * ov.h, ov.cc (octave_value::octave_value (const octave_stream&, 22519 int): Delete constructor. 22520 (octave_value::is_stream, octave_value::stream_value, 22521 octave_value::stream_number): Delete functions. 22522 * ov-base.h (octave_base_value::is_stream): Delete function. 22523 * ov-base.h, ov-base.cc (octave_base_value::stream_value, 22524 octave_base_value::stream_number): Delete functions. 22525 * file-io.cc (Fisstream): Delete function. 22526 * op-file.h, op-file.cc, OPERATORS/op-fil-sbm.cc, 22527 OPERATORS/op-fil-scm.cc, OPERATORS/op-fil-sm.cc, 22528 * OPERATORS/op-fil-b.cc, OPERATORS/op-fil-bm.cc, 22529 OPERATORS/op-fil-cm.cc, OPERATORS/op-fil-cs.cc, 22530 OPERATORS/op-fil-m.cc, OPERATORS/op-fil-s.cc, 22531 OPERATORS/op-fil-lis.cc, OPERATORS/op-fil-rec.cc, 22532 OPERATORS/op-fil-str.cc: Delete files. 22533 * Makefile.in (OP_XSRC, SPARSE_OP_XSRC): Delete op-fil-*.cc from 22534 the lists. 22535 (OV_INCLUDES): Delete op-file.h from the list. 22536 (OV_SRC): Delete op-file.cc from the list. 22537 * oct-stream.cc, oct-stream.h (octave_stream_list::insert, 22538 octave_stream_list::do_insert): Return stream number instead of 22539 octave_value. 22540 225412005-05-16 David Bateman <dbateman@free.fr> 22542 22543 * ls-mat.cc (save_mat5_binary_element): Increase size of 22544 compression buffer. 22545 (load_mat5_binary_element): Allow ASCII encoded as UTF8, 22546 and give error messages for multi-byte UTF8 and UTF16 and UTF32 22547 encodings. 22548 22549 * ls-hdf5.h (H5T_NATIVE_IDX): New macro defining native indexing 22550 type for HDF5 files 22551 22552 * ls-hdf5.cc (save_hdf5_empty, load_hdf5_empty): Use 22553 H5T_NATIVE_IDX to allow 64-bit indexing. 22554 * ov-bool-sparse.cc (save_hdf5, load_hdf5): ditto. 22555 * ov-re-sparse.cc (save_hdf5, load_hdf5): ditto. 22556 * ov-cx-sparse.cc (save_hdf5, load_hdf5): ditto. 22557 * ov-cell.cc (save_hdf5, load_hdf5): ditto. 22558 22559 * load-save.cc (parse_save_options): Remove -nozip option. 22560 (Fsave): If user defines file format, ignore completely the default 22561 file format options. 22562 225632005-05-12 John W. Eaton <jwe@octave.org> 22564 22565 * Makefile.in (oct-gperf.h): Try harder to cause Make to exit here 22566 if gperf is missing or fails to create a valid file. 22567 225682005-05-10 John W. Eaton <jwe@octave.org> 22569 22570 * lex.l (<MATRIX_START>{SNLCMT}*\]{S}*): If whitespace was gobbled, 22571 unput SPC before returning the token. 22572 (<MATRIX_START>{SNLCMT}*\}{S}*): Likewise. 22573 225742005-05-09 John W. Eaton <jwe@octave.org> 22575 22576 * parse.y (except_command): Make catch clause optional in try 22577 statements. 22578 * pt-except.cc (tree_try_catch_command::eval): 22579 Always buffer error messages. 22580 225812005-05-06 John W. Eaton <jwe@octave.org> 22582 22583 * ov-struct.cc (octave_struct::save_ascii, 22584 octave_struct::save_binary, octave_sruct::save_hdf5): 22585 Always save cell array. 22586 (octave_struct::load_ascii, octave_struct::load_binary, 22587 octave_sruct::load_hdf5): Try to read old-style files correctly. 22588 22589 * DLD-FUNCTIONS/__qp__.cc (qp): Use chol2inv to compute inverse 22590 from Cholesky factors. 22591 (cholinv): Delete. 22592 22593 * DLD-FUNCTIONS/chol.cc (Fcholinv): New function. 22594 (Fchol2inv): New function. 22595 225962005-05-05 Keith Goodman <kwgoodman@gmail.com> 22597 22598 * ov-usr-fcn.cc (Fnargout, Fnargin): Update doc strings. 22599 * help.cc (keywords): Update doc strings for varargin, varargout. 22600 226012005-05-05 John W. Eaton <jwe@octave.org> 22602 22603 * oct-stream.cc (BEGIN_S_CONVERSION): Correctly handle width 22604 specifiers. 22605 226062005-05-04 John W. Eaton <jwe@octave.org> 22607 22608 * ls-mat5.cc (read_mat5_binary_element): Implement reading of N-d 22609 structure arrays. 22610 22611 * ov-struct.cc (octave_struct::load_hdf5, 22612 octave_struct::load_binary, octave_struct::load_ascii): Assign 22613 cell_value to map slot, not octave_value containing the cell. 22614 226152005-05-02 John W. Eaton <jwe@octave.org> 22616 22617 * error.cc (Flasterr): Don't access argv if an error occurs when 22618 creating it. 22619 22620 * mkgendoc (main): Print header message. 22621 226222005-05-02 Bill Denney <denney@seas.upenn.edu> 22623 22624 * data.cc, defaults.cc, DLD-FUNCTIONS/qz.cc, file-io.cc, 22625 sighandlers.cc, syscalls.cc: Docstring fixes. 22626 226272005-05-02 John W. Eaton <jwe@octave.org> 22628 22629 * pr-output.cc (octave_print_internal (std::ostream&, 22630 const Range&, bool, int)): Don't print newline at end of broken 22631 rows (that is handled by pr_col_num_header). 22632 From Keith Goodman <kwgoodman@gmail.com>. 22633 22634 * Makefile.in (octave$(EXEEXT)): List $(UMFPACK_LIBS) ahead of 22635 $(BLAS_LIBS). 22636 (OCTAVE_LIBS): Include $(GLPK_LIBS) in the list if dynamic linking 22637 is not enabled. 22638 From Dmitri A. Sergatskov <dasergatskov@gmail.com>. 22639 226402005-05-02 John W. Eaton <jwe@octave.org> 22641 22642 * oct-map.h, oct-map.cc (Octave_map::seek, Octave_map::contents): 22643 New non-const versions. 22644 (Octave_map::assign (const octave_value_list&, 22645 const std::string&, const Cell&)): Allow both tmp RHS and LHS to 22646 be resized. For clarity, always resize to new_dims. 22647 226482005-05-02 David Bateman <dbateman@free.fr> 22649 22650 * ov-re-sparse.cc, ov-cx-sparse.cc (load_binary): read save_type into 22651 one byte variable. 22652 226532005-04-29 John W. Eaton <jwe@octave.org> 22654 22655 * oct-stream.cc (DO_LITERAL_CONVERSION): Cast fmt[i] to unsigned 22656 char for comparison. 22657 22658 * c-file-ptr-stream.h (c_file_ptr_stream): New template class, 22659 converted from i_c_file_ptr_stream. 22660 (i_c_file_ptr_stream, o_c_file_ptr_stream, io_c_file_ptr_stream): 22661 Now typedefs. 22662 (i_c_zfile_ptr_stream, o_c_zfile_ptr_stream, io_c_zfile_ptr_stream): 22663 New typedefs. 22664 * c-file-ptr-stream.h, c-file-ptr-stream.cc (c_zfile_ptr_buf): 22665 New class. 22666 22667 * oct-stdstrm.h (class octave_tstdiostream): New template class, 22668 converted from octave_stdiostream. 22669 (octave_stdiostream): Now a typedef. 22670 [HAVE_ZLIB] (octave_zstdiostream): New a typedef. 22671 * oct-stdstrm.cc: Delete. 22672 * Makefile.in (DIST_SRC): Remove it from the list. 22673 226742005-04-29 David Bateman <dbateman@free.fr> 22675 22676 * Makefile.in: Add matrix_type.cc and spkron.cc to DLD_XSRC. 22677 22678 * ls.mat.cc (read_mat5_binary_element): Allow for endian change 22679 for compressed data elements. 22680 22681 * ov-base-sparse.cc (assign): Invalidate matrix type. 22682 22683 * ov-base-sparse.cc (SparseType sparse_type (void), 22684 SparseType sparse_type (const SparseType&): 22685 Functions to read and set sparse matrix type. 22686 22687 * ov-bool-sparse.cc (load_binary): Remove third argument. 22688 (load_hdf5): Cast hsize_t comparisions with int to avoid warning. 22689 * ov-cx-sparse.cc (load_hdf5): Ditto. 22690 * ov-re-sparse.cc (load_hdf5): Ditto. 22691 22692 * ov-re-sparse.cc (convert_to_str_internal): Add third argument 22693 for string type. 22694 * ov-re-sparse.h (convert_to_str_internal): Adject declaration. 22695 22696 * sparse-xdiv.cc (xdiv, xleftdiv): Pass SparseType as third 22697 argument, use it and return it to allow caching of type. 22698 * sparse-xdiv.h (xdiv, xleftdiv): Change declarations for third 22699 argument of type SparseType. 22700 22701 * DLD-FUNCTIONS/luinc.cc (Fluinc): Use type_name and not 22702 class_name to test for real/complex sparse matrices. 22703 Set matrix type. 22704 22705 * DLD-FUNCTIONS/splu.cc (Fsplu): Set matrix type. 22706 22707 * OPERATORS/op-cm-scm.cc, OPERATORS/op-cm-sm.cc, 22708 OPERATORS/op-cs-scm.cc, OPERATORS/op-cs-sm.cc, 22709 OPERATORS/op-m-scm.cc, OPERATORS/op-m-sm.cc, 22710 OPERATORS/op-s-scm.cc, OPERATORS/op-s-sm.cc, 22711 OPERATORS/op-scm-cm.cc, OPERATORS/op-scm-cs.cc, 22712 OPERATORS/op-scm-m.cc, OPERATORS/op-scm-s.cc, 22713 OPERATORS/op-scm-scm.cc, OPERATORS/op-scm-sm.cc, 22714 OPERATORS/op-sm-cm.cc, OPERATORS/op-sm-cs.cc, 22715 OPERATORS/op-sm-m.cc, OPERATORS/op-sm-s.cc, 22716 OPERATORS/op-sm-scm.cc, OPERATORS/op-sm-sm.cc (div, ldiv): 22717 Pass and recache SparseType wirh xdiv/xleftdiv. 22718 227192005-04-29 John W. Eaton <jwe@octave.org> 22720 22721 * file-io.cc (maybe_warn_interface_change): Delete function. 22722 (fopen_mode_to_ios_mode): Don't call it. 22723 227242005-04-27 John W. Eaton <jwe@octave.org> 22725 22726 * ov-fcn-handle.cc (octave_fcn_handle::subsref): 22727 Check whether function referenced by handle is out of date. 22728 (Ffunctions): Tag nameless user function as "command-line". 22729 22730 * variables.cc (symbol_out_of_date (octave_fucntion *)): New function. 22731 (function_out_of_date): New function. 22732 * parse.y (load_fcn_from_file (const std::string&, bool)): 22733 New function. 22734 22735 * DLD-FUNCTIONS/gplot.l (gnuplot_init): New function to handle 22736 initialization. If builtin variables have already been installed, 22737 simply update our cached values. 22738 (F__gnuplot_init__): Call gnuplot_init to do all the real work. 22739 (Fclearplot, Fcloseplot, Fhold, Fishold, Fpurge_tmp_files, 22740 F__gnuplot_raw__, F__gnuplot_set__, F__gnuplot_plot__, 22741 F__gnuplot_splot__, F__gnuplot_replot__, Fgplot, Fgsplot, Fgraw, 22742 Fgset, Fgshow): Call gnuplot_init before doing anything. 22743 22744 * parse.y: (safe_fclose): Delete comment list to avoid memory leak. 22745 (parse_and_execute (FILE *)): Also save and restore global_command. 22746 227472005-04-26 John W. Eaton <jwe@octave.org> 22748 22749 * mkbuiltins (VAR_FILES): Expect $(VAR_FILES) to have .df suffix. 22750 22751 * Makefile.in (clean): Also remove $(DLD_PICOBJ). 22752 Use mk-oct-links --delete to remove links to .oct files. 22753 Remove $(DOC_FILES) not $(DEF_FILES) and $(VAR_FILES). 22754 22755 * mk-oct-links (mk-oct-links): Handle --delete option. 22756 Rename -p option to be --print. Skip nonexistent .df files. 22757 227582005-04-25 John W. Eaton <jwe@octave.org> 22759 22760 * oct-hist.cc (default_history_file, default_history_size): Now static. 22761 * oct-hist.h: Delete decls. 22762 22763 * oct-hist.cc (default_history_timestamp_format, 22764 default_history_timestamp_format): New functions. 22765 (Vdefault_history_timestamp_format): New variable. 22766 (symbols_of_oct_hist): DEFVAR it. 22767 (octave_history_write_timestamp): New function. 22768 * oct-hist.h (octave_history_write_timestamp): Provide decl. 22769 * toplev.cc (): call octave_history_write_timestamp here. 22770 * octave.cc (maximum_braindamage): 22771 Bind history_timestamp_format_string here. 22772 227732005-04-22 John W. Eaton <jwe@octave.org> 22774 22775 * version.h (OCTAVE_VERSION): Now 2.9.2. 22776 (OCTAVE_API_VERSION): Now api-v15. 22777 22778 * pager.cc (default_pager): Also append -X. 22779 22780 * DLD-FUNCTIONS/dispatch.cc (Fdispatch): Dispatch help on "string" 22781 and "sq_string" types. 22782 (dispatch_record): Add extra space to force new paragraph after 22783 each dispatched function name if we are formatting with Texinfo. 22784 Force noindent of preceding "Overloaded function:" tag. 22785 227862005-04-21 John W Eaton <jwe@octave.org> 22787 22788 * ls-mat5.cc (read_mat5_binary_element): Only read sparse matrix 22789 values if sizeof (int) == sizeof (octave_idx_type). 22790 22791 * DLD-FUNCTIONS/colamd.cc: These functions only work if 22792 sizeof (int) == sizeof (octave_idx_type). 22793 22794 * Makefile.in (parse.cc): Expect 14 shift/reduce conflicts. 22795 22796 * parse.y (USING TITLE WITH AXES COLON OPEN_BRACE CLEAR): 22797 Delete unused tokens. 22798 22799 * DLD-FUNCTIONS/__qp__.cc (qp): Use octave_idx_type where needed. 22800 22801 * DLD-FUNCTIONS/__qp__.cc: New file. 22802 * Makefile.in (DLD_XSRC): Add it to the list. 22803 228042005-04-20 John W. Eaton <jwe@octave.org> 22805 22806 * lex.l (IDENT): Allow $ in identifiers. 22807 * utils.cc (valid_identifier): Likewise. 22808 228092005-04-19 John W. Eaton <jwe@octave.org> 22810 22811 * toplev.cc (Fsystem): Move enum exec_type declaration to file 22812 scope and rename system_exec_type. Change all uses. 22813 228142005-04-14 David Bateman <dbateman@free.fr> 22815 22816 * load-save.cc (Vdefault_save_format, Voctave_core_file_format): 22817 Delete variables. 22818 (Vdefault_save_options, Voctave_core_file_options): New variables. 22819 (get_save_format): Delete function. 22820 (parse_save_options (const string_vector&, ...), 22821 parse_save_options (const std::string&, ...)): New functions. 22822 (dump_octave_core): Allow save_as_floats to be used. 22823 (dump_octave_core): Parse save options. 22824 (Fsave): Split parsing of options, and default formats. 22825 (default_save_format): Delete function and DEFVAR. 22826 (default_save_options): New function. DEFVAR it. 22827 (octave_core_file_format): Delete function and DEFVAR. 22828 (octave_core_file_options): New function. DEFVAR it. 22829 22830 * octave.cc (default_save_format): Delete binding 22831 (default_save_options): New bindings 22832 22833 * Makefile.in: Add luinc.cc to DLD_XSRC. 22834 * DLD-FUNCTIONS/luinc.cc: New file for incomplete LU factorization. 22835 22836 * ov-bool-sparse.h (index_vector): New function. 22837 * ov-re-sparse.cc (index_vector): Ditto. 22838 * ov-re-sparse.h (index_vector): Definition. 22839 22840 * ov-mapper.cc (any_element_less_than, any_element_greater_than): 22841 New versions for SparseMatrix 22842 (SPARSE_MAPPER_LOOP_2, SPARSE_MAPPER_LOOP_1, SPARSE_MAPPER_LOOP): 22843 New macros. 22844 (octave_mapper::apply): Add special cases for sparse arguments to 22845 the mapper functions 22846 22847 * ov-re-sparse.cc (streamoff_array_value): Use octave_idx_type. 22848 (convert_to_str_internal): New function. 22849 * ov-re-sparse.h (convert_to_str_internal): Definition. 22850 22851 * DLD-FUNCTIONS/sparse.cc (Fsparse): More care for nargin=2 case. 22852 22853 * DLD-FUNCTIONS/splu.cc (Fsplu): Use octave_idx_type. 22854 228552005-04-14 John W. Eaton <jwe@octave.org> 22856 22857 * strfns.cc (Fchar): If arg is a dq string, return a dq string. 22858 22859 * pt-mat.cc (Vwarn_string_concat): New static variable. 22860 (symbols_of_pt_mat): DEFVAR it. 22861 (warn_string_concat): New function. 22862 (maybe_warn_string_concat): New function. 22863 (tree_matrix::rvalue): If all args are single quoted strings, 22864 create a single quoted string object. If all args are strings 22865 (any type), create a double quoted string object. If a mixture of 22866 string types, maybe warn. 22867 (class tm_row_const, class tm_row_const_rep, class tm_const): 22868 Note whether all values are double or single quoted strings. 22869 22870 * ov.h (octave_value::is_dq_string): New function. 22871 228722005-04-13 John W. Eaton <jwe@octave.org> 22873 22874 * strfns.cc (Fchar): Create sq_string objects here. 22875 228762005-04-12 John W. Eaton <jwe@octave.org> 22877 22878 * file-io.cc (Ffprintf, Fprintf, Fsprintf): 22879 Pass octave_value to octave_stream::printf for FMT. 22880 (Fscanf, Fsscanf): Likewise, for octave_stream::scanf and 22881 octave_stream::oscanf. 22882 22883 * oct-stream.cc, oct-stream.h (octave_stream::printf, 22884 octave_stream::scanf, octave_stream::oscanf): New versions that 22885 accept an octave_value for FMT. 22886 (octave_stream::puts): New version that accepts octave_value for 22887 value to print. 22888 (octave_base_stream::do_scanf): If all_char_conv, force 22889 conversion to string to avoid warning. 22890 22891 * ov-str-mat.h, ov-str-mat.cc (octave_char_matrix_sq_str): New class. 22892 (octave_char_matrix_dq_str): New typedef. 22893 22894 * ov.h, ov.cc: All string constructors now take type argument. 22895 22896 * ov.cc (install_types): Register octave_char_matrix_sq_str. 22897 22898 * ov.h (octave_value::convert_to_str): New arg, type. 22899 (octave_value::convert_to_str_internal): Likewise. 22900 Change all derived classes. 22901 22902 * ov.h (octave_value::is_sq_string): New predicate. 22903 22904 * octave.gperf (__FILE__): Now a DQ_STRING. 22905 22906 * ls-mat4.cc (read_mat_binary_data): Force sq strings here. 22907 * ls-mat5.cc (read_mat5_binary_element): And here. 22908 22909 * lex.l (<COMMAND_START>[\;\,]): Return SQ_STRING, not STRING. 22910 (<COMMAND_START>[^#% \t\r\n\;\,\"\'][^ \t\r\n\;\,]*{S}*): Likewise. 22911 (handle_string): Type of string to return depends on delimeter. 22912 22913 * parse.y (DQ_STRING, SQ_STRING): New token types. 22914 (STRING): Delete token type. 22915 (string): New non-terminal. 22916 (constant): Recognize string here instead of STRING. 22917 (word_list): Likewise. 22918 (opt_sep): Handle DQ_STRING and SQ_STRING. 22919 22920 * OPERATORS/op-str-m.cc, OPERATORS/op-str-s.cc, 22921 OPERATORS/op-str-str.cc: Define operators for both sq and dq 22922 strings. 22923 229242005-04-08 John W. Eaton <jwe@octave.org> 22925 22926 * Makefile.in (clean): Use exact filenames instead of *.xxx. 22927 Also remove PKG_ADD. 22928 (DISTFILES): Add gplot.cc to the list. 22929 (maintainer-clean): Remove gplot.cc here. 22930 22931 * Initial merge of 64-bit changes from Clinton Chee: 22932 22933 2005-04-07 John W. Eaton <jwe@octave.org> 22934 22935 * ls-oct-ascii.h, ls-oct-ascii.cc (extract_keyword): Now template 22936 functions defined in the header file. 22937 22938 * ls-mat5.cc, ov-base-sparse.h, ov-base.h, ov-bool-sparse.cc 22939 ov-cx-sparse.cc, ov-re-sparse.cc, ov.cc, pt-loop.cc, 22940 sparse-xdiv.cc, sparse-xpow.cc, DLD-FUNCTIONS/sparse.cc, 22941 DLD-FUNCTIONS/spdet.cc: 22942 Use octave_idx_type instead of int where needed. 22943 22944 2005-03-31 Clinton Chee <chee@parallel.hpc.unsw.edu.au> 22945 22946 * Cell.cc, Cell.h, data.cc, defaults.cc, dirfns.cc, file-io.cc, 22947 gripes.cc, gripes.h, ls-mat-ascii.cc, ls-mat4.cc, ls-oct-ascii.cc, 22948 oct-map.cc, oct-map.h, oct-obj.cc, oct-obj.h, oct-stream.cc, 22949 oct-stream.h, octave.cc, ops.h, ov-base-mat.cc, ov-base.h, 22950 ov-bool-mat.cc, ov-cell.cc, ov-cs-list.cc, ov-cx-mat.cc, 22951 ov-intx.h, ov-list.cc, ov-mapper.cc, ov-range.cc, ov-range.h, 22952 ov-re-mat.cc, ov-scalar.h, ov-str-mat.cc, ov-struct.cc, ov.cc, 22953 ov.h, pr-output.cc, pt-arg-list.cc, pt-cell.cc, pt-loop.cc, 22954 pt-mat.cc, pt-select.cc, symtab.h, utils.cc, utils.h, xdiv.cc, 22955 xpow.cc: 22956 Use octave_idx_type instead of int where needed. 22957 22958 2005-04-01 John W. Eaton <jwe@octave.org> 22959 22960 * toplev.cc (octave_config_info): Add USE_64_BIT_IDX_T to the list. 22961 * oct-conf.h.in (OCTAVE_CONF_USE_64_BIT_IDX_T): Substitute here. 22962 22963 2005-03-31 John W. Eaton <jwe@octave.org> 22964 22965 * DLD-FUNCTIONS/sort.cc: Don't use unsigned int for index into 22966 dim_vector, or cast dim to unsigned int. 22967 (Fsort): No need to cast arg before asking for dims. 22968 22969 * DLD-FUNCTIONS/gcd.cc (Fgcd): Use OCTAVE_LOCAL_BUFFER to allocate 22970 local array of NDArray objects. 22971 22972 2005-03-31 Clinton Chee <chee@parallel.hpc.unsw.edu.au> 22973 22974 * DLD-FUNCTIONS/balance.cc, DLD-FUNCTIONS/besselj.cc, 22975 DLD-FUNCTIONS/chol.cc, DLD-FUNCTIONS/colloc.cc, 22976 DLD-FUNCTIONS/daspk.cc, DLD-FUNCTIONS/dasrt.cc, 22977 DLD-FUNCTIONS/dassl.cc, DLD-FUNCTIONS/det.cc, 22978 DLD-FUNCTIONS/eig.cc, DLD-FUNCTIONS/expm.cc, DLD-FUNCTIONS/fft.cc, 22979 DLD-FUNCTIONS/fft2.cc, DLD-FUNCTIONS/fftn.cc, 22980 DLD-FUNCTIONS/fftw_wisdom.cc, DLD-FUNCTIONS/filter.cc, 22981 DLD-FUNCTIONS/find.cc, DLD-FUNCTIONS/fsolve.cc, 22982 DLD-FUNCTIONS/gcd.cc, DLD-FUNCTIONS/hess.cc, DLD-FUNCTIONS/inv.cc, 22983 DLD-FUNCTIONS/kron.cc, DLD-FUNCTIONS/lu.cc, 22984 DLD-FUNCTIONS/minmax.cc, DLD-FUNCTIONS/quad.cc, 22985 DLD-FUNCTIONS/qz.cc, DLD-FUNCTIONS/rand.cc, 22986 DLD-FUNCTIONS/schur.cc, DLD-FUNCTIONS/sort.cc, 22987 DLD-FUNCTIONS/sqrtm.cc, DLD-FUNCTIONS/svd.cc, 22988 DLD-FUNCTIONS/syl.cc: 22989 Use octave_idx_type instead of int where needed. 22990 229912005-04-06 David Bateman <dbateman@free.fr> 22992 22993 * Makefile.in: Link to UMFPACK_LIBS. Add zfstream.{cc,h} to build and 22994 dist files. 22995 22996 * zfstream.cc: New file for C++ binding for fstream like class for 22997 zlib. 22998 22999 * zfstream.h: Definition for fstream like C++ bindings to zlib. 23000 23001 * load-save.cc (static bool check_gzip_magic (const std::string&)): 23002 New function to look for GZIP magic 23003 (static load_save_format get_file_format (const istream &file)): New 23004 function split from old get_file_format but passed istream to allow 23005 use with zlib istream. 23006 (static load_save_format get_file_format (const std::string&, 23007 const std::string&, bool)): Modify the test uncompressed file first, 23008 then compressed version 23009 (Fload) Allow -v6, -6, -v7 and -7 options. Split load code to allow 23010 use of zlib. 23011 (Fsave) Allow -zip, -z, -v6, -6, -v7 and -7 options. Split save code 23012 to allow use of zlib. 23013 23014 * load-save.h: add LS_MAT7_BINARY to load_save_format enum 23015 23016 * ls-mat5.cc (read_mat5_binary_element): Test for miCOMPRESSED flag for 23017 matlab v7 files, and decompress data in memory. Allow reading of matlab 23018 logical variables either in mxDOUBLE_CLASS or mxUINT8_CLASS. 23019 (int save_mat5_array_length(const double*, ...): New function to 23020 calculate number of bytes used to save NDArray. 23021 (int save_mat5_array_length(const Complex*, ...): New function to 23022 calculate number of bytes used to save ComplexNDArray. 23023 (int save_mat5_element_length): New function to find number of bytes 23024 needed to save data element. 23025 (save_mat5_binary_element): New input arguments, mat7_format and 23026 compressing, that define if we are in a matlab v7 format and where we 23027 are currently compressing the data element. If mat7_format use 23028 miCOMPRESSED flag for matlab v7 files, and compress data in memory. 23029 Add capability to save logical variables as mxUINT8_CLASS. If v7 23030 format maximum variable length is 63 characters and not 31. Use the 23031 save_mat5_element_length function to pre-calculate the number of bytes 23032 taken by a variable rather than use a negative seek to correct after 23033 writing (zlib can't do negative seeking) 23034 23035 * ls-mat5.h: Add to miCOMPRESSED, miUTF8, miUTF16 and miUTF32 flags to 23036 the enum mat5_data_type. 23037 (save_mat5_binary_element): Add args mat7_format and compressing to the 23038 definition. 23039 230402005-04-06 John W. Eaton <jwe@octave.org> 23041 23042 * OPERATORS/op-scm-scm.cc: Delete #pragma implementation. 23043 230442005-04-05 John W. Eaton <jwe@octave.org> 23045 23046 * ov-ch-mat.h (octave_char_matrix::index_vector): New function. 23047 23048 * oct-stream.cc (BEGIN_C_CONVERSION): Clear stream state if 23049 we hit EOF after we read something. 23050 23051 * pt-assign.cc (tree_multi_assignment::rvalue): 23052 Allow assignments of the form [a,b,c] = x{:}. 23053 230542005-03-30 John W. Eaton <jwe@octave.org> 23055 23056 * mappers.cc (install_mapper_functions): Use std:: as needed. 23057 * defun-int.h (DEFUN_MAPPER_INTERNAL): Don't use X_CAST on 23058 function pointer args. 23059 23060 * ov-complex.cc, ov-cx-mat.cc, xpow.cc, ls-mat5.cc: Use std:: for 23061 Complex functions instead of relying on wrappers from oct-cmplx.h. 23062 23063 * oct-stream.cc (octave_scan): Initialize c1 to EOF. 23064 230652005-03-29 John W. Eaton <jwe@octave.org> 23066 23067 * utils.cc (get_dimensions): Produce error instead of warning if 23068 given a matrix argument. 23069 23070 * load-save.cc (Fload, Fsave): Also accept -V4 option. 23071 23072 * ls-hdf5.h (hdf5_fstreambase::hdf5_fstreambase, 23073 hdf5_fstreambase::open): Use & instead of == to test whether mode 23074 is std::ios::in or std::ios::out. 23075 (hd5_ifstream::istream, hd5_ifstream::open, hd5_ofstream::istream, 23076 hd5_ofstream::open): Default mode now includes binary flag. 23077 230782005-03-28 John W. Eaton <jwe@octave.org> 23079 23080 * oct-stream.cc (octave_stream::write): For compatibility, Write 23081 zeros instead of seeking if SKIP is nonzero. 23082 23083 * DLD-FUNCTIONS/gplot.l (Fgraw): Recommend __gnuplot_raw__, not 23084 __gnuplot__raw__. 23085 (Fgshow): Recommend __gnuplot_show__, not __gnuplot__show__. 23086 Don't add "mark_as_rawcommand ("replot")" to PKG_ADD file. 23087 230882005-03-26 John W. Eaton <jwe@octave.org> 23089 23090 * input.cc (gnu_readline): Don't wrap call to command_editor::readline 23091 with {BEGIN,END}_INTERRUPT_IMMEDIATELY_IN_FOREIGN_CODE. 23092 230932005-03-25 John W. Eaton <jwe@octave.org> 23094 23095 * toplev.cc (main_loop): Don't use octave_set_current_context here. 23096 23097 * pt-loop.cc (simple_for_loop::eval): In for i = matrix ... end, 23098 skip loop if matrix is empty. Likewise for cell arrays. 23099 231002005-03-24 John W. Eaton <jwe@octave.org> 23101 23102 * DLD-FUNCTIONS/__glpk__.cc (F__glpk__): Texinfoize doc string. 23103 23104 * Makefile.in (install-oct): Always create $(octfiledir) and 23105 install PKG_ADD file there. 23106 23107 * octave.cc (octave_main): Fix logic in test for exit after 23108 evaluating --eval option code. 23109 231102005-03-23 John W. Eaton <jwe@octave.org> 23111 23112 * DLD-FUNCTIONS/__glpk__.cc (F__glpk__): Require 9 arguments. 23113 Print error messages and return early if value extractions fail. 23114 Default for message level now 0. 23115 Rename local variable error to be errnum. 23116 (glpk_fault_hook): Call message instead of writing to octave_stderr. 23117 (glpk_fault_hook): Call error instead of writing to octave_stderr. 23118 (glpk): Likewise. 23119 Declare mark static. Delete declaration of fperr. 23120 (glpk): Delete unnecessary casts. 23121 23122 * DLD-FUNCTIONS/__glpk__.cc (OCTAVE_GLPK_GET_REAL_PARAM, 23123 OCTAVE_GLPK_GET_INT_PARAM): New macros. 23124 (F__glpk__): Use them. 23125 23126 * DLD-FUNCTIONS/__glpk__.cc (F__glpk__): Accept lpsolver and 23127 save_pb in param arg instead of as separate args. 23128 Arg list now matches new interface for glpk.m. 23129 Don't return lambda and redcosts fields in extra if isMIP. 23130 23131 * toplev.cc (do_octave_atexit): Call reset_error_handler before 23132 each call to feval. 23133 231342005-03-22 John W. Eaton <jwe@octave.org> 23135 23136 * Makefile.in: Add special rule for __glpk__.oct. 23137 23138 * toplev.cc (octave_config_info): Add GLPK_LIBS to the list. 23139 * oct-conf.h.in (OCTAVE_CONF_GLPK_LIBS): Substitute here. 23140 23141 * DLD-FUNCTIONS/__glpk__.cc (F__glpk__, glpk): 23142 Adapt to Octave coding style. 23143 (glpk): Move decls closer to first use. 23144 (F__glpk__): Eliminate unnecessary loop seting inf values. 23145 Ensure that isMIP is initialized. 23146 Declare sense, nz, and isMIP volatile to avoid GCC warnings that 23147 these variables might be might be clobbered by `longjmp' or `vfork' 23148 23149 * DLD-FUNCTIONS/__glpk__.cc: New file. 23150 23151 * Makefile.in (DLD_XSRC): Add it to the list. 23152 231532005-03-21 John W. Eaton <jwe@octave.org> 23154 23155 * octave.cc (maximum_braindamage): 23156 Don't set warn_matlab_incompatible to true. 23157 231582005-03-17 John W. Eaton <jwe@octave.org> 23159 23160 * lex.l (class bracket_brace_paren_nesting_level): Use static 23161 const int members instead of anonymous enum. 23162 231632005-03-16 John W. Eaton <jwe@octave.org> 23164 23165 * ov-struct.cc (octave_struct::save_ascii): Don't convert Cell 23166 object to cs-list. 23167 (octave_struct::save_binary): Likewise 23168 (octave_struct::save_hdf5): Likewise. 23169 23170 * DLD-FUNCTIONS/gplot.l (Fset, Fshow): Delete. 23171 (F__gnuplot_plot__): Rename from Fgplot. 23172 (F__gnuplot_splot__): Rename from Fgsplot. 23173 (F__gnuplot_raw__): Rename from Fgraw. 23174 (F__gnuplot_set__): Rename from Fgset. 23175 (F__gnuplot_show__): Rename from Fgshow. 23176 (F__gnuplot_replot__): Rename from Freplot. 23177 (WARN_DEPRECATED, DEPRECATED_BODY): New macros. 23178 (Fgplot, Fgsplot, Fgraw, Fgset, Fgshow): New functions. 23179 231802005-03-15 John W. Eaton <jwe@octave.org> 23181 23182 * lex.l (<COMMAND_START>{NL}): Reset lexer_flags.doing_rawcommand 23183 state here. 23184 23185 * version.h (OCTAVE_API_VERSION): Now 2.9.0. 23186 (OCTAVE_API_VERSION): Now api-v14. 23187 23188 * Makefile.in (INCLUDES): Delete sparse-ops.h from the list. 23189 23190 * cellfun.cc: New function from Octave-forge. Adapt to Octave 23191 coding standards. 23192 * Makefile.in (DLD_XSRC): Add it to the list. 23193 231942005-03-14 John W. Eaton <jwe@octave.org> 23195 23196 * DLD-FUNCTIONS/dispatch.cc (Fbuiltin): Avoid crash if symbol 23197 lookup fails. 23198 231992005-03-10 John W. Eaton <jwe@octave.org> 23200 23201 * toplev.cc (Foctave_config_info): Print error instead of crashing 23202 if struct does not contain field we are looking for. 23203 232042005-03-09 John W. Eaton <jwe@octave.org> 23205 23206 * load-save.cc (Fload, Fsave): Accept -text as an alias for -ascii. 23207 Issue warning for future change in meaning of -ascii. 23208 23209 * Makefile.in (bin-dist): Delete target. 23210 (BINDISTFILES, BINDISTLIBS): Delete variables. 23211 232122005-03-04 John W. Eaton <jwe@octave.org> 23213 23214 * octave.cc (octave_main): Concatenate all --eval arguments. 23215 232162005-03-03 John W. Eaton <jwe@octave.org> 23217 23218 * input.cc (input_from_command_line_file): Move definition here. 23219 * parse.y: From here. 23220 * input.h (input_from_command_line_file): Move decl here. 23221 * parse.h: From here. 23222 23223 * input.cc (octave_gets): 23224 Don't save history if input is from command line file. 23225 23226 * parse.y (parse_and_execute, parse_fcn_file, eval_string): 23227 Don't alter value of input_from_command_line_file here. 23228 (input_from_command_line_file): Default value is false. 23229 (eval_string): Turn off line editing here. 23230 23231 * toplev.cc, toplev.h (main_loop): Delete fun_to_call arg and all uses. 23232 23233 * octave.cc (fun_to_call): Delete static variable. 23234 (persist, code_to_eval): New static variables. 23235 (long_opts): Delete --funcall, add --eval and --persist. 23236 (usage_string, verbose_usage, octave_main): Likewise. 23237 (FUNCALL_OPTION): Delete. 23238 (EVAL_OPTION, PERSIST_OPTION): New macros. 23239 (maximum_braindamage): Set persist to true. 23240 (execute_eval_option_code): New function. 23241 (restore_program_name): New function. 23242 (execute_command_line_file): New function. 23243 (octave_main): Call execute_eval_option code and 23244 execute_command_line file. If persist, go interactive even after 23245 evaluating --eval code and/or command-line file. 23246 23247 * ov-bool-sparse.h, ov-bool-sparse.cc 23248 (octave_sparse_bool_matrix::sparse_matrix_value, 23249 octave_sparse_bool_matrix::sparse_complex_matrix_value): 23250 Accept bool arg. 23251 23252 * parse.y (looks_like_copyright): Check first 9 characters, not 14. 23253 232542005-03-02 John W. Eaton <jwe@octave.org> 23255 23256 * oct-stream.cc (octave_scan (std::istream&, const 23257 scanf_format_elt&, double*)): New specialization to handle Inf, 23258 NaN, and NA. 23259 23260 * parse.y (looks_like_copyright): 23261 Rename from looks_like_octave_copyright. Change all uses. 23262 Simply match "Copyright". 23263 232642005-03-01 John W. Eaton <jwe@octave.org> 23265 23266 * DLD-FUNCTIONS/odessa.cc: Delete. 23267 * Makefile.in (DLD_XSRC): Remove it from the list. 23268 (OPT_HANDLERS): Remove ODESSA-opts.cc from the list. 23269 232702005-02-28 John W. Eaton <jwe@octave.org> 23271 23272 * toplev.cc (octave_config_info): Remove LIBGLOB and GLOB_INCFLAGS 23273 from the list. 23274 * oct-conf.h.in (OCTAVE_CONF_LIBGLOB, OCTAVE_CONF_GLOB_INCFLAGS): 23275 Delete. 23276 * Makefile.in (OCTAVE_LIBS): Remove $(LIBGLOB) from the list. 23277 232782005-02-25 John W. Eaton <jwe@octave.org> 23279 23280 Sparse merge. 23281 23282 2005-02-25 John W. Eaton <jwe@octave.org> 23283 23284 * DLD-SRC/rand.cc (Frand): Accept "state" as an alias for "seed". 23285 23286 * DLD-SRC/dispatch.cc: New file. 23287 * Makefile.in (DLD_XSRC): Add it to the list. 23288 23289 2005-02-13 David Bateman <dbateman@free.fr> 23290 23291 * ov-fcn-inline.h, DLD-FUNCTIONS/spparms.cc, DLD-FUNCTIONS/gcd.cc: 23292 Remove additional licensing clause, with authors permission 23293 23294 * ov-base-sparse.h: New constructor to cache SparseType, not yet 23295 used 23296 * ov-re-sparse.h: likewise 23297 * ov-cx-sparse.h: likewise 23298 * ov.h: Likewise 23299 23300 * sparse-xdiv.cc: Remove spparms umfpack flag 23301 23302 * DLD-FUNCTIONS/spparms.cc: Warning that umfpack flag is ignored. 23303 23304 2005-01-16 David Bateman <dbateman@free.fr> 23305 23306 * ls-mat5.cc (read_mat5_integer_data): Change "T &m" to "T *m" and 23307 instantiate with values like octave_int8 rather than int8NDArray. 23308 Modify function to fit 23309 (read_mat5_binary_element): Use new form of read_mat_integer_data 23310 to read data directly into sparse matrix 23311 (write_mat5_integer_data): Change "const T &m" to "T *m", etc. New 23312 instantiation with int. 23313 (save_mat5_binary_element): Modify to save sparse data 23314 23315 2005-01-15 David Bateman <dbateman@free.fr> 23316 23317 * data.cc (do_cat): Use first non-empty matrix as base for 23318 concatenation. 23319 * pt-mat.cc (tree_matrix::rvalue): ditto. 23320 23321 2005-01-14 John W. Eaton <jwe@octave.org> 23322 23323 * ov.cc (do_cat_op): When checking for empty args, use 23324 all_zero_dims, not numel. 23325 * ov.h (octave_value::all_zero_dims): New function. 23326 23327 * ov-bool-sparse.cc (try_narrowing_conversion): Convert to 23328 bool_matrix, not matrix. 23329 23330 2005-01-13 David Bateman <dbateman@free.fr> 23331 23332 * data.cc (make_diag): Use numel not capacity to remove ambiguity. 23333 * ov.h (octave_value::capacity): New virtual funtion. 23334 * ov-base.h (octave_base_value::capacity): New function calls numel. 23335 * data.cc (Freshape): Use arg.numel() rather than arg.dims().numel() 23336 since sparse numel now consistent. 23337 * symtab.h (symbol_record::symbol_def::capacity, 23338 symbol_record::capacity): New methods. 23339 * symtab.cc (symbol_record::print_symbol_info_line, 23340 symbol_table::parse_whos_line_format, symbol_table::maybe_list): 23341 used capacity() and not numel() to properly assess size of 23342 sparse objects. 23343 * ov-base-sparse.h (octave_base_sparse::capacity): New function, 23344 (octave_base_sparse::numel): Delete. 23345 * ov-re-sparse.cc (octave_sparse_matrix::streamoff_array_value): 23346 Only fill from non-zero elements of sparse array. 23347 * DLD-FUNCTIONS/splu.cc (Fsplu): Change use of nelem to numel. 23348 * ov.cc (do_cat_op): Early return for concatenation with empty 23349 objects. 23350 23351 2005-01-12 John W. Eaton <jwe@octave.org> 23352 23353 * DLD-FUNCTIONS/find.cc (Ffind): Make it work for character strings. 23354 23355 2005-01-11 John W. Eaton <jwe@octave.org> 23356 23357 * OPERATORS/op-double-conv.cc: New conversions for sparse_matrix 23358 and sparse_bool_matrix to matrix. 23359 23360 2005-01-11 David Bateman <dbateman@free.fr> 23361 23362 * ov-base-sparse.h (octave_base_sparse::any, 23363 octave_base_sparse::all): Use new constructors, etc as pointed out 23364 by JWE. 23365 23366 2005-01-10 John W. Eaton <jwe@octave.org> 23367 23368 * DLD-FUNCTIONS/sparse.cc (MINMAX_BODY, Fspatan2, make_spdiag): 23369 Write retval(0) = result instead of retval(0) = octave_value (result). 23370 * DLD-FUNCTIONS/splu.cc (Fsplu): Likewise. 23371 23372 2005-01-08 David Bateman <dbateman@free.fr> 23373 23374 * ls-mat5.cc (read_mat5_integer_data): Instantiate for Array<int> 23375 (read_mat5_binary_element): Add code to read sparse matrices 23376 saved in matlab v5 format 23377 23378 2005-01-07 David Bateman <dbateman@free.fr> 23379 23380 * OPERATORS/op-bm-sbm.cc, OPERATORS/op-b-sbm.cc, 23381 OPERATORS/op-cm-scm.cc, OPERATORS/op-cm-sm.cc, 23382 OPERATORS/op-cs-scm.cc, OPERATORS/op-cs-sm.cc, 23383 OPERATORS/op-m-scm.cc, OPERATORS/op-m-sm.cc, 23384 OPERATORS/op-sbm-b.cc, OPERATORS/op-sbm-bm.cc, 23385 OPERATORS/op-sbm-sbm.cc, OPERATORS/op-scm-cm.cc, 23386 OPERATORS/op-scm-cs.cc, OPERATORS/op-scm-m.cc, 23387 OPERATORS/op-scm-s.cc, OPERATORS/op-scm-scm.cc, 23388 OPERATORS/op-scm-sm.cc, OPERATORS/op-sm-cm.cc, 23389 OPERATORS/op-sm-cs.cc, OPERATORS/op-sm-m.cc, 23390 OPERATORS/op-sm-s.cc, OPERATORS/op-sm-scm.cc, 23391 OPERATORS/op-sm-sm.cc, OPERATORS/op-s-scm.cc, 23392 OPERATORS/op-s-sm.cc: New octave_value constructors allow 23393 macros from ops.h to be used rather than sparse-ops.h. Remove 23394 other explicit uses of maybe_mutate. 23395 23396 * sparse-ops.h: delete file. 23397 23398 * colamd.cc (Fcolamd, Fsymamd, Fetree): Remove no longer needed 23399 use of get_rep() and use the sparse matrix conversion functions 23400 directly. 23401 23402 * data.cc (Freshape): Use arg.dims().numel() rather than 23403 arg.numel() due to definition of numel for sparse matrices. 23404 23405 * sparse.cc (Ffull, Fspfind, SPARSE_DIM_ARG_BODY, MINMAX_BODY, 23406 Fspatan2, make_spdiag): Convert to use new octave_value sparse 23407 constructors, sparse matrix conversion functions and remove 23408 maybe_mutate calls. 23409 (Fspreshape): Delete 23410 23411 * splu.cc (Fsplu): Remove remaining explicit octave_value 23412 construction. 23413 23414 * ov-base-sparse.h (do_index_op, resize, reshape, permute, squeeze): 23415 Move these methods from the derived classes. 23416 * ov-base-spase.cc (do_index_op): Move this method from the derived 23417 classes. 23418 * ov-bool-sparse.h (do_index_op, resize, reshape, permute, squeeze): 23419 delete. 23420 * ov-re-spase.cc (do_index_op): delete. 23421 * ov-cx-sparse.h (do_index_op, resize, reshape, permute, squeeze): 23422 delete. 23423 * ov-cx-spase.cc (do_index_op): delete. 23424 * ov-bool-spase.cc (do_index_op): delete. 23425 * ov-re-sparse.h (do_index_op, resize, reshape, permute, squeeze): 23426 delete. 23427 23428 * DLD-FUNCTIONS/spdet.cc (Fspdet): Remove use of SparseDet and 23429 SparseComplexDET classes and use DET and ComplexDET classes. 23430 23431 * DLD-FUNCTIONS/colamd.cc op-bm-sbm.cc OPERATORS/op-b-sbm.cc 23432 OPERATORS/op-cm-scm.cc OPERATORS/op-cm-sm.cc OPERATORS/op-cs-scm.cc 23433 OPERATORS/op-cs-sm.cc OPERATORS/op-fil-sbm.cc OPERATORS/op-fil-scm.cc 23434 OPERATORS/op-fil-sm.cc OPERATORS/op-m-scm.cc OPERATORS/op-m-sm.cc 23435 OPERATORS/op-sbm-b.cc OPERATORS/op-sbm-bm.cc OPERATORS/op-sbm-sbm.cc 23436 OPERATORS/op-scm-cm.cc OPERATORS/op-scm-cs.cc OPERATORS/op-scm-m.cc 23437 OPERATORS/op-scm-s.cc OPERATORS/op-scm-scm.cc OPERATORS/op-scm-sm.cc 23438 OPERATORS/op-sm-cm.cc OPERATORS/op-sm-cs.cc OPERATORS/op-sm-m.cc 23439 OPERATORS/op-sm-s.cc OPERATORS/op-sm-scm.cc OPERATORS/op-sm-sm.cc 23440 OPERATORS/op-s-scm.cc OPERATORS/op-s-sm.cc ov-base-sparse.cc 23441 ov-base-sparse.h ov-bool-sparse.cc ov-bool-sparse.h ov-cx-sparse.cc 23442 ov-cx-sparse.h ov-re-sparse.cc ov-re-sparse.h sparse-base-lu.cc 23443 sparse-base-lu.h DLD-FUNCTIONS/sparse.cc sparse-xdiv.cc sparse-xdiv.h 23444 sparse-xpow.cc sparse-xpow.h DLD-FUNCTIONS/spdet.cc 23445 DLD-FUNCTIONS/splu.cc DLD-FUNCTIONS/spparms.cc: Remove additional 23446 licensing clause with authors permission. 23447 23448 2005-01-05 David Bateman <dbateman@free.fr> 23449 23450 * DLD-FUNCTIONS/colamd.cc: Rename from colamdoct.cc. Base colamd.h 23451 now found in COLAMD/colamd.h. 23452 (Fcolamd): Return value is now used. 23453 (Fsymamd): ditto. 23454 23455 * Makefile.in: include colamd.cc in DLD_XSRC. 23456 23457 * ov.h (sparse_matrix_value, sparse_complex_matrix_value, 23458 sparse_bool_matrix_value): New virtual functions 23459 23460 * ov-base.cc (octave_base_value::sparse_matrix_value, 23461 octave_base_value::sparse_complex_matrix_value, 23462 octave_base_value::sparse_bool_matrix_value): New default sparse 23463 matrix extraction functions. 23464 23465 * ov-base.h (sparse_matrix_value, sparse_complex_matrix_value, 23466 sparse_bool_matrix_value): Declare them. 23467 23468 * ov-re-mat.cc (octave_matrix::sparse_matrix_value, 23469 octave_matrix::sparse_complex_matrix_value): Conversion functions. 23470 23471 * ov-re-mat.h (sparse_matrix_value, sparse_complex_matrix_value): 23472 Declare them. 23473 23474 * ov-cx-mat.cc (octave_complex_matrix::sparse_matrix_value, 23475 octave_complex_matrix::sparse_complex_matrix_value): Conversion 23476 functions. 23477 23478 * ov-cx-mat.h (sparse_matrix_value, sparse_complex_matrix_value): 23479 Declare them. 23480 23481 * ov-bool-mat.h (sparse_matrix_value, sparse_complex_matrix_value, 23482 sparse_bool_matrix_value): Conversion functions. 23483 23484 * DLD_FUNCTIONS/spdet.cc (Fspdet): Use the above constructors 23485 and conversion functions. 23486 * DLD_FUNCTIONS/splu.cc (Fsplu): ditto. 23487 23488 2004-12-30 John W. Eaton <jwe@octave.org> 23489 23490 * DLD-FUNCTIONS/splu.cc (Fsplu): Avoid shadow warnings. 23491 23492 * sparse-xpow.cc (elem_xpow): Delete unsed variables. 23493 * sparse-xdiv.cc (x_el_div): Likewise. 23494 23495 * DLD-FUNCTIONS/det.cc (Fdet): Delete unused argument nargout. 23496 * DLD-FUNCTIONS/spdet.cc (Fspdet): Likewise. 23497 23498 * DLD-FUNCTIONS/sparse.cc (Fnzmax): Return a value. 23499 23500 * ov.cc, ov.h (octave_value::octave_value (const SparseMatrix&), 23501 (octave_value::octave_value (const SparseBoolMatrix&), 23502 (octave_value::octave_value (const SparseComplexMatrix&)): 23503 New constructors. 23504 23505 2004-12-29 John W. Eaton <jwe@octave.org> 23506 23507 * DLD-FUNCTIONS/sparse.cc (SPARSE_DIM_ARG_BODY): Rename from 23508 DEFUN_DLD_SPARSE_DIM_ARG. Omit HELP arg. Omit DEFUN_DLD, so the 23509 macro only defines the function body. 23510 (Fspprod, Fspcumprod, Fspsum, Fspcumsum, Fspsumsq): Define with 23511 DEFUN_DLD, not DEFUN_DLD_SPARSE_DIM_ARG. Use SPARSE_DIM_ARG_BODY 23512 to define function body. 23513 23514 * DLD-FUNCTIONS/sparse.cc (load_sparse_type, sparse_type_loaded): 23515 Delete function, variable, and all uses. 23516 * ov.cc: Include ov-bool-sparse.h, ov-re-sparse.h, ov-cx-sparse.h. 23517 (install_types): Register sparse types. 23518 23519 Merge of sparse code from David Bateman <dbateman@free.fr> and 23520 Andy Adler <adler@site.uottawa.ca>. 23521 23522 * sparse-xdiv.cc, sparse-xpow.cc: New files. 23523 * Makefile.in (DIST_SRC): Add them to the list. 23524 23525 * sparse-ops.h sparse-xdiv.h, sparse-xpow.h: New files. 23526 * Makefile.in (INCLUDES): Add them to the list. 23527 23528 * DLD-FUNCTIONS/colamdoct.cc, DLD-FUNCTIONS/sparse.cc, 23529 DLD-FUNCTIONS/spdet.cc, DLD-FUNCTIONS/splu.cc, 23530 DLD-FUNCTIONS/spparms.cc: New files. 23531 * Makefile.in (DLD_XSRC): Add them to the list. 23532 23533 * ov-base-sparse.cc, ov-base-sparse.h, ov-bool-sparse.cc, 23534 ov-bool-sparse.h, ov-cx-sparse.cc, ov-cx-sparse.h, 23535 ov-re-sparse.cc, ov-re-sparse.h: New files. 23536 * Makefile.in (OV_SPARSE_SRC, OV_SPARSE_INCLUDES): New lists. 23537 (OV_SRC): Add $(OV_SPARSE_SRC) to the list. 23538 (INCLUDES): Add $(OV_SPARSE_INCLUDES) to the list. 23539 23540 * OPERATORS/op-bm-sbm.cc, OPERATORS/op-b-sbm.cc, 23541 OPERATORS/op-cm-scm.cc, OPERATORS/op-cm-sm.cc, 23542 OPERATORS/op-cs-scm.cc, OPERATORS/op-cs-sm.cc, 23543 OPERATORS/op-fil-sbm.cc, OPERATORS/op-fil-scm.cc, 23544 OPERATORS/op-fil-sm.cc, OPERATORS/op-m-scm.cc, 23545 OPERATORS/op-m-sm.cc, OPERATORS/op-sbm-b.cc, 23546 OPERATORS/op-sbm-bm.cc, OPERATORS/op-sbm-sbm.cc, 23547 OPERATORS/op-scm-cm.cc, OPERATORS/op-scm-cs.cc, 23548 OPERATORS/op-scm-m.cc, OPERATORS/op-scm-s.cc, 23549 OPERATORS/op-scm-scm.cc, OPERATORS/op-scm-sm.cc, 23550 OPERATORS/op-sm-cm.cc, OPERATORS/op-sm-cs.cc, 23551 OPERATORS/op-sm-m.cc, OPERATORS/op-sm-s.cc, 23552 OPERATORS/op-sm-scm.cc, OPERATORS/op-sm-sm.cc, 23553 OPERATORS/op-s-scm.cc, OPERATORS/op-s-sm.cc: New files. 23554 * Makefile.in (SPARSE_OP_XSRC): New list. 23555 (OP_XSRC): Add $(SPARSE_OP_XSRC) to the list. 23556 235572005-02-23 John W. Eaton <jwe@octave.org> 23558 23559 * parse.y (fold (tree_binary_expression*)): Skip constant folding 23560 for some expressions to preserve warnings. 23561 (Vwarn_associativity_change): New static variable. 23562 (warn_associativity_change): New function. 23563 (symbols_of_parse): DEFVAR warn_associativity_change. 23564 (maybe_warn_associativity_change): New function. 23565 (make_binary_op): Use it. 23566 235672005-02-22 John W. Eaton <jwe@octave.org> 23568 23569 * parse.y (POW, EPOW): Use %left associativity for compatibility. 23570 23571 * ov-base-int.cc (octave_baes_int_matrix<T>::load_binary): 23572 Handle arrays with only one dimension. 23573 * ov-bool-mat.cc (octave_bool_matrix::load_binary): Likewise. 23574 * ov-cell.cc (octave_cell::load_binary): Likewise. 23575 * ov-cell.cc (octave_complex_matrix::load_binary): Likewise. 23576 * ov-re-mat.cc (octave_matrix::load_binary): Likewise. 23577 * ov-str-mat.cc (octave_char_matrix_str::load_binary): Likewise. 23578 23579 * ov-mapper.cc (octave_mapper::subsref): Return retval after 23580 calling next_subsref. 23581 23582 * ov-mapper.cc (octave_builtin::subsref): If nargout is 0 and we 23583 have additional indexing to perform, set it to 1 before calling 23584 do_multi_index_op. 23585 23586 * oct-map.cc (Octave_map::intfield, Octave_map::stringfield): 23587 New functions. 23588 * oct-map.h: Provide decls. 23589 * DLD-FUNCTIONS/time.cc (extract_tm): Use intfield and stringfield 23590 to access map elements. 23591 235922005-02-21 John W. Eaton <jwe@octave.org> 23593 23594 * ov-builtin.cc (octave_builtin::subsref): If nargout is 0 and we 23595 have additional indexing to perform, set it to 1 before calling 23596 do_multi_index_op. 23597 * ov-usr-fcn.cc (octave_user_function::subsref): Likewise. 23598 23599 * DLD-FUNCTIONS/gplot.l (send_to_plot_stream): 23600 Replot with no previous plot is a no-op. 23601 (makeplot): Likewise. 23602 (Vautomatic_replot): Don't use this variable in low-level functions. 23603 236042005-02-18 John W. Eaton <jwe@octave.org> 23605 23606 * Makefile.in (oct-gperf.h): Remove -E from list of gperf options. 23607 23608 * data.cc (do_permute): Use zero-based indexing for permutation 23609 vector that is passed to octave_value::permute method. 23610 Allow permutation vector longer than number of dimenensions of 23611 permuted matrix. 23612 236132005-02-17 John W. Eaton <jwe@octave.org> 23614 23615 * version.h (OCTAVE_API_VERSION): Now 2.1.64-cvs. 23616 (OCTAVE_API_VERSION): Now api-v12-cvs. 23617 236182005-02-16 John W. Eaton <jwe@octave.org> 23619 23620 * ov-base-mat.h (octave_base_matrix::squeeze): Explicitly convert 23621 result of matrix.squeeze() to MT. 23622 236232005-02-15 John W. Eaton <jwe@octave.org> 23624 23625 * dirfns.cc (deftypefn): Don't print to octave_stdout if nargout > 0. 23626 23627 * pt-mat.cc (tree_matrix::rvalue): Min size of ra_idx is 2. 23628 23629 * file-io.cc (Ffclear): New function. 23630 23631 * sighandlers.h: Define SIGCHLD if it is not already defined and 23632 SIGCLD is defined. 23633 23634 * sighandlers.cc (octave_set_signal_handler): Request system calls 23635 restarted if interrupted by signals (except for SIGALRM). 23636 * dirfns.cc (Fls): Don't bother with sleeping or checking errno. 23637 236382005-02-11 John W. Eaton <jwe@octave.org> 23639 23640 * sighandlers.cc (sigpipe_handler): Don't try to take action. 23641 Set octave_signal_caught and octave_signals_caught here. 23642 (sigchld_handler): Call octave_child_list::wait here. 23643 Set octave_signal_caught and octave_signals_caught here. 23644 (octave_signals_caught): New static file-scope variable. 23645 (sigint_handler): Also set octave_signal_caught. 23646 23647 * sighandlers.cc (sigpipe_handler): 23648 23649 * DLD-FUNCTIONS/gplot.l (plot_stream_event_handler): Rename from 23650 plot_stream_death_handler. Return true if plotter has exited. 23651 Call close_plot_stream with false arg. 23652 (plot_stream_pid): Delete static file-scope variable and all uses. 23653 (close_plot_stream): New arg, remove_from_child_list, with default 23654 value of true. Only call octave_child_list::remove if 23655 remove_from_child_list is true. 23656 23657 * pager.cc (octave_pager_pid, saved_interrupt_handler, 23658 interrupt_handler_saved): Delete static file-scope variables and 23659 all uses. 23660 (clear_external_pager): Do nothing if external_pager is 0. 23661 (pager_event_handler): Rename from pager_death_handler. 23662 Improve warning message. Return true if pager has exited. 23663 (octave_pager_buf::do_sync): Check errno == EPIPE after write. 23664 (flush_octave_stdout): No need to check external_pager before 23665 calling clear_external_pager. 23666 23667 * toplev.cc (recover_from_exception): Set octave_signal_caught to zero. 23668 (main_loop): Set octave_signal_hook to octave_signal_handler here. 23669 23670 * sighandlers.cc (octave_signal_handler): New function. 23671 * sighanlders.h: Provide decl. 23672 23673 * sighandlers.cc (install_signal_handlers): Initialize 23674 octave_signals_caught. 23675 23676 * sighandlers.h (octave_child::status, have_status): New data members. 23677 (child_event_handler): Rename from dead_child_handler. 23678 Change all uses. 23679 (octave_child_list::reap, octave_child_list::wait): New functions. 23680 (octave_child_list::length, octave_child_list::do_length, 23681 octave_child_list::elem, octave_child_list::do_elem, 23682 octave_child_list::list, octave_child_list::curr_len): Delete. 23683 23684 * sighandlers.h, sighandlers.cc 23685 (octave_child_list::octave_child_list_rep): New class. 23686 23687 * input.cc (gnu_readline, octave_gets, get_user_input): 23688 Call OCTAVE_QUIT before doing anything. 23689 23690 * base-list.h (octave_base_list<T>::remove_if): New function. 23691 23692 * TEMPLATE-INST/Array-oc.cc: Delete. 23693 * Makefile.in (TI_XSRC): Remove from list. 23694 236952005-02-10 Driss Ghaddab <driss.ghaddab@free.fr> 23696 23697 * cutils.c (octave_usleep) [HAVE_POLL]: Fix typo. 23698 236992005-02-10 John W. Eaton <jwe@octave.org> 23700 23701 * variables.cc (symbol_exist): Don't search path if explicitly 23702 asked for a variable or builtin. From David Bateman 23703 <dbateman@free.fr>. 23704 237052005-02-09 John W. Eaton <jwe@octave.org> 23706 23707 * variables.cc (same_file): New static function. 23708 (symbol_out_of_date): Use it. 23709 23710 * syscalls.cc (Fcanonicalize_file_name): New function. 23711 237122005-02-08 Walter Landry <landry@osc.edu> 23713 23714 * symtab.h (symbol_record::mark_as_command): Avoid AIX compiler error. 23715 237162005-02-07 John W. Eaton <jwe@octave.org> 23717 23718 * DLD-FUNCTIONS/find.cc (find_nonzero_elem_idx): Return [] instead 23719 of [](1x0) for scalar arg of zero. 23720 237212005-02-06 John W. Eaton <jwe@octave.org> 23722 23723 * DLD-FUNCTIONS/gplot.l (tmp_files): Delete. 23724 From Todd Neal <tolchz@tolchz.net>. 23725 237262005-02-04 John W. Eaton <jwe@octave.org> 23727 23728 * sighandlers.cc (octave_child_list::~octave_child_list): Move here. 23729 * sighandlers.h: From here. 23730 237312005-02-02 John W. Eaton <jwe@octave.org> 23732 23733 * Makefile.in (parse.cc): Expect 12 shift/reduce conflicts. 23734 * parse.y (loop_command): Allow "for (k=1:10) ... endfor". 23735 237362005-01-27 David Bateman <dbateman@free.fr> 23737 23738 * ov-mapper.cc (octave_mapper::apply): Only work on real arguments 23739 if c_c_map_fcn or d_d_map_fcn or d_b_map_fcn is defined.xo 23740 237412005-01-26 Joel Andersson <snprintf@gmail.com> 23742 23743 * help.cc (keywords): Document endswitch. 23744 237452005-01-21 John W. Eaton <jwe@octave.org> 23746 23747 * DLD-FUNCTIONS/filter.cc (filter): Avoid slow Marray indexing ops. 23748 237492005-01-20 John W. Eaton <jwe@octave.org> 23750 23751 * Makefile.in (EXTRAS): Move ov-base-mat.cc ov-base-scalar.cc here. 23752 (OV_SRC): From here. 23753 237542005-01-18 John W. Eaton <jwe@octave.org> 23755 23756 * ov-complex.h (octave_complex::any): New function. 23757 * ov-scalar.h (octave_scalar::any): New function. 23758 23759 * file-io.cc (Fmkstemp): Fix doc string. Error message belongs in 23760 third output value. From Mats Jansson <mats.e.jansson@home.se>. 23761 237622005-01-12 John W. Eaton <jwe@octave.org> 23763 23764 * DLD-FUNCTIONS/find.cc (Ffind): Make it work for character strings. 23765 237662005-01-11 John W. Eaton <jwe@octave.org> 23767 23768 * DLD-FUNCTIONS/gplot.l (UNOP): Avoid trailing comment. 23769 237702005-01-10 John W. Eaton <jwe@octave.org> 23771 23772 * ls-oct-ascii.cc (extract_keyword (std::istream&, const 23773 string_vector&, std::string&, int&, const bool)): 23774 Remove duplicate definition. 23775 237762004-12-27 Martin Dalecki <martin@dalecki.de> 23777 23778 * Cell.cc, c-file-ptr-stream.cc, comment-list.cc, oct-map.cc, 23779 oct-obj.cc, ov-base.cc, ov-base-int.cc, ov-base-mat.cc, 23780 ov-base-scalar.cc, ov-bool.cc, ov-bool-mat.cc, ov-builtin.cc, 23781 ov.cc, ov-cell.cc, ov-ch-mat.cc, ov-colon.cc, ov-complex.cc, 23782 ov-cs-list.cc, ov-cx-mat.cc, ov-dld-fcn.cc, ov-fcn.cc, 23783 ov-fcn-handle.cc, ov-fcn-inline.cc, ov-file.cc, ov-int16.cc, 23784 ov-int32.cc, ov-int64.cc, ov-int8.cc, ov-list.cc, ov-mapper.cc, 23785 ov-range.cc, ov-re-mat.cc, ov-scalar.cc, ov-streamoff.cc, 23786 ov-str-mat.cc, ov-struct.cc, ov-typeinfo.cc, ov-uint16.cc, 23787 ov-uint32.cc, ov-uint64.cc, ov-uint8.cc, ov-usr-fcn.cc, 23788 ov-va-args.cc, procstream.cc, pt-arg-list.cc, pt-assign.cc, 23789 pt-binop.cc, pt-bp.cc, pt.cc, pt-cell.cc, pt-check.cc, pt-cmd.cc, 23790 pt-colon.cc, pt-const.cc, pt-decl.cc, pt-except.cc, pt-exp.cc, 23791 pt-fcn-handle.cc, pt-id.cc, pt-idx.cc, pt-jump.cc, pt-loop.cc, 23792 pt-mat.cc, pt-misc.cc, pt-pr-code.cc, pt-select.cc, pt-stmt.cc, 23793 pt-unop.cc, symtab.cc, token.cc, unwind-prot.cc: 23794 Delete #pragma implementation. 23795 23796 * Cell.h, c-file-ptr-stream.h, comment-list.h, oct-map.h, 23797 oct-obj.h, ov-base.h, ov-base-int.h, ov-base-mat.h, 23798 ov-base-scalar.h, ov-bool.h, ov-bool-mat.h, ov-builtin.h, 23799 ov-cell.h, ov-ch-mat.h, ov-complex.h, ov-cs-list.h, ov-cx-mat.h, 23800 ov-dld-fcn.h, ov-fcn.h, ov-fcn-handle.h, ov-fcn-inline.h, 23801 ov-file.h, ov.h, ov-int16.h, ov-int32.h, ov-int64.h, ov-int8.h, 23802 ov-list.h, ov-mapper.h, ov-range.h, ov-re-mat.h, ov-scalar.h, 23803 ov-streamoff.h, ov-str-mat.h, ov-struct.h, ov-typeinfo.h, 23804 ov-uint16.h, ov-uint32.h, ov-uint64.h, ov-uint8.h, ov-usr-fcn.h, 23805 procstream.h, pt-arg-list.h, pt-assign.h, pt-binop.h, pt-bp.h, 23806 pt-cell.h, pt-check.h, pt-cmd.h, pt-colon.h, pt-const.h, 23807 pt-decl.h, pt-except.h, pt-exp.h, pt-fcn-handle.h, pt.h, pt-id.h, 23808 pt-idx.h, pt-jump.h, pt-loop.h, pt-mat.h, pt-misc.h, pt-pr-code.h, 23809 pt-select.h, pt-stmt.h, pt-unop.h, symtab.h, token.h, 23810 unwind-prot.h: Delete #pragma interface. 23811 238122004-12-27 John W. Eaton <jwe@octave.org> 23813 23814 Merge of changes from Teemu Ikonen <tpikonen@pcu.helsinki.fi> to 23815 remove gnuplot from main parser. 23816 23817 * pt-plot.cc, pt-plot.h: Delete. 23818 * Makefile.in (PT_SRC, PT_INCLUDES): Delete them from the lists. 23819 23820 * DLD-FUNCTIONS/gplot.l: New file. 23821 * Makefile.in: Include it in the DLD_XSRC list. 23822 23823 * dirfns.cc (octave_change_to_directory): 23824 Don't call do_external_plotter_cd. 23825 23826 * symtab.h (symbol_record::TYPE): New element, RAWCOMMAND. 23827 (symbol_record::symbol_def::mark_as_rawcommand, 23828 symbol_record::symbol_def::unmark_rawcommand, 23829 symbol_record::symbol_def::is_rawcommand): New functions. 23830 (symbol_record::symbol_def::symbol_type): Bitfield is now 9 bits wide. 23831 (symbol_record::mark_as_rawcommand, 23832 symbol_record::unmark_rawcommand, symbol_record::is_rawcommand): 23833 New functions. 23834 (SYMTAB_ALL_TYPES): Include RAWCOMMAND. 23835 23836 * parse.y (make_plot_command): Delete function. 23837 (tree_plot_command_type, subplot_type, subplot_list_type, 23838 plot_limits_type, plot_range_type, subplot_using_type, 23839 subplot_style_type, subplot_axes_type): 23840 Delete non-terminal type decls. 23841 (PLOT, STYLE, AXES_TAG): Delete token types. 23842 (title, plot_command, plot_command2, plot_options, plot_command1, 23843 ranges, ranges1, using, using1, style, axes): Delete non-terminals. 23844 23845 * toplev.cc (do_octave_atexit): Don't call close_plot_stream. 23846 23847 * variables.cc (rawcommand_set): New static variable. 23848 (is_marked_as_rawcommand, mark_as_rawcommand, unmark_rawcommand, 23849 Fiscommand, Fmark_as_rawcommand, Funmark_rawcommand, 23850 Fisrawcommand, is_rawcommand_name): New functions. 23851 * variables.h: Provide decl for is_rawcommand_name. 23852 23853 * pt-bp.cc, pt-bp.h, pt-check.cc, pt-check.h, pt-pr-code.cc, 23854 pt-pr-code.h, pt-walk.h: Delete all declarations, definitions, and 23855 uses of visit_subplot, visit_subplot_axes, visit_subplot_list, 23856 visit_subplot_style, and visit_subplot_using methods. 23857 23858 * lex.h (lexer_flags): New field, doing_rawcommand. 23859 * lex.l (<COMMAND_START>[\;\,]): Also handle raw commands here. 23860 (lexer_flags::init): Initialize doing_racommand to false. 23861 (handle_identifier): Recognize raw commands ere. 23862 (handle_string): Don't do string escape conversions on raw command 23863 strings. 23864 23865 * octave.gperf: Delete gplot_kw, gsplot_kw, replot_kw. 23866 23867 * lex.h (lexer_flags): Delete fields cant_be_identifier, 23868 doing_set, in_plot_range, in_plot_using, in_plot_style, 23869 in_plot_axes, past_plot_range, and plotting. 23870 * lex.l: Delete all uses of these lexer flags and remove all 23871 special cases for plotting. 23872 (plot_style_token, plot_axes_token, is_plot_keyword): Delete. 23873 23874 * file-io.cc, file-io.h (tmp_files, mark_for_deletion, 23875 cleanup_tmp_files): Move here. 23876 * pt-plot.cc, pt-plot.h: From here. 23877 23878 * Makefile.in (PKG_ADD): New target. 23879 (all): Depend on PKG_ADD. 23880 (install-oct): Depend on PKG_ADD. Install PKG_ADD file. 23881 (gplot.cc): New target. 23882 (stamp-prereq): Depend on gplot.cc. 23883 (VAR): Don't include $(DLD_SRC) here. 23884 (DLD_OBJ, DLD_DEF_FILES): Include .l files. 23885 23886 * defun-int.h (DEFVAR, DEFCONST, DEFCONSTX): Move definition here. 23887 * defun.h: From here. 23888 238892004-12-22 John W. Eaton <jwe@octave.org> 23890 23891 * ls-oct-ascii.cc (extract_keyword (std::istream&, const 23892 string_vector&, std::string&, int&, const bool): New function. 23893 * ls-oct-ascii.h: Provide decl. 23894 * ov-bool-mat.cc (octave_bool_matrix::load_ascii): 23895 Use new extract_keyword function to avoid calling tellg/seekg. 23896 * ov-cell.cc (octave_cell::load_ascii): Likewise. 23897 * ov-cx-mat.cc (octave_complex_matrix::load_ascii): Likewise. 23898 * ov-re-mat.cc (octave_matrix::load_ascii): Likewise. 23899 * ov-str-mat.cc (octave_char_matrix_str::load_ascii): Likewise. 23900 239012004-12-20 John W. Eaton <jwe@octave.org> 23902 23903 * pt-idx.cc (tree_index_expression::has_magic_end): Return true if 23904 any argument list element has a magic end token. 23905 239062004-12-03 John W. Eaton <jwe@octave.org> 23907 23908 * version.h (OCTAVE_VERSION): Now 2.1.64. 23909 239102004-12-03 Teemu Ikonen <tpikonen@pcu.helsinki.fi> 23911 23912 * file-io.cc: Doc string fixes. 23913 239142004-12-02 David Bateman <dbateman@free.fr> 23915 23916 * input.cc (get_user_input): Only set nm and line for debugging if 23917 both debug is true and curr_caller_function is non-null. 23918 239192004-12-02 David Bateman <dbateman@free.fr> 23920 23921 * ls-mat5.cc (arrayclasstype): Add mxINT64_CLASS, mxUINT64_CLASS, 23922 mxFUNCTION_CLASS enum values. 23923 (read_mat5_integer_data): New template function. 23924 (OCTAVE_MAT5_INTEGER_READ): New macro. 23925 (read_mat5_binary_element): Handle reading integer types. 23926 Eliminate automatic conversion from int to double. 23927 (write_mat5_integer_data): New template function. 23928 Instantiate it for the 8 integer data types 23929 (save_mat5_binary_element): Handle integer data types. 23930 23931 * load-save.cc (Fload): Check file existence here. 23932 If file does not exist, append ".mat" to name and try again. 23933 (get_file_format): Delete check for file existence. 23934 239352004-11-30 John W. Eaton <jwe@octave.org> 23936 23937 * Makefile.in (oct-gperf.h): Use -L C++ instead of -L ANSI_C. 23938 Use -Z octave_kw_hash option, delete -H and -N options. 23939 * lex.l (is_keyword_token): Use octave_kw_hash::in_word_set 23940 instead of octave_kw_lookup. 23941 (is_keyword): Likewise. 23942 239432004-11-22 John W. Eaton <jwe@octave.org> 23944 23945 * pt-arg-list.cc (tree_argument_list::convert_to_const_vector): 23946 Check to see whether object is a function or function handle 23947 instead of constant. 23948 239492004-11-19 John W. Eaton <jwe@octave.org> 23950 23951 * ov-str-mat.cc (octave_char_matrix_str::do_index_op): 23952 Skip indexing operation if indices are invalid. 23953 23954 * pr-output.cc (set_range_format, set_complex_matrix_format, 23955 set_complex_format, set_real_matrix_format, set_real_format): 23956 Also specify std::ios::fixed for bank format. 23957 239582004-11-17 John W. Eaton <jwe@octave.org> 23959 23960 * version.h (OCTAVE_VERSION): Now 2.1.63. 23961 (OCTAVE_API_VERSION): Now api-v12. 23962 239632004-11-17 David Bateman <dbateman@free.fr> 23964 23965 * pt-arg-list.cc (F__end__): Ask dv for the number of elements 23966 instead indexed_object. 23967 239682004-11-16 David Bateman <dbateman@free.fr> 23969 23970 * ov.h (octave_value::numel): Now virtual. Call rep->numel (). 23971 * ov.cc (octave_value::numel): Delete. 23972 * ov-base.h (octave_base_value::numel): New function. 23973 239742004-11-12 John W. Eaton <jwe@octave.org> 23975 23976 * version.h (OCTAVE_VERSION): Now 2.1.62. 23977 239782004-11-09 John W. Eaton <jwe@octave.org> 23979 23980 * OPERATORS/op-int-concat.cc: New file for mixed integer/other 23981 concatentation operators. 23982 * Makefile.in (INTTYPE_OP_XSRC): Add it to the list. 23983 23984 * ops.h (DEFNDCATOP_FN2): New macro. 23985 23986 * OPERATORS/op-int.h (OCTAVE_CONCAT_FN2, 23987 OCTAVE_INSTALL_CONCAT_FN2, OCTAVE_DOUBLE_INT_CONCAT_FN, 23988 OCTAVE_INSTALL_DOUBLE_INT_CONCAT_FN, OCTAVE_INT_DOUBLE_CONCAT_FN, 23989 OCTAVE_INSTALL_INT_DOUBLE_CONCAT_FN): New macros. 23990 239912004-11-09 David Bateman <dbateman@free.fr> 23992 23993 * Cell.cc (concat): Delete. 23994 (Cell::concat): New method. 23995 * Cell.h: Provide decls. 23996 23997 * oct-map.cc (concat): Delete 23998 (Octave_map::concat): New method. 23999 * oct-map.h: Provide decls. 24000 24001 * ov.h (typedef octave_value (*cat_op_fcn) (octave_value&, 24002 const octave_value&, const Array<int>&): Change definition of 24003 cat_op_fcn so first argument is not constant. 24004 24005 * ops.h (CATOPDECL): First arg is no longer constant. 24006 (DEFCATOP_FN, DEFNDCATOP_FN): Change to use new concat methods. 24007 24008 * OPERATORS/op-chm.cc, OPERATORS/op-str-m.cc, OPERATORS/op-str-s.cc, 24009 OPERATORS/op-str-str.cc (DEFCATOP): Change explicit concat functions 24010 to use new concatenation methods. 24011 240122004-11-05 John W. Eaton <jwe@octave.org> 24013 24014 * version.h (OCTAVE_VERSION): Now 2.1.61. 24015 24016 * DLD-FUNCTIONS/det.cc (det): Always compute rcond so we can 24017 detect numerically singular matrices. 24018 240192004-11-04 John W. Eaton <jwe@octave.org> 24020 24021 * pt-colon.cc (tree_colon_expression::line, 24022 tree_colon_expression::column): New functions. 24023 * pt-colon.h: Provide decls. 24024 24025 * oct-stream.cc (octave_stream::seek (long, int)): Return error 24026 (but leave file position unchanged) for attempt to seek beyond end 24027 of file. 24028 24029 * DLD-FUNCTIONS/inv.cc (Finv): Check rcond value returned from 24030 LAPACK routines, and be careful to avoid optimizing away the 24031 1+rcond == 1.0 check. 24032 * DLD-FUNCTIONS/det.cc (Fdet): Likewise. 24033 240342004-11-03 John W. Eaton <jwe@octave.org> 24035 24036 * data.cc (Fsize): Return 1 if requested dimension is larger than 24037 the number of dimensions of the given object. 24038 240392004-11-01 Claude Lacoursiere <claude@hpc2n.umu.se>a 24040 24041 * ls-hdf5.cc (read_hdf5_data): Expect num_obj to be in distinct group. 24042 * ov-cell.cc (octave_cell::load_hdf5): Likewise. 24043 * ov-list.cc (octave_list::load_hdf5): Likewise. 24044 * ov-struct.cc (octave_struct::load_hdf5): Likewise. 24045 240462004-11-01 David Bateman <dbateman@free.fr> 24047 24048 * DLD-FUNCTIONS/filter.cc (filter (MArray<T>&, MArray<T>&, 24049 MArrayN<T>&, MArrayN<T>&, int)): The variable si is now at least 2-D. 24050 (Ffilter): Force si to be 2-D, while allowing arbitrary vector 24051 orientation. 24052 240532004-11-01 John W. Eaton <jwe@octave.org> 24054 24055 * data.cc (INSTANTIATE_EYE): New macro. Use it to instantiate 24056 identity matrix functions for various matrix types. 24057 24058 * variables.cc (do_who): Fix typo in for loop. 24059 240602004-10-28 John W. Eaton <jwe@octave.org> 24061 24062 * ls-mat5.cc (save_mat5_binary_element): Save structure elements 24063 in correct order. 24064 240652004-10-26 John W. Eaton <jwe@octave.org> 24066 24067 * ov-fcn.h (octave_function::octave_va_arg): No longer const. 24068 240692004-10-22 John W. Eaton <jwe@octave.org> 24070 24071 * DLD-FUNCTIONS/filter.cc: Remove some unnecessary parens. 24072 240732004-10-22 David Bateman <dbateman@free.fr> 24074 24075 * DLD-FUNCTIONS/filter.cc (filter (MArray<T>&, MArray<T>&, 24076 MArrayN<T>&, MArrayN<T>&, int)): If value to filter is 24077 dimensionality 2 it might still be a vector, use special case. 24078 240792004-10-21 John W. Eaton <jwe@octave.org> 24080 24081 * ov-base.cc (INT_CONV_METHOD): Apply saturation semantics here too. 24082 240832004-10-19 John W. Eaton <jwe@octave.org> 24084 24085 * ov-range.h (octave_range::write): New function. 24086 240872004-10-18 John W. Eaton <jwe@octave.org> 24088 24089 * symtab.cc (symbol_record::dimensions_string_req_first_space, 24090 symbol_record::make_dimensions_string): Use dims() for all objects. 24091 240922004-10-18 Oyvind Kristiansen <oyvinkri@stud.ntnu.no> 24093 24094 * symtab.cc (symbol_table::parse_whos_line_format): Handle 24095 size-of-parameter and center-specific format specifiers. 24096 240972004-10-18 John W. Eaton <jwe@octave.org> 24098 24099 * pt-plot.cc (handle_plot_data): If plotting data from file, 24100 always use "using" clause. 24101 241022004-10-12 David Bateman <dbateman@free.fr> 24103 24104 * pt-mat.cc (tm_row_const::tm_row_const_rep::do_init_element, 24105 tm_const::init): Dimensionality of matrices not necessarily the 24106 same. Check before comparing. 24107 241082004-10-06 John W. Eaton <jwe@octave.org> 24109 24110 * pt-fcn-handle.h (tree_fcn_handle::name): New function. 24111 241122004-10-01 John W. Eaton <jwe@octave.org> 24113 24114 * ov-range.h (octave_range::valid_as_scalar_index): Ensure int value. 24115 (octave_range::valid_as_zero_index): Likewise. 24116 24117 * ov-scalar.h (octave_scalar::valid_as_scalar_index): Ensure int value. 24118 (octave_scalar::valid_as_zero_index): Likewise. 24119 241202004-09-24 John W. Eaton <jwe@octave.org> 24121 24122 * version.h (OCTAVE_VERSION): Now 2.1.60. 24123 (OCTAVE_API_VERSION): Now api-v11. 24124 24125 * OPERATORS/op-int.h (OCTAVE_MM_INT_OPS): Include missing matrix 24126 by int matrix ops. 24127 (OCTAVE_INSTALL_MM_INT_OPS): Install them. 24128 24129 * OPERATORS/op-i64-i64.cc: Define and install missing int64 by 24130 matrix and scalar ops. 24131 241322004-09-24 David Bateman <dbateman@free.fr> 24133 24134 * ov-fcn-inline (Finline): Attempt better auto-detection of 24135 symbols that should be recognized as arguments. 24136 241372004-09-24 John W. Eaton <jwe@octave.org> 24138 24139 * ov-str-mat.cc (default_numeric_conversion_function): Return 24140 scalar object if numel == 1. 24141 241422004-09-23 John W. Eaton <jwe@octave.org> 24143 24144 * ops.h (DEFSTRDBLCONVFN): New macro. 24145 * OPERATORS/op-double-conv.cc: Use it to define new conversion op. 24146 Define new range to double matrix conversion. 24147 (install_int_conv_ops): Install new ops. 24148 24149 * ops.h (DEFSTRINTCONVFN): New macro. 24150 * OPERATORS/op-int-conv.cc: Use it to define new conversion ops. 24151 (install_int_conv_ops): Install them. 24152 24153 * (OCTAVE_SS_INT_OPS2, OCTAVE_SM_INT_OPS2, OCTAVE_MM_INT_OPS2, 24154 OCTAVE_INSTALL_SS_INT_OPS2, OCTAVE_INSTALL_SM_INT_OPS2, 24155 OCTAVE_INSTALL_MS_INT_OPS2, OCTAVE_INSTALL_MM_INT_OPS2): 24156 Delete unused macros. 24157 24158 * OPERATORS/op-int.h (OCTAVE_SS_INT_BOOL_OPS): New args Z1 and Z2. 24159 (OCTAVE_SS_INT_OPS): Pass appropriately typed zero values to 24160 OCTAVE_SS_INT_BOOL_OPS. 24161 * OPERATORS/op-i64-i64.cc, OPERATORS/op-ui64-ui64.cc: Likewise. 24162 24163 * pr-output.cc (pr_plus_format): Now template. 24164 Specialize for Complex. 24165 (octave_print_internal): Lookup print_conv_type using 24166 octave_int<T>, not just T. 24167 24168 * ov-struct.cc (octave_struct::subsref): Pass skip to next_subsref. 24169 24170 * oct-stream.cc (do_read): Hitting EOF should not be an error. 24171 241722004-09-22 John W. Eaton <jwe@octave.org> 24173 24174 * pt-plot.cc (send_to_plot_stream): Skip automatic replot if in 24175 multiplot mode. 24176 24177 * variables.cc (get_global_value): New arg, silent. 24178 * variables.h (get_global_value): Default value for silent arg is 24179 false. 24180 241812004-09-22 David Bateman <dbateman@free.fr> 24182 24183 * ov-fcn-inline.cc (Finline): When called with a single arg, derive 24184 argument of inline function in a compatible manner. 24185 241862004-09-22 Federico Zenith <zenith@chemeng.ntnu.no> 24187 24188 * DLD-FUNCTIONS/qz.cc (Fqz): New @tex section(s) in doc string for 24189 better formating of printed documentation. Use @var in doc string. 24190 24191 * DLD-FUNCTIONS/time.cc (Fstrftime): Fix typo in doc string. 24192 * error.cc (Flasterr, Flastwarn): Likewise. 24193 * mappers.cc (Farg, Fasinh, Fatanh, Ffinite, Fsin, Fsinh, Ftan): 24194 Likewise. 24195 * file-io.cc (Fmktemp): Likewise. 24196 * pt-plot.cc (symbols_of_pt_plot): Fix typos in doc string for 24197 gnuplot_has_frames. 24198 24199 * input.cc (symbols_of_input): Replace --echo-input with new 24200 --echo-commands in PS4 doc string. 24201 24202 * pt-assign.cc (symbols_of_pt_assign): Mark print_rhs_assign_val 24203 as built-in in doc string. 24204 24205 * symtab.cc (symbols_of_symtab): Mark variables_can_hide_functions 24206 as built-in in doc string. 24207 242082004-09-21 John W. Eaton <jwe@octave.org> 24209 24210 * version.h (OCTAVE_VERSION): Now 2.1.59. 24211 24212 * oct-fstrm.h (octave_fstream::octave_fstream, 24213 octave_fstream::create): Set default float format to actual native 24214 format, not flt_fmt_native. 24215 * oct-iostrm.h (octave_base_iostream::octave_base_iostream, 24216 octave_istream::octave_istream, octave_ostream::octave_ostream): 24217 Likewise. 24218 * oct-prcstrm.h (octave_iprocstream::octave_iprocstream, 24219 octave_oprocstream::octave_oprocstream, 24220 octave_iprocstream::create, octave_oprocstream::create): 24221 Likewise. 24222 * oct-stdstrm.h (octave_stdiostream::octave_stdiostream, 24223 octave_stdiostream::create): 24224 Likewise. 24225 * oct-stream.h (octave_base_stream::octave_base_stream): 24226 Likewise. 24227 * oct-strstrm.h (octave_base_strstream::octave_base_strstream, 24228 octave_istrstream::octave_istrstream, octave_istrstream::create): 24229 Likewise. 24230 242312004-09-21 David Bateman <dbateman@free.fr> 24232 24233 * data.cc (Freshape): Allow a single empty dimension argument 24234 to flag unknown dimension and calculate its value from the 24235 other dimensions. 24236 242372004-09-21 John W. Eaton <jwe@octave.org> 24238 24239 * symtab.h (symbol_record::~symbol_record): Delete definition if 24240 count goes to zero. 24241 * symtab.cc (symbol_table::~symbol_table): Move here from symtab.h. 24242 Call delete on each symbol record in the table instead of just 24243 clearing them. 24244 242452004-09-17 David Bateman <dbateman@free.fr> 24246 24247 * DLD-FUNCTIONS/sort.cc (ascending_compare, descending_compare): 24248 Now templates (avoids g++ 3.4.x compile problems). 24249 Fix other uses of these functions to also treat them as templates. 24250 (mx_sort): For unsigned EIGHT_BYTE_INT versions correct the test 24251 for the position of NaN. Problems when mode was DESCENDING or 24252 UNDEFINED. Use static_cast<unsigned int> (dim) rather than 24253 (unsigned int) dim. 24254 (IFloatFlip): Now static. 24255 242562004-09-17 David Bateman <dbateman@free.fr> 24257 24258 * DLD-FUNCTIONS/det.cc (Fdet): Only compute estimate of the 24259 condition number if requested as output. 24260 24261 * DLD-FUNCTIONS/schur.cc (Fschur): Only compute unitary matrix if 24262 requested as output. 24263 242642004-09-17 John W. Eaton <jwe@octave.org> 24265 24266 * ov-fcn-inline.cc (octave_fcn_inline::octave_fcn_inline): 24267 Call eval_string instead of feval ("eval", ...). 24268 Construct anonymous function handle to avoid going through the 24269 symbol table. 24270 24271 * ov-fcn-handle.h (octave_fcn_handle::fcn_val): New function. 24272 (octave_fcn_handle::octave_fcn_handle (const std:string&)): 24273 New constructor. 24274 242752004-09-16 John W. Eaton <jwe@octave.org> 24276 24277 * parse.y (frob_function): Clear id_name from curr_sym_tab, not 24278 top_level_sym_tab. 24279 24280 * symtab.cc (maybe_list): Count sizes using size_t, not int. 24281 24282 * variables.cc (symbol_out_of_date): Always look in LOADPATH. 24283 242842004-09-15 John W. Eaton <jwe@octave.org> 24285 24286 * OPERATORS/op-int-conv.cc: Define and install bool to int 24287 conversions. 24288 * OPERATORS/op-double-conv.cc: Define and install bool to double 24289 conversions. 24290 24291 * ov.cc (octave_value::assign): Handle subsref for containers. 24292 * oct-lvalue.cc (octave_lvale::value): Likewise. 24293 24294 * DLD-FUNCTIONS/sort.cc (mx_sort): Return octave_value, not 24295 octave_value list. 24296 242972004-09-15 David Bateman <dbateman@free.fr> 24298 24299 * ov.cc (octave_value::octave_value (const ArrayN<char>&, bool)): 24300 New Constructor . 24301 * ov.h: Provide decl. 24302 24303 * DLD-FUNCTIONS/sort.cc (sortmode): New enum to define sort direction. 24304 (template <class T> class vec_index): New class to contain values and 24305 index for indexed sorts, replacing all previous struct versions. 24306 Instantiate for double, Complex, char and octave_value. 24307 (template <class T> static octave_value_list mx_sort (ArrayN<T> &, int, 24308 sortmode)): New templated version of mx_sort replacing all previous 24309 versions, but specific to non indexed sorts. Instantiate for char 24310 and double if not IEEE754. 24311 (template <> static octave_value_list mx_sort (ArrayN<double> &, 24312 int, sortmode)): Specialized function of mx_sort of IEEE754. 24313 (template <class T> static octave_value_list mx_sort_indexed 24314 (ArrayN<T> &, int, sortmode)): New templated version of mx_sort 24315 for indexed sorts. Instantiate for double, Complex, char and 24316 octave_value. 24317 (ascending_compare, descending_compare): Comparison functions 24318 for double, char, vec_index<double> *, vec_index<Complex> *, 24319 vec_index<char> *, vec_index<octave_value>. Fix Complex comparison 24320 operator to sort by arg of values if absolute values are equal. 24321 (Fsort): Update docs for new mode argument and for sorting of 24322 strings and cell arrays of strings. Implement mode argument to 24323 define ascending and descending sorts. Include sorting of cell 24324 arrays of strings. Adapt for new templated versions of the mx_sort 24325 function. 24326 243272004-09-15 John W. Eaton <jwe@octave.org> 24328 24329 * ov-cell.cc (octave_cell::subsref): Pass nargout to next_subsref. 24330 * ov-builtin.cc (octave_builtin::subsref): Likewise. 24331 * ov-fcn-handle.cc (octave_fcn_handle::subsref): Likewise. 24332 * ov-list.cc (octave_list::subsref): Likewise. 24333 * ov-mapper.cc (octave_mapper::subsref): Likewise. 24334 * ov-struct.cc (octave_struct::subsref): Likewise. 24335 * ov-usr-fcn.cc (octave_user_function::subsref): Likewise. 24336 24337 * ov-struct.cc, ov-struct.h (octave_struct::subsref (const 24338 std::string&, const std::list<octave_value_list>&, int)): 24339 Define this version. 24340 (octave_struct::subsref (const std::string&, const 24341 std::list<octave_value_list>&)): Panic in this version. 24342 * ov-list.cc, ov-list.h: Likewise. 24343 * ov-cell.cc, ov-cell.h: Likewise. 24344 24345 * ov.cc (octave_value::subsref (int, const std::string&, const 24346 std::list<octave_value_list>&, size_t)): New function. 24347 * ov.h: Provide decl. 24348 24349 * ov-cell.h (octave_cell::is_constant): Return false. 24350 * ov-struct.h (octave_struct::is_constant): Delete. 24351 * ov-list.h (octave_list::is_constant): Delete. 24352 243532004-09-14 David Bateman <dbateman@free.fr> 24354 24355 * DLD-FUNCTIONS/sort.cc (mx_sort (charNDArray&, bool, int)): 24356 New function to sort character strings. 24357 (Fsort): Handle character strings. 24358 243592004-09-11 John W. Eaton <jwe@octave.org> 24360 24361 * ov-fcn-handle.cc (octave_fcn_handle::save_ascii): 24362 Write directly to OS. 24363 (octave_fcn_handle::load_ascii, octave_fcn_handle::load_binary, 24364 octave_fcn_handle::load_hdf5): Check parse status after calling 24365 eval_string. Don't dereference fh unless it is valid. 24366 243672004-09-11 David Bateman <dbateman@free.fr> 24368 24369 * ov-fcn-handle.cc (octave_fcn_handle::save_ascii, 24370 octave_fcn_handle::load_ascii, octave_fcn_handle::save_binary, 24371 octave_fcn_handle::load_binary, octave_fcn_handle::save_hdf5, 24372 octave_fcn_handle::load_hdf5): New functions. 24373 * ov-fcn-handle.h: Provide decls. 24374 24375 * ov-fcn-inline.cc (octave_fcn_inline::load_ascii): 24376 Allow spaces in saved function. 24377 (octave_fcn_inline::save_hdf5): Properly close all HDF5 objects. 24378 24379 * ls-oct-ascii.cc (read_ascii_data): Check return type of 24380 <octave_value>.load_ascii for errors reading the variables 24381 24382 * variables.cc (lookup_function_handle, clear_variable, 24383 clear_symbol): New functions. 24384 * variables.h: Provide decls. 24385 243862004-09-10 John W. Eaton <jwe@octave.org> 24387 24388 * ov-builtin.cc (octave_builtin::do_multi_index_op): Use unwind 24389 protect frame instead of a single unwind_protect::run. 24390 * ov-mapper.cc (octave_mapper::do_multi_index_op): Likewise. 24391 24392 * data.cc (fill_matrix, identity_matrix): 24393 Also allow logical data type. 24394 243952004-09-10 David Bateman <dbateman@free.fr> 24396 24397 * ov-intx.h (OCTAVE_VALUE_INT_MATRIX_T::double_value, 24398 OCTAVE_VALUE_INT_MATRIX_T::scalar_value, 24399 OCTAVE_VALUE_INT_SCALAR_T::double_value, 24400 OCTAVE_VALUE_INT_SCALAR_T::scalar_value): New functions. 24401 244022004-09-10 John W. Eaton <jwe@octave.org> 24403 24404 * ov-base-scalar.h (octave_base_scalar::clone, 24405 octave_base_scalar::empty_clone): New functions. 24406 244072004-09-09 John W. Eaton <jwe@octave.org> 24408 24409 * pt-pr-code.h (tree_print_code::newline): New optional arg, alt_nl. 24410 * pt-pr-code.cc (tree_print_code::newline): Use it if not printing 24411 newlines. 24412 (tree_print_code::visit_statement): If we printed ";", call 24413 newline with optional arg set to "". 24414 (tree_print_code::printing_newlines): New data member. 24415 (tree_print_code::tree_print_code): Initialize it. 24416 (tree_print_code::suspend_newline, tree_print_code::resume_newline): 24417 New functions. 24418 (tree_print_code::newline, tree_print_code::indent): Use it 24419 24420 * ov-fcn-handle.cc (octave_fcn_handle::print_raw): 24421 Print code for anonymous function handles. 24422 244232004-09-08 John W. Eaton <jwe@octave.org> 24424 24425 * ov-fcn-handle.cc (Ffunc2str, Ffunctions): Don't call substr(1) 24426 on fh_nm, since we no longer need to skip "@" in the name. 24427 24428 * error.cc (pr_where): Do a better job of printing location info. 24429 24430 * input.cc (get_user_input): Print location info before the debug 24431 prompt. From Keith Goodman <kwgoodman@gmail.com>. 24432 24433 * ov-usr-fcn.cc (octave_user_function::do_multi_index_op): 24434 Save and set curr_caller_function and curr_caller_statement here. 24435 * ov-mapper.cc (octave_mapper::do_multi_index_op): Likewise. 24436 * ov-builtin.cc (octave_builtin::do_multi_index_op): Likewise. 24437 24438 * pt-stmt.cc (curr_caller_statement): New variable. 24439 * pt-stmt.h: Provide decl. 24440 24441 * toplev.cc (curr_caller_function): New variable. 24442 * toplev.h: Provide decl. 24443 24444 * pt-arg-list.cc (convert_to_const_vector): 24445 Unwind-protect index_position before modifying it. 24446 Don't protect and set index_position unless stash_object is true. 24447 244482004-09-08 David Bateman <dbateman@free.fr> 24449 24450 * ov-fcn-inline.cc (octave_fcn_inline::save_ascii, 24451 octave_fcn_inline::load_ascii, octave_fcn_inline::save_binary, 24452 octave_fcn_inline::load_binary, octave_fcn_inline::save_hdf5, 24453 octave_fcn_inline::load_hdf5): New functions. 24454 * ov-fcn-inline.h: Provide decls. 24455 244562004-09-08 John W. Eaton <jwe@octave.org> 24457 24458 * ov.h: Add octave_array_type_traits specialization for 24459 boolNDArray element type. 24460 244612004-09-07 John W. Eaton <jwe@octave.org> 24462 24463 * oct-stream.cc: Instantiate octave_stream::write for Array<bool>. 24464 (octave_stream::read): Expand read_fptr_table to include dt_logical. 24465 24466 * ov-bool.h (octave_bool::write): New function. 24467 * ov-bool-mat.h (octave_bool_matrix::write): New function. 24468 24469 * ov-fcn-inline.h (octave_fcn_inline::octave_fcn_inline): New copy 24470 constructor. 24471 (octave_fcn_inline::clone, octave_fcn_inline::empty_clone): 24472 New functions. 24473 24474 * ov-fcn-handle.h (octave_fcn_handle::octave_fcn_handle): New copy 24475 constructor. 24476 (octave_fcn_handle::clone, octave_fcn_handle::empty_clone): 24477 New functions. 24478 244792004-09-06 John W. Eaton <jwe@octave.org> 24480 24481 * ov.cc (install_types): Call octave_fcn_inline::register_type. 24482 24483 * version.h (OCTAVE_API_VERSION): Now api-v10. 24484 24485 * OPERATORS/op-b-b.cc, OPERATORS/op-bm-bm.cc: Define and install 24486 unary plus and unary minus operators. 24487 24488 * OPERATORS/op-int.h, OPERATORS/op-cm-cm.cc, 24489 OPERATORS/op-cs-cs.cc, OPERATORS/op-m-m.cc, OPERATORS/op-range.cc: 24490 Define and install unary plus operator. 24491 24492 * ov.cc (unary_op_as_string): Handle op_uplus too. 24493 24494 * parse.y (prefix_expr): Build unary plus op here instead of 24495 converting to no-op. 24496 (make_prefix_op): Accept op_uplus. 24497 244982004-09-03 John W. Eaton <jwe@octave.org> 24499 24500 * OPERATORS/op-b-bm.cc (DEFCONV): Define bool scalar to bool 24501 matrix conversion. 24502 (install_b_bm_ops): Install it. 24503 Install conversion for assignment of bool matrix to indexed bool. 24504 * OPERATORS/op-b-b.cc (install_b_b_ops): Install conversion for 24505 assignment of bool to indexed bool. 24506 245072004-09-03 David Bateman <dbateman@free.fr> 24508 24509 * OPERATORS/op-b-b.cc, OPERATORS/op-b-bm.cc, OPERATORS/op-bm-b.cc, 24510 OPERATORS/op-bm-bm.cc: Modify concatenation between boolean types 24511 so that it returns a boolean. 24512 24513 * ov-bool.cc (octave_bool::do_index_op): Return boolean matrix. 24514 24515 * ov-intx.h (do_index_op (const octave_value_list&, int)): 24516 New function for indexed subsref of int types. 24517 245182004-09-03 John W. Eaton <jwe@octave.org> 24519 24520 * OPERATORS/op-int.h (OCTAVE_SM_INT_OPS): Define int by double 24521 mixed comparison and bool ops. 24522 (OCTAVE_INSTALL_SM_INT_OPS): Install them. 24523 (OCTAVE_MS_INT_OPS): Define double by int mixed comparison and 24524 bool ops. 24525 (OCTAVE_INSTALL_MS_INT_OPS): Install them 24526 24527 * OPERATORS/op-i8-i8.cc, OPERATORS/op-i16-i16.cc, 24528 OPERATORS/op-i32-i32.cc, OPERATORS/op-i64-i64.cc, 24529 OPERATORS/op-ui8-ui8.cc, OPERATORS/op-ui16-ui16.cc, 24530 OPERATORS/op-ui32-ui32.cc, OPERATORS/op-ui64-ui64.cc: 24531 Define and install various mixed-type operators. 24532 24533 * OPERATORS/op-int.h (OCTAVE_MM_INT_OPS): Also define mixed int 24534 and double matrix comparison and bool ops. 24535 (OCTAVE_INSTALL_MM_INT_OPS): Install them. 24536 (OCTAVE_SS_INT_BOOL_OPS, OCTAVE_SM_INT_BOOL_OPS, 24537 OCTAVE_MS_INT_BOOL_OPS, OCTAVE_MM_INT_BOOL_OPS): 24538 Define logical AND and OR ops. 24539 (OCTAVE_INSTALL_SS_INT_BOOL_OPS, OCTAVE_INSTALL_SM_INT_BOOL_OPS, 24540 OCTAVE_INSTALL_MS_INT_BOOL_OPS, OCTAVE_INSTALL_MM_INT_BOOL_OPS): 24541 Install them. 24542 (OCTAVE_MM_INT_CMP_OPS, OCTAVE_MM_INT_BOOL_OPS): Accept prefix arg. 24543 (OCTAVE_MM_CONV): New macro. 24544 (OCTAVE_MM_INT_OPS): Use it to define complex matrix conversion. 24545 (OCTAVE_MIXED_INT_CMP_OPS, OCTAVE_MIXED_INT_BOOL_OPS): New macros. 24546 24547 * OPERATORS/op-int.h (OCTAVE_MS_INT_OPS): Don't define indexed int 24548 matrix = complex scalar assignment ops. 24549 (OCTAVE_MS_INT_OPS): Don't define indexed int matrix = complex 24550 matrix assignment ops. 24551 (OCTAVE_SM_CONV): New macro. 24552 (OCTAVE_SM_INT_OPS): Use it to define int scalar -> (int|complex) 24553 matrix widening ops. 24554 (OCTAVE_RE_INT_ASSIGN_OPS, OCTAVE_CX_INT_ASSIGN_OPS): New macros. 24555 (OCTAVE_INT_OPS): Use them here. 24556 (OCTAVE_INSTALL_SS_INT_OPS): Install indexed int scalar = scalar 24557 and indexed int scalar = complex scalar assignment conversions. 24558 (OCTAVE_INSTALL_SM_INT_OPS): Install int scalar -> (int|complex) 24559 matrix widening ops. Install indexed int scalar = 24560 (int|real|complex) matrix assignment conversions. 24561 (OCTAVE_INSTALL_MS_INT_OPS): Install indexed int matrix = complex 24562 scalar assignment conversion. 24563 (OCTAVE_INSTALL_MM_INT_OPS): Install int matrix -> complex matrix 24564 widening op. Install indexed int matrix = complex matrix 24565 assignment conversion. 24566 (OCTAVE_INSTALL_RE_INT_ASSIGN_OPS, OCTAVE_INSTALL_CX_INT_ASSIGN_OPS): 24567 New macros. 24568 (OCTAVE_INSTALL_INT_OPS): Use them. 24569 24570 * op-int.h: (OCTAVE_INSTALL_SM_INT_ASSIGNCONV): New macro. 24571 * OPERATORS/op-i8-i8.cc, OPERATORS/op-i16-i16.cc, 24572 OPERATORS/op-i32-i32.cc, OPERATORS/op-i64-i64.cc, 24573 OPERATORS/op-ui8-ui8.cc, OPERATORS/op-ui16-ui16.cc, 24574 OPERATORS/op-ui32-ui32.cc, OPERATORS/op-ui64-ui64.cc: 24575 Use it to define mixed size integer scalar/integer matrix 24576 assignment conversions. 24577 24578 * ov-intx.h (OCTAVE_VALUE_INT_MATRIX_T::complex_array_value, 24579 OCTAVE_VALUE_INT_SCALAR_T::complex_array_vale): 24580 New functions. 24581 245822004-09-02 John W. Eaton <jwe@octave.org> 24583 24584 * DLD-FUNCTIONS/quad.cc (Fquad): Pass "__quad_fcn_" instead of 24585 "__quad_fcn__" to unique_symbol_name. 24586 24587 * ov-fcn-inline.cc (octave_fcn_inline): Pass "__inline_" instead 24588 of "__inline__" to unique_symbol_name. 24589 24590 * variables.cc (unique_symbol_name): Make better random symbol name. 24591 245922004-09-01 John W. Eaton <jwe@octave.org> 24593 24594 * version.h (OCTAVE_VERSION): Now 2.1.58. 24595 24596 * Makefile.in (OP_INCLUDES): New variable. 24597 Include OPERATORS/op-int.h here. 24598 * Makefile.in (dist): Also link $(OP_INCLUDES). 24599 24600 * Makefile.in (DISTFILES): Include $(EXTRAS) in the list. 24601 246022004-09-01 David Bateman <dbateman@free.fr> 24603 24604 * DLD-FUNCTION/quad.cc: Allow function handle and inline functions. 24605 Use a unique function name and delete it on exit. 24606 24607 * ov.h (is_inline_function): New virtual function. 24608 * ov-fcn-inline.h (is_inline_function): New function. 24609 * ov-base.h (is_inline_function): New function. 24610 24611 * ov-fcn-inline.cc (octave_fcn_handle::octave_fcn_handle): 24612 Use unique_symbol_name and clear_function instead of manipulating 24613 symbol table directly. 24614 24615 * variables.cc (unique_symbol_name): New function. 24616 (clear_function): New function. 24617 * variables.h: Provide decls. 24618 24619 * dynamic-ld.cc (do_clear_function): Rename from clear_function. 24620 246212004-09-01 John W. Eaton <jwe@octave.org> 24622 24623 * OPERATORS/op-i8-i8.cc, OPERATORS/op-i16-i16.cc, 24624 OPERATORS/op-i32-i32.cc, OPERATORS/op-i64-i64.cc, 24625 OPERATORS/op-ui8-ui8.cc, OPERATORS/op-ui16-ui16.cc, 24626 OPERATORS/op-ui32-ui32.cc, OPERATORS/op-ui64-ui64.cc: 24627 Define and install mixed assignment ops. 24628 * op-int.h: Define mixed integer/double ops. 24629 Define simple division ops. 24630 24631 * ov-complex.h (octave_complex_scalar): New typedef to simplify 24632 various macros where naming consistency matters. 24633 246342004-08-31 David Bateman <dbateman@free.fr> 24635 24636 * OPERATORS/op-int.h (ss_pow, ms_el_pow, mm_el_pow): New power 24637 functions. 24638 (sm_el_pow): Return correct type. 24639 (OCTAVE_SS_POW_OPS, OCTAVE_SM_POW_OPS, OCTAVE_MS_POW_OPS, 24640 OCTAVE_MM_POW_OPS): New macros to define the power operator over 24641 integer types. 24642 (OCTAVE_SS_INT_OPS, OCTAVE_SM_INT_OPS, OCTAVE_MS_INT_OPS, 24643 OCTAVE_MM_INT_OPS): Use the new macros for the power operators. 24644 (OCTAVE_INSTALL_SS_INT_OPS, OCTAVE_INSTALL_MS_INT_OPS, 24645 OCTAVE_INSTALL_MM_INT_OPS): Install new power functions. 24646 24647 * OPERATORS/op-int-conv.cc (INT_CONV_FUNCTIONS): Correct return 24648 types for unsigned integer scalars and signed integer matrices. 24649 24650 * ov-type-conv.h (OCTAVE_TYPE_CONV_BODY3): Conversion betwen same 24651 types returns the original value. 24652 24653 * bitfcns.cc (BITOP): Fix for mixed scalar/matrix ops. Allow 24654 octave_range as an argument, by using class_name rather than 24655 type_id to test. 24656 246572004-08-31 John W. Eaton <jwe@octave.org> 24658 24659 * pr-output.cc (pr_int): Also handle bank_format. 24660 (octave_print_internal (std::ostream& os, const intNDArray<T>&, 24661 bool, int)): Likewise. 24662 246632004-08-31 David Bateman <dbateman@free.fr> 24664 24665 * pr-output.cc (pr_int(std::ostream, const T&, int)): 24666 New template function to print formatted integer types. 24667 Instantiate it for all of the integer types. 24668 (octave_print_internal (std::ostream, const intNDArray<T>&, bool, 24669 int)): Use pr_int. Align output up in columns, and check for 24670 free_format or plus_format. 24671 (octave_print_internal (std::ostream, const octave_int<T>&, bool)): 24672 Use pr_int. Check for free_format and plus_format. 24673 24674 * ls-hdf5.cc (hdf5_read_next_data): When importing hdf5 files, 24675 allow structures and lists (for backward compatibility). Also 24676 allow importation of integer types into octave int and uint types. 24677 246782004-08-31 John W. Eaton <jwe@octave.org> 24679 24680 * data.cc (fill_matrix, identity_matrix): Convert class name to 24681 oct_data_conv::data_type and switch on that. 24682 (identity_matrix (int, int)): New template. 24683 (identity_matrix (int, int, const std::string&)): Use it. 24684 24685 * ov.h (octave_type_traits, octave_array_type_traits): Move here. 24686 * oct-stream.cc: From here. 24687 246882004-08-31 David Bateman <dbateman@free.fr> 24689 24690 * data.cc (Fzeros, Fones, Feye): Update help text for optional 24691 class argument. 24692 (static octave_value identity_matrix (int, int, const std::string&)): 24693 New function to create identity matrices with an arbitrary type. 24694 (Feye): Call new version of identity matrix function, even for scalars. 24695 (static octave_value fill_matrix (const octave_value_list&, double, 24696 const char *)): Update to allow arbitrary classes of matrices to be 24697 created. 24698 246992004-08-31 John W. Eaton <jwe@octave.org> 24700 24701 * ls-mat5.cc (read_int): New function. 24702 24703 * oct-stream.cc (octave_base_stream::do_read, 24704 octave_base_stream::read, octave_base_stream::write): Delete. 24705 * oct-stream.h: Delete decls. 24706 24707 * oct-stream.cc (octave_stream::read): Handle block_size and 24708 separate input/output types. 24709 (octave_stream::write): Handle block_size and various input types. 24710 (octave_type_traits, octave_array_type_traits): New traits classes. 24711 (do_read): New templates to read data and perform type conversion. 24712 (octave_stream::write (const Array<T>&, int, 24713 oct_data_conv::data_type, int, oct_mach_info::float_format), 24714 do_write, write_int): 24715 New templates to write ints and perform type conversion. 24716 Instantiate for various Octave types. 24717 24718 * ov.cc (octave_value::write): New function. 24719 * ov.h: Provide decl. 24720 * ov-base.cc (octave_base_value::write): New function. 24721 * ov-base.h: Provide decl. 24722 * ov-complex.h (octave_complex::write): New function. 24723 * ov-cx-mat.h (octave_complex_matrix::write): New function. 24724 * ov-intx.h (OCTAVE_VALUE_INT_MATRIX_T::write): New function. 24725 (OCTAVE_VALUE_INT_SCALAR_T::write): New function. 24726 * ov-re-mat.h (octave_matrix::write): New function. 24727 * ov-scalar.h (octave_scalar::write): New function. 24728 * ov-str-mat.h (octave_char_matrix_str::write): New function. 24729 24730 * file-io.cc (Ffread): Handle block size, to/from format in 24731 precision argument. 24732 (Ffwrite): Handle block size in precision argument. 24733 247342004-08-25 David Bateman <dbateman@free.fr> 24735 24736 * ov-cell.cc (octave_cell::subsasgn): Delete elements of cell array 24737 when type is "(" and rhs is empty. 24738 247392004-08-09 John W. Eaton <jwe@octave.org> 24740 24741 * ov-intx.h (OCTAVE_VALUE_INT_MATRIX_T::index_vector, 24742 OCTAVE_VALUE_INT_SCALAR_T::index_vector): New functions. 24743 247442004-08-06 David Bateman <dbateman@free.fr> 24745 24746 * OPERATORS/op-struct.cc: New file. 24747 * ov-struct.h (octave_struct::resize (const dim_vector&)): 24748 New function. 24749 * oct-map.h (Octave_map::resize (const dim_vector&)): New function. 24750 * ov-map.cc (Octave_map::reshape): 24751 Correct return for same sized reshape. 24752 (Octave_map::resize (const dim_vector&)): New function. 24753 (concat (const Octave_map&, const Octave_map&, const Array<int>&)): 24754 Complete concatenation function. 24755 * Makefile.in (OP_XSRC): Include op-struct.cc in the list. 24756 247572004-08-05 John W. Eaton <jwe@octave.org> 24758 24759 * pt-stmt.h (tree_statement::set_command, 24760 (tree_statement::set_expression): New functions. 24761 24762 * parse.y (param_list_beg): Handle pushing new symbol table 24763 context for anonymous function handle parameter lists here. 24764 (anon_fcn_handle): New non-terminal. 24765 (expression): Include anon_fcn_handle here. 24766 (make_anon_fcn_handle): New static function. 24767 247682004-08-05 David Bateman <dbateman@free.fr> 24769 24770 * ov.cc (octave_value::fcn_inline_value): New virtual function. 24771 * ov.h (octave_value::fcn_inline_value): Provide decl. 24772 * ov-base.cc (octave_base_value::fcn_inline_value): New function 24773 * ov-base.h (octave_base_value::fcn_inline_value): Provide decl. 24774 * ov-fcn-handle.cc (octave_fcn_handle::octave_fcn_handle 24775 (const std::string&, const string_vector&, const std::string&), 24776 octave_fcn_handle::convert_to_str_internal, Finline, Fargnames, 24777 Fformula, Fvectorize): Delete. 24778 (octave_fcn_handle::print_raw): Remove inline case. 24779 * ov-fcn-handle.h (octave_fcn_handle::fcn_type, 24780 octave_fcn_handle::octave_fcn_handle (const std::string&, const 24781 string_vector&, const std::string&), 24782 octave_fcn_handle::inline_fcn_name, 24783 octave_fcn_handle::inline_fcn_text, 24784 octave_fcn_handle::inline_fcn_arg_names, 24785 octave_fcn_handle::is_inline, 24786 octave_fcn_handle::convert_to_str_internal, 24787 octave_fcn_handle::typ, octave_fcn_handle::iftext, 24788 octave_fcn_handle::ifargs): Delete constructors, 24789 functions, and data members (moved to ov-fcn-inline.h). 24790 * Makefile.in: Include ov-fcn-inline.h and ov-fcn-inline.cc where 24791 appropriate. 24792 * ov-fcn-inline.h, ov-fcn-inline.cc: New class. 24793 247942004-08-05 John W. Eaton <jwe@octave.org> 24795 24796 * ov-base-int.cc (octave_base_int_matrix<T>::save_ascii, 24797 octave_base_int_matrix<T>::load_ascii, 24798 octave_base_int_matrix<T>::save_binary, 24799 octave_base_int_matrix<T>::load_binary, 24800 octave_base_int_matrix<T>::save_hdf5, 24801 octave_base_int_matrix<T>::load_hdf5, 24802 octave_base_int_matrix<T>::try_narrowing_conversion, 24803 octave_base_int_scalar<T>::print_raw, 24804 octave_base_int_scalar<T>::save_ascii, 24805 octave_base_int_scalar<T>::load_ascii, 24806 octave_base_int_scalar<T>::save_binary, 24807 octave_base_int_scalar<T>::load_binary, 24808 octave_base_int_scalar<T>::save_hdf5, 24809 octave_base_int_scalar<T>::load_hdf5): 24810 Sprinkle with this-> as needed. 24811 24812 * Makefile.in (EXTRAS): New macro. Move ov-base-int.cc here from 24813 OV_INTTYPE_SRC. 24814 (INCLUDES_FOR_INSTALL): New macro. 24815 (install-inc, uninstall): Use it instead of INCLUDES. 24816 24817 * variables.h (symbol_exist): Default for type is now "any". 24818 248192004-08-05 David Bateman <dbateman@free.fr> 24820 24821 * ov-fcn-handle.cc (octave_fcn_handle (const std::string&, 24822 const string_vector&, const std::string&)): New constructor for inline 24823 function handles. 24824 (octave_fcn_handle::print_raw): Allow inline functions to be printed. 24825 (octave_fcn_handle::convert_to_str_internal): New function to allow 24826 Fchar to work on inlined function handles. 24827 (Finline, Fformula, Fargnames, Fvectorize): New functions. 24828 * ov-fcn-handle.h (octave_fcn_handle (const std::string&, 24829 const string_vector&, const std::string&)): Provide decl. 24830 (octave_fcn_handle::convert_to_str_internal): Provide decl. 24831 (fcn_type): New enum for the type of function handle. 24832 (octave_fcn_handle::inline_fcn_text, octave_fcn_handle::is_inline, 24833 octave_fcn_handle::inline_fcn_arg_names): New functions. 24834 (octave_fcn_handle::typ, octave_fcn_handle::iftext, 24835 octave_fcn_handle::ifargs): New private variables for inline functions. 24836 248372004-08-04 John W. Eaton <jwe@octave.org> 24838 24839 * parse.y (fcn_handle): 24840 Recognize '@' FCN_HANDLE rather than just FCN_HANDLE. 24841 Decrement lexer_flags.looking_at_function_handle here. 24842 * lex.h (lexical_feedback::looking_at_function_handle): 24843 New data member. 24844 (lexical_feedback::init): Initialize it. 24845 * lex.l (handle_identifier): Only reject keywords if we are 24846 looking at a function handle. 24847 ("@"): Recognize this separately from what follows. 24848 Increment lexer_flags.looking_at_function_handle here. 24849 24850 * ov-fcn-handle.h (octave_fcn_handle::octave_fcn_handle 24851 (octave_function*, const std::string)): Delete. 24852 * ov.h, ov.cc (octave_value::octave_value (octave_function *)): Delete. 24853 (octave_value::octave_value (octave_function *, const std::string)): 24854 Delete. 24855 24856 * ov-fcn-handle.h (octave_fcn_handle::fcn): Now octave_value, not 24857 pointer to octave_function. 24858 (octave_fcn_handle::octave_fcn_handle (const octave_value&, const 24859 std::string)): New constructor. 24860 * variables.cc (lookup_function): Return octave_value, not pointer 24861 to octave_function. Change all uses. 24862 (lookup_user_function): Return octave_value, not pointer 24863 to octave_user_function. Change all uses. 24864 248652004-08-03 John W. Eaton <jwe@octave.org> 24866 24867 * ov-usr-fcn.cc (octave_user_fcn::do_multi_index_op): Call 24868 install_automatic_vars here. 24869 (octave_user_fcn::octave_user_fcn): Not here. 24870 (install_automatic_vars): Don't mark argn_sr, nargin_sr, 24871 nargout_sr, or varargin_sr as static. 24872 24873 * oct-stream.cc (octave_scan): Avoid need for pushing two 24874 characters back on the input stream. 24875 248762004-08-02 John W. Eaton <jwe@octave.org> 24877 24878 * oct-stream.cc (octave_scan): For %i format, recognize numbers 24879 with leading 0x or 0X as hex and leading 0 as octal. 24880 24881 * OPERATORS/op-fcn-handle.cc: Delete. 24882 * Makefile.in (OP_XSRC): Delete it from the list. 24883 * pr-output.cc (octave_print_internal (std::ostream&, const 24884 std::string&, bool, int): New function. 24885 * ov-fcn-handle.cc (octave_value::subsref): New function. 24886 * ov-fcn-handle.h (class fcn_handle_elt, class fcn_handle_array): 24887 Delete. 24888 (class octave_fcn_handle): Derive from octave_base_value, not 24889 octave_base_matrix<fcn_handle_array>. 24890 24891 * ov-cx-mat.cc (try_narrowing_conversion): Also allow complex to 24892 real conversion for N-d arrays. 24893 248942004-07-30 John W. Eaton <jwe@octave.org> 24895 24896 * lex.l (<COMMAND_START>[^#% \t\r\n\;\,\"\'][^ \t\r\n\;\,]*{S}*): 24897 Also recognize \r as a word list separator. 24898 248992004-07-27 John W. Eaton <jwe@octave.org> 24900 24901 * bitfcns.cc (DO_BITSHIFT): Pass mask to bitshift. 24902 (bitshift (double, int, EIGHT_BYTE_INT): New arg, mask. 24903 (DO_UBITSHIFT, DO_SBITSHIFT): Use bitshfit, not operator >>. 24904 Use nbits function from octave_int type to set bits_in_type. 24905 24906 * ov-struct.cc (Fisfield): Only print usage message if number of 24907 arguments is incorrect. Return false for invalid arguments. 24908 From Andy Adler <adler@site.uottawa.ca>. 24909 249102004-07-27 David Bateman <dbateman@free.fr> 24911 24912 * Cell.cc (Cell::index): Quit early if an error occurs when 24913 creating index vector object. 24914 24915 * ov-int8.cc, ov-int16.cc, ov-int32.cc, ov-int64.cc, ov-uint8.cc, 24916 ov-uint16.cc, ov-uint32.cc, ov-uint64.cc (HDF5_SAVE_TYPE): Define 24917 for HDF5 native format for the type. 24918 24919 * ov-base-int.h (save_ascii, save_binary, load_binary, save_hdf5): 24920 Delete unused arguments. 24921 24922 * ov-base-int.cc (octave_base_int_matrix::save_ascii, 24923 octave_base_int_matrix::save_binary, 24924 octave_base_int_scalar::save_ascii, 24925 octave_base_int_scalar::save_binary, 24926 octave_base_int_scalar::save_hdf5): Delete unused argument. 24927 24928 * ov-base-int.cc (octave_base_int_matrix::save_binary, 24929 octave_base_int_matrix::load_binary, 24930 octave_base_int_matrix::save_hdf5, 24931 octave_base_int_matrix::load_hdf5, 24932 octave_base_int_scalar::save_ascii, 24933 octave_base_int_scalar::load_ascii, 24934 octave_base_int_scalar::save_binary, 24935 octave_base_int_scalar::load_binary, 24936 octave_base_int_scalar::save_hdf5, 24937 octave_base_int_scalar::load_hdf5): Implement missing functions. 24938 249392004-07-23 David Bateman <dbateman@free.fr> 24940 24941 * ov-intx.h (OCTAVE_VALUE_INT_MATRIX_T::array_value, 24942 OCTAVE_VALUE_INT_SCALAR_T::array_value): new methods to extract array 24943 value from integer types. 24944 24945 * bitfcns.cc (BITOPX): New Macro renamed from BITOP. 24946 (BITOP): Alter to allow different types and call BITOP appropriately. 24947 (DO_SBITSHIFT, DO_UBITSHIFT): New macros for signed, unsigned 24948 bitshifts. 24949 24950 (DO_BITSHIFT): Test for shift of more bits than in type, which is 24951 undefined. Generalize to allow double args as well. 24952 (Fbitshift): Add int and double types. 24953 (Fbitmax): Return 53 bit value which conforms to IEEE754 double 24954 mantissa. 24955 (Fintmax, Fintmin): New functions. 24956 (Fbitget, Fbitset, Fbitcmp): Delete. 24957 24958 * OPERATORS/op-int.h: Add sm_el_pow function 24959 24960 * ops.h (CATOPDECL, DEFCATOPX, DEFCATOP, DEFCATOP_FB, DEFNDCATOP_FN, 24961 CATOP_NONCONFORMANT, INSTALL_CATOP): New macros. 24962 24963 * OPERATORS/op-b-b.cc, OPERATORS/op-b-bm.cc, OPERATORS/op-bm-b.cc, 24964 OPERATORS/op-bm-bm.cc, OPERATORS/op-cell.cc, OPERATORS/op-chm.cc, 24965 OPERATORS/op-cm-cm.cc, OPERATORS/op-cm-cs.cc, OPERATORS/op-cm-m.cc, 24966 OPERATORS/op-cm-s.cc, OPERATORS/op-cs-cm.cc, OPERATORS/op-cs-cs.cc, 24967 OPERATORS/op-cs-m.cc, OPERATORS/op-cs-s.cc, OPERATORS/op-m-cm.cc, 24968 OPERATORS/op-m-cs.cc, OPERATORS/op-m-m.cc, OPERATORS/op-m-s.cc, 24969 OPERATORS/op-range.cc, OPERATORS/op-s-cm.cc, OPERATORS/op-s-cs.cc, 24970 OPERATORS/op-s-m.cc, OPERATORS/op-s-s.cc, OPERATORS/op-str-str.cc, 24971 OPERATORS/op-str-m.cc, OPERATORS/op-str-s.cc (CATOPDECL, DEFCATOPX, 24972 DEFCATOP, DEFCATOP_FB, DEFNDCATOP_FN, CATOP_NONCONFORMANT, 24973 INSTALL_CATOP): Use them to define concatenation functions. 24974 24975 * OPERATORS/op-int.h (OCTAVE_CONCAT_FN, OCTAVE_INSTALL_CONCAT_FN): 24976 New macros to define and install concatentaion functions for int/uint 24977 types. 24978 24979 * TEMPLATE-INST/Array-tc.cc (INSTANTIATE_ARRAY_CAT): Delete. 24980 24981 * pt-mat.cc (tm_row_const::tm_row_const_rep::do_init_element): 24982 Also append empty elements to the list of elements to be parsed. 24983 (tree_matrix::rvalue): Use new concatenation binary operators. 24984 24985 * data.cc (cat_add_dims): Delete (now dim_vector::concat). 24986 (do_cat): Use new concatenation binary operators. 24987 24988 * ov-typeinfo.cc (cat_op_fcn): Instantiate the array of cat functions. 24989 (register_cat_op, do_register_cat_op, do_lookup_cat_op): New functions. 24990 (cat_ops): Lookup table of binary concatentaion operators. 24991 24992 * ov-typeinfo.h (lookup_cat_op): New function. 24993 24994 * ov.cc (gripe_cat_op, gripe_cat_op_conv, do_cat_op): New functions. 24995 24996 * ov.h (cat_op_fcn): Definition. 24997 (resize, do_cat_op): New functions. 24998 24999 * ov-intx.h (resize): New_function 25000 25001 * version.h (OCTAVE_API_VERSION): Bump version to api-v9. 25002 25003 * Cell.cc, Cell.h, oct-map.cc, oct-map.h (cat): Delete. 25004 (concat): New function. 25005 25006 * Cell.cc, Cell.h (insert): New function 25007 25008 * ov-base.cc, ov-base.h, ov-scalar.h, ov-complex.h, ov-bool.h, 25009 ov-range.h, ov-base-mat.h, (resize): New function. 25010 250112004-07-23 John W. Eaton <jwe@octave.org> 25012 25013 * symtab.cc (whos_parameter): Move decl here, from symtab.h. 25014 250152004-07-23 Oyvind Kristiansen <oyvinkri@stud.ntnu.no> 25016 25017 * symtab.cc (symbol_record::subsymbols_list): New method. 25018 (symbol_record::maybe_list): Call to subsymbols_list and merge 25019 result with the original list of symbols. 25020 25021 * symtab.cc (symbol_record::make_dimensions_string): New method. 25022 (symbol_record::print_symbol_info_line): Print N-d info. Output 25023 for long format now under control of format string. 25024 (symbol_table::maybe_list): Headers to whos listing updated. 25025 Also print footer info. 25026 (symbol_table::print_descriptor): Method printing the 25027 header of whos listings. 25028 (symbol_table::parse_whos_line_format): New method. 25029 (whos_line_format, Vwhos_line_format): New built-in variables. 25030 (symbols_of_symtab): DEFVAR them. 25031 (symbol_record::nelem, symbol_record::symbol_def::nelem, 25032 symbol_record::byte_size, symbol_record::symbol_def::byte_size): 25033 New methods. 25034 (symbol_record::dimensions_string_req_first_space): New method. 25035 (symbol_record::dimensions_string_req_total_space): New method. 25036 * symtab.h (whos_parameter): New struct. Container for one 25037 parameter in whos_line_format. 25038 250392004-07-22 Paul Kienzle <pkienzle@users.sf.net> 25040 25041 * DLD-FUNCTIONS/dassl.cc (Fdassl): Fix doc string. 25042 * ov-struct.cc (Fstruct): Likewise. 25043 * symtab.cc (Fdebug_symtab_lookups): Likewise. 25044 250452004-07-22 David Bateman <dbateman@free.fr> 25046 25047 * data.cc (Fsize): Return 1 for dimensions exceeding ndim. 25048 25049 * ov.cc (octave_value::octave_value (const ArrayN<double>)): 25050 New constructor. 25051 * ov.h: Provide decl. 25052 * ov-cx-mat.h (octave_complex_matrix (const ArrayN<Complex>&)): 25053 New constructor. 25054 * ov-re-mat.h (octave_complex_matrix (const ArrayN<double>&)): 25055 New constructor. 25056 25057 * ov-re-mat.h (octave_matrix(const ArrayN<double>&)): New constructor 25058 * pt-loop.cc (DO_ND_LOOP): New macro for use of NDArray in for loop. 25059 (tree_simple_for_command::eval): Use it, and allow iteration over 25060 cell arrays. 25061 250622004-07-12 John W. Eaton <jwe@octave.org> 25063 25064 * ov-intx.h: N-d array and scalar extractor functions take no args. 25065 25066 * ov.h (octave_value::int8_scalar_value, 25067 octave_value::int16_scalar_value, octave_value::int32_scalar_value, 25068 octave_value::int64_scalar_value, octave_value::uint8_scalar_value, 25069 octave_value::uint16_scalar_value, octave_value::uint32_scalar_value, 25070 octave_value::uint64_scalar_value): New functions. 25071 * ov-base.cc (octave_base_value::int8_scalar_value, 25072 octave_base_value::int16_scalar_value, 25073 octave_base_value::int32_scalar_value, 25074 octave_base_value::int64_scalar_value, 25075 octave_base_value::uint8_scalar_value, 25076 octave_base_value::uint16_scalar_value, 25077 octave_base_value::uint32_scalar_value, 25078 octave_base_value::uint64_scalar_value): New functions. 25079 * ov-base.h: Provide decls. 25080 25081 * lex.l: (Vtoken_count): New static variable. 25082 (COUNT_TOK_AND_RETURN): New macro. Use it everywhere a token is 25083 returned to the parser. 25084 (F__token_count__): New function. 25085 250862004-06-25 John W. Eaton <jwe@octave.org> 25087 25088 * OPERATORS/op-int-conv.cc: Add conversions for range type. 25089 250902004-06-17 John W. Eaton <jwe@octave.org> 25091 25092 * bitfcns.cc (bitfcns): New file. 25093 * Makefile.in (DIST_SRC): Add it to the list. 25094 250952004-06-16 John W. Eaton <jwe@octave.org> 25096 25097 * OPERATORS/op-int.h: New file. 25098 * OPERATORS/op-i16-i16.cc, OPERATORS/op-i8-i8.cc, 25099 OPERATORS/op-ui32-ui32.cc, OPERATORS/op-i32-i32.cc, 25100 OPERATORS/op-int-conv.cc, OPERATORS/op-ui64-ui64.cc, 25101 OPERATORS/op-i64-i64.cc, OPERATORS/op-ui16-ui16.cc, 25102 OPERATORS/op-ui8-ui8.cc: Use new macros from op-int.h. 25103 251042004-06-14 John W. Eaton <jwe@octave.org> 25105 25106 * pr-output.h, pr-output.cc (octave_print_conv): New traits class. 25107 (template <class T> void octave_print_internal (std::ostream&, 25108 const intNDArray<T>&, bool, int), 25109 (template <class T> void octave_print_internal (std::ostream&, 25110 const octave_int<T>&, bool)): New template functions. 25111 Instantiate versions for new int types. 25112 25113 * ov-typeinfo.h (octave_value_typeinfo::type_conv_ops): 25114 New data member. 25115 (octave_value_typeinfo::register_type_conv_op, 25116 octave_value_typeinfo::lookup_type_conv_op, 25117 octave_value_typeinfo::do_register_type_conv_op, 25118 octave_value_typeinfo::do_lookup_type_conv_op): New functions. 25119 25120 * ov-re-mat.cc (Fdouble): New function. 25121 25122 * ov-range.h (octave_range::reshape): Reshape array_value, not 25123 matrix_value. 25124 25125 * ov-base-scalar.h (octave_base_scalar<ST>::all, 25126 octave_base_scalar<ST>::any, octave_base_scalar<ST>::is_true): Use 25127 ST() instead of 0.0. 25128 25129 * ov-base-mat.h (octave_base_matrix<MT>::byte_size): New function. 25130 25131 * ops.h (INSTALL_COLNVOP, DEFCONVFNX, DEFDBLCONVFN, DEFCONVFN, 25132 DEFCONVFN2): New macros. 25133 25134 * DLD-FUNCTIONS/filter.cc (Ffilter): Kluge type conversions. 25135 25136 * ov.cc (install_types): Register new integer types. 25137 25138 * ov.h, ov.cc (octave_value::octave_value (const octave_int8&), 25139 octave_value::octave_value (const octave_uint8&), 25140 octave_value::octave_value (const octave_int16&), 25141 octave_value::octave_value (const octave_uint16&), 25142 octave_value::octave_value (const octave_int32&), 25143 octave_value::octave_value (const octave_uint32&), 25144 octave_value::octave_value (const octave_int64&), 25145 octave_value::octave_value (const octave_uint64&), 25146 octave_value::octave_value (const int8NDArray&), 25147 octave_value::octave_value (const uint8NDArray&), 25148 octave_value::octave_value (const int16NDArray&), 25149 octave_value::octave_value (const uint16NDArray&), 25150 octave_value::octave_value (const int32NDArray&), 25151 octave_value::octave_value (const uint32NDArray&), 25152 octave_value::octave_value (const int64NDArray&), 25153 octave_value::octave_value (const uint64NDArray&)): 25154 New constructors. 25155 25156 * ov.h (octave_value::internal_rep): New function. 25157 (DECLARE_OV_TYPEID_FUNCTIONS_AND_DATA): Also define 25158 static_type_id, static_type_name, and static_class_name 25159 functions. 25160 25161 * Cell.h (Cell::reshape (const dim_vector&)): New forwarding 25162 function for return type conversion. 25163 25164 * ov-int16.cc, ov-int16.h, ov-int32.cc, ov-int32.h, ov-int64.cc, 25165 ov-int64.h, ov-int8.cc, ov-int8.h, ov-uint16.cc, ov-uint16.h, 25166 ov-uint32.cc, ov-uint32.h, ov-uint64.cc, ov-uint64.h, ov-uint8.cc, 25167 ov-uint8.h, ov-type-conv.h, ov-int-traits.h, 25168 OPERATORS/op-int-conv.cc, OPERATORS/op-double-conv.cc, 25169 OPERATORS/op-i16-i16.cc, OPERATORS/op-i32-i32.cc, 25170 OPERATORS/op-i64-i64.cc, OPERATORS/op-i8-i8.cc, 25171 OPERATORS/op-ui16-ui16.cc, OPERATORS/op-ui32-ui32.cc, 25172 OPERATORS/op-ui64-ui64.cc, OPERATORS/op-ui8-ui8.cc: New files. 25173 Makefile.in: Add them to the appropriate lists. 25174 251752004-06-03 John W. Eaton <jwe@octave.org> 25176 25177 * ov-fcn-handle.h (octave_function_handle::is_matrix_type, 25178 octave_function_handle::is_numeric_type, 25179 octave_function_handle::is_constant, 25180 octave_function_handle::is_true): New functions. 25181 (octave_function_handle::is_defined): Delete (inherited version is 25182 OK). 25183 251842004-06-03 David Bateman <dbateman@free.fr> 25185 25186 * DLD-FUNCTIONS/filter.cc: Fix for length(a)=1 && length(b)=2 case. 25187 251882004-05-07 John W. Eaton <jwe@octave.org> 25189 25190 * ov.cc (octave_value::print_with_name): Only print name tag if 25191 Vprint_answer_id_name is true. 25192 25193 * octave.cc (intern_argv): Insert __nargin__ in top_level_sym_tab 25194 instead of making it a builtin variable. Mark it static. 25195 * ov-usr-fcn.cc (octave_user_function::install_automatic_vars): 25196 Mark local automatic variables static. 25197 251982004-04-30 John W. Eaton <jwe@octave.org> 25199 25200 * oct-stream.cc (octave_base_stream::clearerr): New function. 25201 (octave_stream::clearerr): New function. 25202 (seek (long, int)): Call clearerr here. 25203 * oct-stdstrm.h (octave_stdiostream::clear): New function. 25204 * c-file-ptr-stream.h (c_file_ptr_buf::clear, 25205 i_c_file_ptr_stream::clear, o_c_file_ptr_stream::clear, 25206 io_c_file_ptr_stream::clear): New functions. 25207 252082004-04-29 David Bateman <dbateman@free.fr> 25209 25210 * load-save.cc (Fload, Fsave): Accept -mat as well as -mat-binary. 25211 252122004-04-27 David Bateman <dbateman@free.fr> 25213 25214 * DLD-FUNCTIONS/sort.cc: Add missing "class" keywords to template 25215 instantiations. 25216 252172004-04-22 John W. Eaton <jwe@octave.org> 25218 25219 * pt-plot.cc (Fclearplot): Temporarily turn off automatic_replot. 25220 Clear display after resetting title, labels, etc. 25221 252222004-04-22 John W. Eaton <jwe@bevo.che.wisc.edu> 25223 25224 * pt-colon.cc (tree_colon_expression::rvalue): Also check for 25225 error_state after evaluating each subexpression. 25226 252272004-04-22 David Bateman <dbateman@free.fr> 25228 25229 * ov-base-scalar.h (octave_base_scalar<ST>::permute): New function. 25230 25231 * ov-base-mat.cc (octave_base_matrix<MT>::is_true): Make N-d aware. 25232 252332004-04-22 John W. Eaton <jwe@octave.org> 25234 25235 * oct-stream.cc (printf_value_cache::curr_value): Now NDArray. 25236 (printf_value_cache::double_value): Extract N-d array, not Matrix. 25237 252382004-04-21 John W. Eaton <jwe@octave.org> 25239 25240 * parse.y (function2): Pass id name to frob_function. Delete id. 25241 (frob_function): Accept function name instead of identifier. 25242 Don't try to rename symbol table entry. Lookup symbol record for 25243 function name here. Insert name in symbol table if needed. 25244 Operate on symbol record instead of identifier. 25245 252462004-04-21 David Bateman <dbateman@free.fr> 25247 25248 * DLD_FUNCTIONS/fft.cc(do_fft): Correctly initialize the variable dim 25249 for scalar arguments. 25250 25251 * DLD-FUNCTIONS/minmax.cc: Handle single vector arg correctly. 25252 252532004-04-20 John W. Eaton <jwe@octave.org> 25254 25255 * ls-mat-ascii.cc (read_mat_ascii_data): Prepend "X" to keywords. 25256 Only drop text after last "." in name. 25257 25258 * lex.l (is_keyword): New function. 25259 (Fiskeyword): Use it. 25260 * lex.h: Provide decl. 25261 25262 * lex.l (is_keyword_token): Rename from is_keyword. 25263 252642004-04-16 John W. Eaton <jwe@octave.org> 25265 25266 * file-io.cc (maybe_warn_interface_change): New function. 25267 (fopen_mode_to_ios_mode): Use it. 25268 252692004-04-16 Paul Kienzle <pkienzle@users.sf.net> 25270 25271 * file-io.cc (fopen_mode_to_ios_mode): Default to binary mode. 25272 (Ffopen): Document 't' and 'b' mode flags. 25273 252742004-04-16 John W. Eaton <jwe@octave.org> 25275 25276 * Makefile.in (DLD_XSRC): Add gcd.cc to the list. 25277 252782004-04-16 David Bateman <dbateman@free.fr> 25279 25280 * DLD-FUNCTIONS/gcd.cc: New file. 25281 252822004-04-15 David Bateman <dbateman@free.fr> 25283 25284 * ov-ch-mat.h: convert_to_str_interal returns charNDArray. 25285 252862004-04-12 John W. Eaton <jwe@octave.org> 25287 25288 * version.h (OCTAVE_BUGS_STATEMENT): Bug list is now bug@octave.org. 25289 252902004-04-08 John W. Eaton <jwe@octave.org> 25291 25292 * ov-base-mat.cc (octave_base_matrix<MT>::do_index_op): Quit early 25293 if an error occurs when creating index vector object. 25294 25295 * ov.cc (octave_value::numeric_assign): Always call maybe_mutate 25296 on return value. 25297 252982004-04-06 David Bateman <dbateman@free.fr> 25299 25300 * DLD_FUNCTIONS/sort.cc: Use the new template sort class, adapt for 25301 N-d arrays, and allow optional dim argument. 25302 25303 * DLD_FUNCTIONS/fftn.cc: Save result of transpose operation. 25304 Check for failure of transpose. 25305 253062004-04-02 John W. Eaton <jwe@bevo.che.wisc.edu> 25307 25308 * ov-bool.h (octave_bool::bool_array_value): New function. 25309 25310 * ov-base-mat.cc (octave_base_matrix<MT>::subsasgn): Don't allow 25311 expressions like x(i)(j) or x(i){j} when x is empty. 25312 25313 * load-save.cc (get_file_format): Error if file does not exist. 25314 (Fload): Also complain here if specific file type is specified and 25315 file does not exist. 25316 253172004-04-02 Quentin Spencer <qspencer@ieee.org> 25318 25319 * parse.y: Use persistent instead of static in warnings messages. 25320 253212004-04-02 John W. Eaton <jwe@bevo.che.wisc.edu> 25322 25323 * pt-decl.cc (tree_static_command::do_init): Initialize to empty 25324 matrix by default. 25325 253262004-04-02 David Bateman <dbateman@free.fr> 25327 25328 * ov-re-mat.cc (octave_matrix::convert_to_str_internal): 25329 Return charNDArray. 25330 * ov-bool-mat.cc (octave_bool_matrix::convert_to_str_internal): 25331 Call array_value. 25332 25333 * DLD-FUNCTIONS/besselj.cc, DLD-FUNCTIONS/betainc.cc, 25334 DLD-FUNCTIONS/gammainc.cc, DLD-FUNCTIONS/minmax.cc, 25335 DLD-FUNCTIONS/filter.cc: 25336 Convert for N-d array, better Matlab compatibility. 25337 25338 * load-save.cc (Fload): Better handling of non existent files. 25339 253402004-03-19 John W. Eaton <jwe@bevo.che.wisc.edu> 25341 25342 * ov-list.cc (octave_list::subsref): Correctly create return value. 25343 Return comma-separate list if {-style indexing extracts more than 25344 one value. 25345 253462004-03-12 John W. Eaton <jwe@bevo.che.wisc.edu> 25347 25348 * version.h (OCTAVE_VERSION): Now 2.1.57. 25349 (OCTAVE_API_VERSION): Now api-v8. 25350 25351 * ov-cell.cc (octave_cell::save_hdf5): Handle empty cells. 25352 (octave_cell::load_hdf5): Likewise. 25353 253542004-03-11 John W. Eaton <jwe@bevo.che.wisc.edu> 25355 25356 * ov-base-mat.cc (octave_base_matrix<MT>::subsasgn): If empty, 25357 allow type conversion when indexing with "{" and ".". 25358 253592004-03-10 John W. Eaton <jwe@bevo.che.wisc.edu> 25360 25361 * pr-output.cc (init_format_state): Also set compact_format. 25362 (pr_col_num_header): Print one newline character before column 25363 headers for compact format. 25364 253652004-03-09 John W. Eaton <jwe@bevo.che.wisc.edu> 25366 25367 * version.h (OCTAVE_WWW_STATEMENT): New macro. 25368 (OCTAVE_STARTUP_MESSAGE): Include it here. 25369 (OCTAVE_NAME_VERSION_COPYRIGHT_COPYING_WARRANTY_AND_BUGS): And here. 25370 25371 * octave.cc (verbose_usage): Use OCTAVE_WWW_STATEMENT here. 25372 25373 * DLD-FUNCTIONS/find.cc (find_nonzero_elem_idx): If there are no 25374 nonzero elements, return [](0x1) or [](1x0), not [](0x0). 25375 Correctly preserve orientation for row vectors. 25376 253772004-03-08 Petter Risholm <risholm@idi.ntnu.no> 25378 25379 * data.cc (do_cat): Check for length of args before getting dimension. 25380 New arg, fname. Print usage message corresponding to fname. 25381 (Fcat): Pass "cat" as fname arg to do_cat. 25382 (Fhorzcat): Pass "horzcat" as fname arg to do_cat. 25383 (Fvertcat): Pass "vertcat" as fname arg to do_cat. 25384 253852004-03-05 John W. Eaton <jwe@bevo.che.wisc.edu> 25386 25387 * version.h (OCTAVE_VERSION): Now 2.1.56. 25388 (OCTAVE_API_VERSION): Now api-v7. 25389 253902004-03-04 John W. Eaton <jwe@bevo.che.wisc.edu> 25391 25392 * ov-struct.cc (Frmfield): New function 25393 25394 * oct-map.h (Octave_map::contains): Return bool, not int. 25395 25396 * ov-cell.cc (Fiscellstr): No error if arg is not a cell array. 25397 (Fcellstr): Return arg if it is already a cell array of character 25398 strings. 25399 254002004-03-03 John W. Eaton <jwe@bevo.che.wisc.edu> 25401 25402 * ov-bool.cc (octave_bool::load_hdf5, octave_bool::save_hdf5): 25403 Avoid unnecessary casts. 25404 * ov-bool-mat.cc (octave_bool_matrix::load_hdf5, 25405 octave_bool_matrix::save_hdf5): Likewise. 25406 * ov-cell.cc (octave_cell::load_hdf5, octave_cell::save_hdf5): 25407 Likewise. 25408 * ov-complex.cc (octave_complex::load_hdf5, 25409 octave_complex::save_hdf5): Likewise. 25410 * ov-cx-mat.cc (octave_complex_matrix::load_hdf5, 25411 octave_complex_matrix::save_hdf5): Likewise. 25412 * ov-range.cc (octave_range::load_hdf5, octave_range::save_hdf5): 25413 Likewise. 25414 * ov-re-mat.cc (octave_matrix::load_hdf5, octave_matrix::save_hdf5): 25415 Likewise. 25416 * ov-scalar.cc (octave_scalar::load_hdf5, octave_scalar::save_hdf5): 25417 Likewise. 25418 * ov-str-mat.cc (octave_char_matrix_str::load_hdf5, 25419 octave_char_matrix_str::save_hdf5): Likewise. 25420 254212004-03-03 David Bateman <dbateman@free.fr> 25422 25423 * ov-cell.cc (octave_cell::save_hdf5, octave_cell::load_hdf5): 25424 Make N-d aware. 25425 254262004-03-03 John W. Eaton <jwe@bevo.che.wisc.edu> 25427 25428 * parse.y: Delete spaces surrounding = in %name-prefix directive. 25429 254302004-03-01 Petter Risholm <risholm@idi.ntnu.no> 25431 25432 * Cell.cc (Cell::cat): New function. 25433 * Cell.h: Provide decl. 25434 25435 * oct-map.cc (Octave_map::cat): New function. 25436 * oct-map.h: Provide decl. 25437 25438 * data.cc (Fcat): Speedup implementation. 25439 25440 * data.cc (Fhorzcat, Fvertcat): New functions. 25441 25442 * Array-tc.cc: Instantiate cat function. 25443 254442004-03-01 David Bateman <dbateman@free.fr> 25445 25446 * ls-hdf5.cc (save_hdf5_empty, load_hdf5_empty): New functions 25447 to save/load empty matrices keeping their dimensions. 25448 * ls-hdf5.h (save_hdf5_empty, load_hdf5_empty): Provide decls. 25449 25450 * ov-re-mat.cc (save_hdf5, load_hdf5): Cleanup, check empty matrix. 25451 * ov-cx-mat.cc (save_hdf5, load_hdf5): Ditto. 25452 * ov-bool-mat.cc (save_hdf5, load_hdf5): Ditto. 25453 25454 * ov-str-mat.cc (save_ascoo, load_ascii, save_binary, 25455 load_binary, save_hdf5, load_hdf5): Cleanup, check empty matrix, 25456 and save/load N-d arrays. 25457 254582004-02-27 John W. Eaton <jwe@bevo.che.wisc.edu> 25459 25460 * octave.cc (execute_startup_files): Don't find current directory 25461 for absolute name of local_rc until after executing home_rc. 25462 254632004-02-24 John W. Eaton <jwe@bevo.che.wisc.edu> 25464 25465 * input.cc (input_event_hook): Return type is now int. Return 0. 25466 25467 * file-io.cc (do_stream_open): Don't call ::error if stream can't 25468 be created. Don't call ::fopen if arch is invalid. Set error 25469 state for stream if fopen fails. 25470 * oct-stream.h (octave_stream::error (const char *)): New function. 25471 (octave_stream::error (const std::string&)): Now public. 25472 254732004-02-23 John W. Eaton <jwe@bevo.che.wisc.edu> 25474 25475 * file-io.cc (Fftell): Return long integer instead of streamoff_array. 25476 (do_stream_open): Create octave_stdiostream instead of octave_fstream. 25477 25478 * oct-fstrm.cc (octave_fstream::seek, octave_fstream::tell): 25479 Always fail. Signatures now match C library functionsb. 25480 * oct-iostrm.cc (octave_base_iostream::seek, 25481 octave_base_iostream::tell): Likewise. 25482 * oct-strstrm.cc (octave_base_strstream::seek, 25483 octave_base_strstream::tell): Likewise. 25484 25485 * oct-stream.cc (octave_stream::seek, octave_stream::tell): 25486 Signatures now match C-library functions. 25487 25488 * oct-stdstrm.cc (octave_stdiostream::seek, octave_stdiostream::tell): 25489 Call io_c_file_ptr_stream::seek and tell. Signatures now match 25490 C-library functions. 25491 25492 * c-file-ptr-stream.h (c_file_ptr_buf::seek, c_file_ptr_buf::tell): 25493 New functions. 25494 (i_c_file_ptr_stream::seek, i_c_file_ptr_stream::tell): Likewise. 25495 (o_c_file_ptr_stream::seek, o_c_file_ptr_stream::tell): Likewise. 25496 (io_c_file_ptr_stream::seek, io_c_file_ptr_stream::tell): Likewise. 25497 254982004-02-20 John W. Eaton <jwe@bevo.che.wisc.edu> 25499 25500 * version.h (OCTAVE_VERSION): Now 2.1.55. 25501 (OCTAVE_API_VERSION): Now api-v6. 25502 25503 * sighandlers.cc (sigfpe_handler, sigpipe_handler): 25504 Don't increment octave_interrupt_state if it is less than 0. 25505 (sigint_handler): If octave_interrupt_state is less than zero, 25506 reset it. 25507 25508 * pt-except.cc (do_catch_code): Call OCTAVE_QUIT here so the catch 25509 code won't run if an interrupt is pending. Don't run catch code 25510 if octave_interrupt_state is less than zero. 25511 255122004-02-20 Per Persson <persquare@mac.com> 25513 25514 * Makefile.in (OCT_LINK_DEPS, OCTINTERP_LINK_DEPS): 25515 Include $(LIBS) in the list before $(FLIBS). 25516 255172004-02-20 John W. Eaton <jwe@bevo.che.wisc.edu> 25518 25519 * pr-output.cc (octave_print_internal (std::ostream&, const 25520 Range&, bool, int)): Don't print values beyond the limits of the 25521 range. 25522 25523 * sighandlers.cc (sigint_handler): Print message after two 25524 consecutive interrupts, dump core after three or more. 25525 25526 * load-save.cc (dump_octave_core): Handle core size limit. 25527 Rename from save_user_variables. Change all callers. 25528 (Fload, dump_octave_core, Fsave): Open HDF5 fils in binary mode. 25529 (do_save): Extract switch over file types to separate function. 25530 25531 * load-save.cc (Voctave_core_file_limit): New variable. 25532 (octave_core_file_limit): New function. 25533 (symbols_of_load_save): Add DEFVAR for octave_core_file_limit. 25534 25535 * load-save.cc (Voctave_core_file_name): New variable. 25536 (octave_core_file_name): New function. 25537 (symbols_of_load_save): Add DEFVAR for octave_core_file_name. 25538 25539 * load-save.cc (Voctave_core_file_format): 25540 Rename from Voctave_core_format. 25541 (octave_core_file_format): Rename from octave_core_format. 25542 (symbols_of_load_save): Fix DEFVAR to match. 25543 255442004-02-19 John W. Eaton <jwe@bevo.che.wisc.edu> 25545 25546 * ov.cc (Fsizeof): New function. 25547 25548 * ov.h (octave_value::byte_size): New function. 25549 * ov-base.h (octave_base_value::byte_size): New function. 25550 * ov-base-scalar.h (octave_base_scalar::byte_size): New function. 25551 * ov-bool-mat.h (octave_bool_matrix::byte_size): New function. 25552 * ov-ch-mat.h (octave_char_matrix::byte_size): New function. 25553 * ov-cx-mat.h (octave_complex_matrix::byte_size): New function. 25554 * ov-re-mat.h (octave_matrix::byte_size): New function. 25555 * ov-range.h (octave_range::byte_size): New function. 25556 * ov-cell.cc (octave_cell::byte_size): New function. 25557 * ov-cell.h: Provide decl. 25558 * ov-struct.cc (octave_struct::byte_size): New function. 25559 * ov-struct.h: Provide decl. 25560 * ov-streamoff.h (octave_streamoff::byte_size): New function. 25561 * ov-list.cc (octave_list::byte_size): New function. 25562 * ov-list.h: Provide decl. 25563 25564 * xpow.cc (elem_xpow (const Matrix&, double)): 25565 Convert both operands to Complex if any element of A is negative. 25566 (elem_xpow (const NDArray&, double)): Likewise. 25567 255682004-02-18 John W. Eaton <jwe@bevo.che.wisc.edu> 25569 25570 * load-save.cc (Voctave_core_format): New static_variable. 25571 (octave_core_format): New function. 25572 (symbols_of_load_save): Add DEFVAR for octave_core_format. 25573 (get_save_format): Rename from get_default_save_format. 25574 Pass name of format as arg. New optional arg, fallback_format. 25575 Change all uses. 25576 (save_user_variables): Use pass Voctave_core_format to 25577 get_save_format here. Pass LS_BINARY as fallback_format. 25578 25579 * sighandlers.cc (my_friendly_exit): New optional arg, save_vars. 25580 Only call save_user_variables if save_vars is true. 25581 (sigint_handler): If interactive, offer to abort and save 25582 workspace after three consecutive interrupts. 25583 (sigint_handler, sigpipe_handler, sigfpe_handler): 25584 Increment octave_interrupt_handler instead of setting it to 1. 25585 255862004-02-16 John W. Eaton <jwe@bevo.che.wisc.edu> 25587 25588 * version.h (OCTAVE_VERSION): Now 2.1.54. 25589 (OCTAVE_API_VERSION): Now api-v5. 25590 25591 * Makefile.in (DLD_XSRC): Always include fftw_wisdom.cc. 25592 25593 * DLD-FUNCTIONS/fftw_wisdom.cc: 25594 Rename from DLD-FUNCTIONS/fft_wisdom.cc. 25595 (Vfftw_wisdom_prog): Delete extern decl. 25596 (Ffftw_wisdom): Rename from Ffft_wisdom. 25597 Use Vfftw_wisdom_prog instead of Vwisdom_prog. 25598 Always define function. Signal error if not configured to use FFTW3. 25599 25600 * defaults.cc (symbols_of_defaults): Rename WISDOM_PROGRAM to be 25601 FFTW_WISDOM_PROGRAM. 25602 (Vfftw_wisdom_prog): Rename from Vwisdom_prog. 25603 (fftw_wisdom_program): Rename from wisdom_program. 25604 For simplicity, always define FFTW_WISDOM_PROGRAM even when not 25605 using fftw3. 25606 (set_default_wisdom_prog): Look for OCTAVE_FFTW_WISDOM_PROGRAM in 25607 the environment instead of OCTAVE_WISDOM_PROGRAM. 25608 (set_default_fftw_wisdom_prog): Rename from set_default_wisdom_prog. 25609 * defaults.h.in (Vfftw_wisdom_prog): Provide extern decl. 25610 256112004-02-16 David Bateman <dbateman@free.fr> 25612 25613 * DLD-FUNCTIONS/fft.cc: Adapt for Nd arrays, combine with ifft.cc. 25614 * DLD-FUNCTIONS/ifft.cc: Delete. 25615 * DLD-FUNCTIONS/fft2.cc: Adapt for Nd arrays, combine with ifft.cc. 25616 * DLD-FUNCTIONS/ifft2.cc: Delete. 25617 * DLD-FUNCTIONS/fftn.cc: New function for Nd FFT and inverse FFT. 25618 * DLD-FUNCTIONS/fft_wisdom.cc: New function to manipulate FFTW 25619 wisdom. 25620 25621 * Makefile.in: Remove ifft.cc and ifft2.cc. Add fftn.cc and 25622 ifftn.cc. Make building of fft-wisdom.cc conditional on the 25623 value of FFTW_LIBS. 25624 * defaults.cc (Vwisdom_prog): New variable 25625 (set_default_wisdom_prog, wisdom_prog): New functions. 25626 (symbols_of_defaults): Add DEFVAR for wisdom_prog. 25627 256282004-02-16 John W. Eaton <jwe@bevo.che.wisc.edu> 25629 25630 * ov-list.cc (octave_list::subsasgn): Call assign for Cell objects 25631 here, not the base octave_value::assign. 25632 256332004-02-15 John W. Eaton <jwe@bevo.che.wisc.edu> 25634 25635 * lex.l (yywrap): Don't #undef this symbol. 25636 256372004-02-15 Petter Risholm <risholm@stud.ntnu.no> 25638 25639 * pt-mat.cc: Make [,] concatenation work for N-d arrays. 25640 256412004-02-15 John W. Eaton <jwe@bevo.che.wisc.edu> 25642 25643 * data.cc (do_cat): Merge with Fcat. 25644 256452004-02-15 Petter Risholm <risholm@stud.ntnu.no> 25646 25647 * ov-cell.cc (Fstruct2cell): New function. 25648 256492004-02-14 John W. Eaton <jwe@bevo.che.wisc.edu> 25650 25651 * Makefile.in (OCTINTERP_LINK_DEPS, OCT_LINK_DEPS): Always define. 25652 25653 * oct-conf.h.in: Add OCTAVE_CONF_DL_LD, OCTAVE_CONF_DL_LDFLAGS, 25654 and OCTAVE_CONF_MKOCTFILE_DL_LDFLAGS. 25655 Delete OCTAVE_CONF_MKOCTFILE_SH_LDFLAGS. 25656 25657 * toplev.cc (octave_config_info): Delete MKOCTFILE_SH_LDFLAGS. 25658 Add DL_LD, DL_LDFLAGS, and MKOCTFILE_DL_LDFLAGS to the struct. 25659 256602004-02-14 Per Persson <persquare@mac.com> 25661 25662 * Makefile.in (%.oct): Use DL_LD instead of SH_LD to build .oct files. 25663 256642004-02-14 John W. Eaton <jwe@bevo.che.wisc.edu> 25665 25666 * ov-base-scalar.h (octave_base_scalar::squeeze): New function. 25667 256682004-02-13 Petter Risholm <risholm@stud.ntnu.no> 25669 25670 * data.cc (Fcat): New function. 25671 * data.cc (do_cat): New function. 25672 * data.cc (cat_add_dims): New function. 25673 256742004-02-13 John W. Eaton <jwe@bevo.che.wisc.edu> 25675 25676 * toplev.cc (main_loop): Call octave_parse, not yyparse. 25677 * octave.cc (octave_main): Increment octave_debug, not yydebug. 25678 * parse.y (%name-prefix): New directive, set to "octave_". 25679 * parse.h: Provide declarations for octave_lex and octave_parse 25680 instead of yylex and yyparse. 25681 * lex.l (%option prefix): New directive, set to "_octave". 25682 Define yylval to be octave_lval. 25683 Move definitions of YY_INPUT, YY_FATAL_ERROR, TOK_RETURN, 25684 TOK_PUSH_AND_RETURN, BIN_OP_RETURN, XBIN_OP_RETURN here. 25685 * lex.h: From here. 25686 256872004-02-07 Petter Risholm <risholm@stud.ntnu.no> 25688 25689 * ov-struct.cc (Fcell2struct): New function. 25690 (cell2struct_check_args, cell2struct_construct_idx): Likewise. 25691 256922004-02-07 John W. Eaton <jwe@bevo.che.wisc.edu> 25693 25694 * ov-scalar.h (octave_scalar::empty_clone): 25695 Return empty octave_matrix, not an octave_scalar object. 25696 * ov-complex.h (octave_complex::empty_clone): 25697 Return empty octave_complex_matrix, not an octave_complex object. 25698 256992004-02-06 John W. Eaton <jwe@bevo.che.wisc.edu> 25700 25701 * ov-usr-fcn.h (octave_user_function::function_name): Delete. 25702 (octave_user_function::fcn_name): Delete unused data member. 25703 (octave_user_function::stash_function_name): Save name in 25704 tree_function::my_name instead of fcn_name. 25705 Change all uses of fcn_name to be my_name instead. 25706 25707 * pt.h, pt.cc (tree::break_function): Now pointer to 25708 octave_function rather than octave_user_function object. 25709 25710 * pt-bp.h (MAYBE_DO_BREAKPOINT): Use name instead of function_name 25711 to get name from curr_function. 25712 * pt-pr-code.cc (tree_print_code::visit_octave_user_function_header): 25713 likewise. 25714 * debug.cc (Fdbwhere, Fdbtype, ): Likewise 25715 * error.cc (pr_where): Likewise. 25716 * variables.cc (Fmlock, Fmunlock, Fmislocked): Likewise. 25717 (lookup_function, lookup_user_function, link_to_builtin_or_function): 25718 Likewise, for curr_parent_function. 25719 25720 * debug.cc (get_user_function, Fdbwhere): 25721 Cast curr_function to pointer to octave_user_function. 25722 25723 * ov-mapper.cc (octave_mapper::do_multi_index_op): 25724 Save and restore curr_function here. 25725 * ov-builtin.cc (octave_builtin::do_multi_index_op): Likewise. 25726 25727 * toplev.h, toplev.cc (curr_function, curr_parent_function): Now 25728 pointers to octave_function rather than octave_user_function objects. 25729 25730 * ov-usr-fcn.h (octave_user_function::is_user_function): New function. 25731 * ov-fcn.h (octave_function::takes_varargs, 25732 octave_function::octave_va_start, octave_function::octave_va_arg, 25733 octave_function::octave_all_va_args, 25734 octave_function::takes_var_return, octave_function::octave_vr_val, 25735 octave_function::is_user_function): New virtual functions. 25736 257372004-02-05 John W. Eaton <jwe@bevo.che.wisc.edu> 25738 25739 * ov-struct.cc (Fstruct): Use new Octave_map constructor to create 25740 structures with specified sizes but no keys. 25741 25742 * ov-struct.cc (Fstruct): New function, from Paul Kienzle 25743 <pkienzle@users.sf.net> and Petter Risholm <risholm@stud.ntnu.no>. 25744 25745 * oct-map.h (Octave_map::Octave_map): Allow dimension to be 25746 specified for map with no keys. 25747 25748 * ov-struct.cc (fieldnames): Return 0x1 cell array if no fieldnames. 25749 257502004-02-05 Petter Risholm <risholm@stud.ntnu.no> 25751 25752 * ov-base-mat.cc (octave_base_matrix<MT>::do_index_op): 25753 Don't fail if number of indices is greater than 2. 25754 257552004-02-05 John W. Eaton <jwe@bevo.che.wisc.edu> 25756 25757 * data.cc (Fsize): Update for N-d objects. 25758 25759 * ls-mat5.cc (read_mat5_binary_element): Force conversion. 25760 25761 * ov-base.cc (octave_base_value::char_matrix_value): 25762 Pass force arg to convert_to_str. 25763 25764 * data.cc (Freshape): Chop trailing singletons from new dimensions. 25765 257662004-02-03 John W. Eaton <jwe@bevo.che.wisc.edu> 25767 25768 * error.cc (defun_usage_message): Only accept one arg, a const 25769 std::string& object. Change all uses. Pass nul-terminated string 25770 to defun_message_1. 25771 (defun_usage_message_1): New function, equivalent to old 25772 defun_usage_message. 25773 25774 * ov-base.cc (nint_value): Use fix, not NINT. 25775 (INT_CONV_METHOD): Likewise, use fix instead of just casting. 25776 25777 * data.cc (make_diag): Use int_value instead of nint_value to 25778 extract k for Matlab compatibility. 25779 (Flinspace): Likewise, for npoints. 25780 (fill_matrix): Likewise, for extracting dims. 25781 (Fsize): Likewise, for extracting dim argument. Require int value. 25782 * utils.cc (get_dimensions): Likewise. Use fix, not NINT. 25783 257842004-02-02 John W. Eaton <jwe@bevo.che.wisc.edu> 25785 25786 * error.cc (verror, error_1): New arg, os. Use this instead 25787 of always printing to std:cerr. Change all callers. 25788 25789 * error.cc (defun_usage_message): New function. 25790 * error.h: Provide decl. 25791 * defun.cc (print_usage): Use it to display error message. 25792 25793 * error.cc (verror): New arg, save_last_error. Change all callers. 25794 (usage): Set error_state after calling verror. 25795 25796 * oct-map.cc (Octave_map::assign (const std::string, const Cell&)): 25797 Set dimensions to RHS dimensions, not 1x1. 25798 257992004-01-23 John W. Eaton <jwe@bevo.che.wisc.edu> 25800 25801 * ov-bool.cc, ov-cx-mat.cc, ov-re-mat.cc, ov-str-mat.cc: 25802 Include <vector>. 25803 * file-io.cc, ls-hdf5.cc, ls-mat4.cc, ls-mat5.cc, ls-oct-binary.cc: 25804 Include <vector>, not <memory> for new defn of OCTAVE_LOCAL_BUFFER. 25805 * load-save.cc, ls-mat-ascii.cc, ls-oct-ascii.cc 25806 No need to include <memory> now. 25807 25808 * DLD-FUNCTIONS/eig.cc (Feig): Use new optional arg for EIG to 25809 avoid computing eigenvectors if not requested. 25810 Based on a patch from David Bateman <dbateman@free.fr>. 25811 258122004-01-23 John W. Eaton <jwe@bevo.che.wisc.edu> 25813 25814 * ov-cell.cc (all_strings): Always compute total required length 25815 of retval. 25816 258172004-01-22 John W. Eaton <jwe@bevo.che.wisc.edu> 25818 25819 * version.h (OCTAVE_VERSION): Now 2.1.53. 25820 (OCTAVE_API_VERSION): Now api-v4. 25821 25822 * error.cc (pr_where): New arg, print_code with default value true. 25823 (warning): Call pr_where with second arg false. 25824 25825 * file-io.cc (Ffrewind): Only return value if nargout > 0. 25826 (Ffprintf): Likewise. 25827 (Fprintf): Likewise. 25828 25829 * file-io.cc (Ffrewind): Return 0 for success, -1 for failure. 25830 Make docs match. 25831 25832 * Makefile.in (distclean): Remove DOCSTRINGS. 25833 (maintainer-clean): Remove $(OPT_HANDLERS). 25834 258352004-01-21 John W. Eaton <jwe@bevo.che.wisc.edu> 25836 25837 * ov-cell.cc (octave_cell::subsref): Make '{' case N-d aware. 25838 25839 * ov-scalar.cc (streamoff_array_value): New function. 25840 * ov-scalar.h: Provide decl. 25841 25842 * OPERATORS/op-streamoff.cc (STREAMOFF_COMP_OP): New maco. 25843 Use it to define streamoff by matrix, streamoff by scalar, scalar 25844 by streamoff, and matrix by streamoff comparison operators. 25845 (install_streamoff_ops): Install them. 25846 25847 * Cell.h (Cell::operator ()): Delete (we inherit them from Array<T>). 25848 (maybe_resize, elem_internal): Delete unused functions. 25849 25850 * ls-mat5.cc (write_mat5_cell_array): Cell& arg is now const. 25851 258522004-01-20 John W. Eaton <jwe@bevo.che.wisc.edu> 25853 25854 * variables.cc (is_valid_function): If warn, also print error 25855 message if arg is not a string. 25856 25857 * ov-usr-fcn.cc (Fnargin, Fnargout): New functions. 25858 25859 * octave.cc (intern_argv): Lookup __nargin__ instead of nargin. 25860 * ov-usr-fcn.cc (octave_user_function::install_automatic_vars): 25861 Lookup __nargin__ and __nargout__ instead of nargin and nargout. 25862 25863 * variables.h (at_top_level): Now extern. 25864 (lookup_user_function): New function. 25865 * variables.cc: Provide decls. 25866 25867 * ov.h, ov.cc (octave_value::user_function_value): 25868 New virtual function. 25869 * ov-base.h, ov-base.cc (octave_base_value::user_function_value): 25870 Provide default version. 25871 * ov-usr-fcn.h (octave_user_function::user_function_value): 25872 New function. 25873 25874 * ov-re-mat.cc (complex_array_value): New function. 25875 * ov-re-mat.h: Provide decl. 25876 25877 * ov-cell.cc (Fiscellstr): Don't return value on usage error. 25878 25879 * error.cc: (symbols_of_error): Delete DEFVAR for error_text. 25880 Define __error_text__ and error_text as aliases for lasterr. 25881 25882 * error.cc (bind_global_error_variable, clear_global_error_variable): 25883 Delete. 25884 * variables.h: Delete decls. 25885 25886 * parse.y (Feval, Fevalin): Don't call bind_global_error_variable. 25887 Don't add clear_global_error_variable to the unwind_protect stack. 25888 Increment buffer_error_messages before evaluating "eval" code, 25889 decrement it before evaluating "catch" code. 25890 25891 * pt-except.cc (do_catch_code): Don't call bind_global_error_variable. 25892 Don't add clear_global_error_variable to the unwind_protect stack. 25893 Decrement buffer_error_messages here. 25894 (tree_try_catch_command::eval): Increment buffer_error_messages here. 25895 25896 * error.cc, error.h (buffer_error_messages): Now an int. 25897 258982004-01-16 John W. Eaton <jwe@bevo.che.wisc.edu> 25899 25900 * toplev.cc (octave_config_info): Add float_format, 25901 words_big_endian, and words_little_endian to the struct. 25902 259032004-01-14 David Bateman <dbateman@free.fr> 25904 25905 * ov-cell.cc (octave_cell::load_hdf5): Fix for HDF5 version 1.6 25906 handling of number of objects in a group. 25907 * ov-struct.cc (octave_struct::load_hdf5): Likewise. 25908 * ov-list.cc (octave_list::load_hdf5): Likewise. 25909 * ls-hdf5.cc (read_hdf5_data): Likewise. 25910 259112004-01-13 John W. Eaton <jwe@bevo.che.wisc.edu> 25912 25913 * ls-hdf5.h: Surround contents with #if defined (HAVE_HDF5). 25914 259152004-01-10 John W. Eaton <jwe@bevo.che.wisc.edu> 25916 25917 * oct-stream.cc (convert_to_valid_int, get_size): 25918 Use lo_ieee_is_NaN_or_NA instead of xisnan. 25919 (octave_base_stream::do_printf): Correct special case check for 25920 NA, NaN, Inf, or out of range integers. 25921 25922 * dirfns.cc (Fglob): Always return list of files as a cell array. 25923 (Freaddir): Likewise. 25924 25925 * dirfns.cc (Fls): If nargout > 0, return ls output. 25926 259272004-01-09 John W. Eaton <jwe@bevo.che.wisc.edu> 25928 25929 * load-save.cc (Fload): Assume -force by default. 25930 25931 * oct-stream.cc (octave_base_stream::write): 25932 Allow fwrite (fid, "some string") to work. 25933 25934 * toplev.cc (Fcomputer): Delete. 25935 (octave_config_info): Add unix and windows fields to the struct. 25936 259372004-01-06 David Bateman <dbateman@free.fr> 25938 25939 * ls-hdf5.cc: Fix handle of old versus new format files. 25940 25941 * ls-oct-binary.cc: Split the load/save functionality into the types 25942 themselves. Backward compatibility maintained. 25943 25944 * ov-struct.cc (save_binary, load_binary): 25945 * ov-str-mat.cc (save_binary, load_binary): 25946 * ov-scalar.cc (save_binary, load_binary): 25947 * ov-re-mat.cc (save_binary, load_binary): 25948 * ov-range.cc (save_binary, load_binary): 25949 * ov-list.cc (save_binary, load_binary): 25950 * ov-cx-mat.cc (save_binary, load_binary): 25951 * ov-complex.cc (save_binary, load_binary): 25952 * ov-cell.cc (save_binary, load_binary): 25953 * ov-bool.cc (save_binary, load_binary): 25954 * ov-bool-mat.cc (save_binary, load_binary): 25955 New functions for loading and saving structures in octave binary 25956 format. 25957 25958 * ov-str-mat.h (save_binary, load_binary): 25959 * ov-scalar.h (save_binary, load_binary): 25960 * ov-re-mat.h (save_binary, load_binary): 25961 * ov-range.h (save_binary, load_binary): 25962 * ov-list.h (save_binary, load_binary): 25963 * ov-cx-mat.h (save_binary, load_binary): 25964 * ov-complex.h (save_binary, load_binary): 25965 * ov-cell.h (save_binary, load_binary): 25966 * ov-bool.h (save_binary, load_binary): 25967 * ov-bool-mat.h (save_binary, load_binary): 25968 * ov-struct.h (save_binary, load_binary): 25969 Provide decls. 25970 25971 * ov.h (save_binary, load_binary): New virtual functions. 25972 25973 * ov-base.cc (save_binary, load_binary): New functions, for fallbacks 25974 with error message. 25975 * ov-base.h: Provide decls. 25976 25977 * load-save.cc: Remove "-import" flag and make it the default. 25978 * load-save.h: Likewise. 25979 25980 * ls-oct-ascii.cc: Split the load/save functionality into the types 25981 themselves. Save "string" variables with the name "string" rather than 25982 string array. Backward compatiability maintained in ov-cs-mat.cc. 25983 Include new version of extract_keyword that halts if the next value is 25984 invalid rather that searching for the next valid value. 25985 25986 * ls-oct-ascii.h: Extract_keyword header updated. 25987 Include definition of OCT_RBV and CELL_ELT_TAG, since they are now 25988 used elsewhere. 25989 25990 * ls-hdf5.cc: Split load/save functionality into the types themselves. 25991 The hdf5 format is changed so that each object is a group with a 25992 dataset "type" being a string with the octave_value type and the 25993 dataset or group "value" containing the value of the data, struct, etc. 25994 This allows extensibility. Backward compatibility is maintained. The 25995 "import" flag is now assumed to always be true and has been removed. 25996 25997 * ov-struct.cc (save_ascii, load_ascii, save_hdf5, load_hdf5): 25998 * ov-str-mat.cc (save_ascii, load_ascii, save_hdf5, load_hdf5): 25999 * ov-scalar.cc (save_ascii, load_ascii, save_hdf5, load_hdf5): 26000 * ov-re-mat.cc (save_ascii, load_ascii, save_hdf5, load_hdf5): 26001 * ov-range.cc (save_ascii, load_ascii, save_hdf5, load_hdf5): 26002 * ov-list.cc (save_ascii, load_ascii, save_hdf5, load_hdf5): 26003 * ov-cx-mat.cc (save_ascii, load_ascii, save_hdf5, load_hdf5): 26004 * ov-complex.cc (save_ascii, load_ascii, save_hdf5, load_hdf5): 26005 * ov-cell.cc (save_ascii, load_ascii, save_hdf5, load_hdf5): 26006 * ov-bool.cc (save_ascii, load_ascii, save_hdf5, load_hdf5): 26007 * ov-bool-mat.cc (save_ascii, load_ascii, save_hdf5, load_hdf5): 26008 New functions for loading and saving structures in octave ascii 26009 and hdf5 formatted files. 26010 26011 * ov-struct.h (save_ascii, load_ascii, save_hdf5, load_hdf5): 26012 * ov-str-mat.h (save_ascii, load_ascii, save_hdf5, load_hdf5): 26013 * ov-scalar.h (save_ascii, load_ascii, save_hdf5, load_hdf5): 26014 * ov-re-mat.h (save_ascii, load_ascii, save_hdf5, load_hdf5): 26015 * ov-range.h (save_ascii, load_ascii, save_hdf5, load_hdf5): 26016 * ov-list.h (save_ascii, load_ascii, save_hdf5, load_hdf5): 26017 * ov-cx-mat.h (save_ascii, load_ascii, save_hdf5, load_hdf5): 26018 * ov-complex.h (save_ascii, load_ascii, save_hdf5, load_hdf5): 26019 * ov-cell.h (save_ascii, load_ascii, save_hdf5, load_hdf5): 26020 * ov-bool.h (save_ascii, load_ascii, save_hdf5, load_hdf5): 26021 * ov-bool-mat.h (save_ascii, load_ascii, save_hdf5, load_hdf5): 26022 Provide decls. 26023 26024 * ov-typeinfo.cc (octave_value_typeinfo::do_lookup_type): Include 26025 make_unique so that the stored type value is not used for all loaded 26026 variables. 26027 26028 * ov.h: (save_ascii, load_ascii, save_hdf5 and load_hdf5): 26029 New virtual functions. 26030 26031 * ov-base.cc (save_ascii, load_ascii, save_hdf5, load_hdf5): 26032 New functions, for fallbacks with error message. 26033 * ov-base.h: Provide decls. 26034 260352003-12-22 John W. Eaton <jwe@bevo.che.wisc.edu> 26036 26037 * ov-cx-mat.cc (octave_complex_matrix::assign): RHS arg is N-d. 26038 * ov-cx-mat.h: Fix decl. 26039 26040 * ops.h (DEFNDASSIGNOP_FN): New macro. 26041 * OPERATORS/op-bm-b.cc, OPERATORS/op-bm-bm.cc, 26042 OPERATORS/op-cm-cm.cc, OPERATORS/op-cm-cs.cc, 26043 OPERATORS/op-cm-m.cc, OPERATORS/op-cm-s.cc, OPERATORS/op-m-m.cc, 26044 OPERATORS/op-m-s.cc: Use it instead of DEFASSIGNOP_FN. 26045 260462003-12-19 John W. Eaton <jwe@bevo.che.wisc.edu> 26047 26048 * xpow.cc (xpow (double, double)): Avoid apparent GNU libm bug. 26049 260502003-12-17 John W. Eaton <jwe@bevo.che.wisc.edu> 26051 26052 * symtab.cc (symbol_record::print_symbol_info_line): 26053 Also check is_static to see if a symbol can be cleared. 26054 260552003-12-16 John W. Eaton <jwe@bevo.che.wisc.edu> 26056 26057 * lex.l (is_keyword): Also allow varargout_kw if 26058 lexer_flags.looking_at_return_list is false provided that we are 26059 defining a function and we haven't seen the function name yet. 26060 * parse.y (return_list): Don't require [] around varargout. 26061 26062 * DLD-FUNCTIONS/find.cc (DO_FIND_OP): Delete macro. 26063 (find_to_fortran_idx): Delete. Move guts of function to 26064 find_nonzero_elem_idx. 26065 (find_nonzero_elem_idx): Now a template function. Handle overall 26066 array index here too. Make it N-d aware. 26067 26068 * pt-pr-code.cc (tree_print_code::visit_complex_for_command, 26069 tree_print_code::visit_octave_user_function_header, 26070 tree_print_code::visit_matrix, tree_print_code::visit_cell, 26071 tree_print_code::visit_multi_assignment): Keep track of nearest 26072 [, {, or ( nesting level. 26073 (tree_print_code::visit_index_expression): Likewise. Check nesting 26074 level to decide how to print index. 26075 (tree_print_code::reset): Also reset nesting level stack. 26076 26077 * pt-pr-code.h (tree_print_code::nesting): New data member. 26078 (tree_print_code::tree_print_code): Initialize it. 26079 26080 * ov-base-mat.h (octave_base_matrix::octave_base_matrix (const MT&)): 26081 If arg has no dimensions, resize to be 0x0. 26082 260832003-12-15 John W. Eaton <jwe@bevo.che.wisc.edu> 26084 26085 * oct-map.cc (Octave_map::assign): Use Octave_map::contents member 26086 function instead of operator []. 26087 * ov-struct.cc (octave_struct::subsasgn): Likewise. 26088 * DLD-FUNCTIONS/time.cc (extract_tm): Likewise. 26089 26090 * DLD-FUNCTIONS/time.cc (mk_tm_map): Use Octave_map::assign member 26091 function instead of operator []. 26092 * DLD-FUNCTIONS/getrusage.cc (Fgetrusage): Likewise. 26093 * DLD-FUNCTIONS/getgrent.cc (mk_gr_map): Likewise. 26094 * DLD-FUNCTIONS/getpwent.cc (mk_pw_map): Likewise. 26095 * load-save.cc (do_load): Likewise. 26096 * ls-hdf5.cc (hdf5_read_next_data): Likewise. 26097 * ls-mat5.cc (read_mat5_binary_element): Likewise. 26098 * oct-map.cc (Octave_map::reshape): Likewise. 26099 * oct-map.cc (Octave_map::index): Likewise. 26100 * ov-fcn-handle.cc (Ffunctions): Likewise. 26101 * pt-idx.cc (make_arg_struct): Likewise. 26102 * sighandlers.cc (make_sig_struct): Likewise. 26103 * syscalls.cc (mk_stat_map): Likewise. 26104 * toplev.cc (Foctave_config_info): Likewise. 26105 26106 * ls-hdf5.cc (add_hdf5_data): Temporary Octave_map is now const. 26107 * ls-mat5.cc (save_mat5_binary_element): Likewise. 26108 26109 * oct-map.cc (Octave_map::assign (const std::string&, const 26110 octave_value&)): New function. 26111 * oct-map.h: Provide decl. 26112 (Octave_map::contents (const std::string&)): New function. 26113 (Octave_map::operator [] (const std::string&) const): Delete. 26114 (Octave_map::operator [] (const std::string&)): Delete. 26115 261162003-12-09 John W. Eaton <jwe@bevo.che.wisc.edu> 26117 26118 * OPERATORS/op-cell.cc: Allow transpose for cell arrays. 26119 * OPERATORS/op-m-m.cc, OPERATORS/op-cm-cm.cc, 26120 OPERATORS/op-bm-bm.cc, OPERATORS/op-streamoff.cc, 26121 OPERATORS/op-str-str.cc: Improve error message for attempt to 26122 transpose N-d object. 26123 261242003-11-27 John W. Eaton <jwe@bevo.che.wisc.edu> 26125 26126 * pt-arg-list.cc (F__end__): Handle N-d objects. 26127 261282003-11-25 John W. Eaton <jwe@bevo.che.wisc.edu> 26129 26130 * OPERATORS/op-b-bm.cc: New file. 26131 26132 * OPERATORS/op-bm-b.cc (op_el_and, op_el_or): Define and install. 26133 * OPERATORS/op-bm-bm.cc (op_el_and, op_el_or, assign): Likewise. 26134 26135 * ov-str-mat.cc (CHAR_MATRIX_CONV): New macro. 26136 * ov-str-mat.h (octave_char_matrix_str::double_value, 26137 octave_char_matrix_str::matrix_value, 26138 octave_char_matrix_str::array_value, 26139 octave_char_matrix_str::complex_value, 26140 octave_char_matrix_str::complex_matrix_value, 26141 (octave_char_matrix_str::complex_array_value): Use it. 26142 26143 * ov-bool-mat.cc (default_numeric_conversion_function): 26144 Convert to NDArray, not Matrix. 26145 * ov-str-mat.cc (default_numeric_conversion_function): Likewise. 26146 26147 * ov-range.h (octave_range::array_value): New function. 26148 (octave_range::complex_array_value): Likewise. 26149 * ov-ch-mat.h (charNDArray::array_value): New function. 26150 (charNDArray::complex_array_value): Likewise. 26151 * ov-str-mat.h (octave_char_matrix_str::array_value): Likewise. 26152 (octave_char_matrix_str::complex_value): Likewise. 26153 (octave_char_matrix_str::complex_matrix_value): Likewise. 26154 (octave_char_matrix_str::complex_array_value): Likewise. 26155 26156 * mappers.cc (acosh, log, log10, sqrt): 26157 Use octave_Inf instead of DBL_MAX for range limit. 26158 261592003-11-24 John W. Eaton <jwe@bevo.che.wisc.edu> 26160 26161 * version.h (OCTAVE_VERSION): Now 2.1.52. 26162 (OCTAVE_API_VERSION): Now api-v3. 26163 26164 * DLD-FUNCTIONS/rand.cc (do_rand): Pass function name from arg 26165 list in calls to error. 26166 26167 * ov-cs-list.cc, ov-cs-list.h (octave_cs_list::octave_cs_list): 26168 Explicitly initialize base class in constructors. 26169 26170 * ov.h (octave_value::all_strings): Pass second arg to rep function. 26171 26172 * ov.h (octave_value::string_value): Pass arg to rep function. 26173 26174 * DLD-FUNCTIONS/dasrt.cc (dasrt_user_f): Delete unused arg names. 26175 * DLD-FUNCTIONS/rand.cc (Frand, Frandn): Likewise. 26176 * ls-hdf5.h (hdf5_streambase::hdf5_streambase): Likewise. 26177 * ls-hdf5.cc (read_hdf5_data): Likewise. 26178 * ls-utils.cc (get_save_type): Likewise. 26179 * parse.y (Fassignin): Likewise. 26180 * utils.cc (empty_arg): Likewise. 26181 * ov-usr-fcn.h (octave_user_function::subsref): Likewise. 26182 * ov-base-mat.h (octave_base_matrix::subsref): Likewise. 26183 * ov-mapper.h (octave_mapper::subsref): Likewise. 26184 * ov-builtin.h (octave_builtin::subsref): Likewise. 26185 * ov-complex.cc (octave_complex::complex_array_value): Likewise. 26186 * ov-cell.h (octave_cell::subsref): Likewise. 26187 * ov-base-scalar.h (octave_base_scalar::subsref): Likewise. 26188 * ov-struct.h (octave_struct::subsref): Likewise. 26189 * ov-range.h (octave_range::subsref): Likewise. 26190 * ov-list.h (octave_list::subsref): Likewise. 26191 * ov-base.cc (octave_base_value::print_info): Likewise. 26192 * pt-check.cc (tree_checker::visit_subplot_axes): Likewise. 26193 * pr-output.cc (octave_print_internal (std::ostream&, double, bool), 26194 octave_print_internal (std::ostream&, const Complex&, bool), 26195 octave_print_internal (std::ostream&, const ArrayN<std::string>&, 26196 bool, int): Likewise. 26197 * oct-stream.cc (octave_scan<> (std::istream&, const 26198 scanf_format_elt&, char*): Likewise 26199 * TEMPLATE-INST/Array-tc.cc (resize_fill_value<octave_value>): 26200 Likewise. 26201 * pt-bp.cc (tree_breakpoint::visit_octave_user_function, 26202 tree_breakpoint::visit_octave_user_function_header, 26203 tree_breakpoint::visit_octave_user_function_trailer, 26204 tree_breakpoint::visit_plot_limits, 26205 tree_breakpoint::visit_plot_range, 26206 tree_breakpoint::visit_subplot, 26207 tree_breakpoint::visit_subplot_axes, 26208 tree_breakpoint::visit_subplot_list, 26209 tree_breakpoint::visit_subplot_style, 26210 tree_breakpoint::visit_subplot_using): Likewise. 26211 * ov.cc (octave_value::column_vector_value, 26212 (octave_value::complex_column_vector_value, 26213 (octave_value::row_vector_value, 26214 octave_value::complex_row_vector_value, 26215 octave_value::do_non_const_unary_op): Likewise. 26216 26217 * load-save.cc: Only include ls-hdf5.h if HAVE_HDF5 is defined. 26218 From Melqart <melqart@free.fr>. 26219 26220 * pr-output.h (octave_fcn_handle::print_as_scalar): Delete. 26221 26222 * pr-output.cc (octave_print_internal): New version for 26223 ArrayN<std::string> objects. 26224 * pr-output.h: Provide decl. 26225 * ov-fcn-handle.cc (octave_fcn_handle::print_raw): Use it. 26226 26227 * OPERATORS/op-fcn-handle.cc: New file. 26228 * Makefile.in (OP_XSRC): Add it to the list. 26229 26230 * ov-fcn-handle.h, ov-fcn-handle.cc (octave_fcn_handle): 26231 Now an array of function handle objects. 26232 26233 * ov.h, ov.cc (octave_value::octave_value (const fcn_handle_array&), 26234 (octave_value::octave_value (octave_function *f, const std::string&)): 26235 New constructors. 26236 (octave_value::octave_value (const octave_fcn_handle&)): Delete. 26237 26238 * ov-base-mat.cc (octave_base_matrix<T>::print_as_scalar): 26239 Check dims instead of rows and columns. 26240 26241 * ov.h (octave_value::is_function_handle): New function. 26242 * ov-base.h (octave_base_value::is_function_handle): New function. 26243 262442003-11-23 John W. Eaton <jwe@bevo.che.wisc.edu> 26245 26246 * ov-bool-mat.h (octave_bool_matrix::array_value): Construct return 26247 value directly from matrix data member, not matrix.matrix_value (). 26248 26249 * ov-re-mat.h (octave_matrix::index_vector): Construct idx_vector 26250 from NDArray, not Matrix. 26251 26252 * ov-bool-mat.h (octave_bool_matrix::index_vector): Construct 26253 idx_vector from boolNDArray, not boolMatrix. 26254 26255 * ov.cc (install_types): Also register dld function type. 26256 26257 * OPERATORS/op-streamoff.cc: Install increment and decrement operators. 26258 * ov-streamoff.h (octave_streamoff::increment, 26259 octave_streamoff::decrement): New functions. 26260 26261 * ov-streamoff.h, ov-streamoff.cc: Move streamoff_array class to 26262 liboctave/so-array.h and liboctave/so-array.cc. 26263 26264 * oct-stream.cc (octave_stream::seek): Extract std::streamoff from 26265 tc_offset instead of int. 26266 26267 * ov-re-mat.cc (octave_matrix::double_value): Use numel, not length. 26268 26269 * ov-re-mat.cc (octave_matrix::streamoff_array_value): New function. 26270 * ov-re-mat.h: Provide decl. 26271 26272 * ov-scalar.cc (octave_scalar::streamoff_value): New function. 26273 * ov-scalar.h: Provide decl. 26274 26275 * ov.cc (octave_value::streamoff_array_value, 26276 octave_value::streamoff_value): New functions. 26277 * ov.h: Provide decls. 26278 26279 * ov-base.cc (octave_base_value::streamoff_array_value, 26280 octave_base_value::streamoff_value): New functions. 26281 * ov-base.h: Provide decls. 26282 26283 * ov-usr-fcn.cc (install_automatic_vars): Don't do anything unless 26284 sym_tab is defined. 26285 26286 * ov-streamoff.h, ov-streamoff.cc, OPERATORS/op-streamoff.cc: 26287 New files. 26288 26289 * ov-cell.h (octave_value_cell::is_matrix_type): New function. 26290 26291 * ov-mapper.h (octave_mapper::octave_mapper): No copying. 26292 * ov-fcn.h (octave_function::octave_function): Likewise. 26293 * ov-usr-fcn.h (octave_function::octave_function): Likewise. 26294 * ov-builtin.h (octave_builtin::octave_builtin): Likewise. 26295 * ov-dld-fcn.h (octave_dld_function::octave_dld_function): Likewise. 26296 262972003-11-22 John W. Eaton <jwe@bevo.che.wisc.edu> 26298 26299 * ov-mapper.h (octave_mapper::octave_mapper): Make public. 26300 Provide copy constructor and assignment operator. 26301 * ov-fcn.h (octave_function::octave_function): Likewise. 26302 * ov-builtin.h (octave_builtin::octave_builtin): Likewise. 26303 * ov-dld-fcn.h (octave_dld_function::octave_dld_function): Likewise. 26304 26305 * ov-typeinfo.cc (octave_value_typeinfo::register_type, 26306 octave_value_typeinfo::do_register_type): New arg, val. 26307 Save it in vals array. 26308 (octave_value_typeinfo::lookup_type, 26309 octave_value_typeinfo::do_lookup_type): New functions. 26310 * ov-typeinfo.h: Provide decl. 26311 (octave_value_typeinfo::vals): New data member. 26312 (octave_value_typeinfo::octave_value_typeinfo): Initialize it. 26313 26314 * ov.h (DEFINE_OV_TYPEID_FUNCTIONS_AND_DATA): Pass 26315 26316 * ov.h (DEFINE_OV_TYPEID_FUNCTIONS_AND_DATA): Define register_type 26317 here. Also pass an empty object of the to-be-registered type to 26318 register_type. 26319 (DECLARE_OV_TYPEID_FUNCTIONS_AND_DATA): Declare register_type 26320 here, but don't define it. 26321 263222003-11-21 John W. Eaton <jwe@bevo.che.wisc.edu> 26323 26324 * ov-fcn-handle.h (octave_fcn_handle::octave_fcn_handle (void)): 26325 New constructor. 26326 26327 * ov-usr-fcn.h (octave_user_function::octave_user_function): 26328 Delete decl for private constructor. 26329 26330 * ov-str-mat.cc (octave_char_matrix_str::matrix_value): 26331 Conversion to matrix is an error unless explicitly forced. 26332 26333 * ov-str-mat.cc (octave_char_matrix_str::double_value): New function. 26334 * ov-str-mat.h: Provide decl. 26335 26336 * ov-file.cc (print_raw): Use parens around ?: conditional used on 26337 RHS of << output operator. 26338 26339 * c-file-ptr-stream.cc (c_file_ptr_buf::seekoff, 26340 c_file_ptr_buf::seekpos): Can't use fseek here, so just fail (by 26341 returning -1) until we have a better solution. 26342 26343 * oct-stream.cc (octave_stream::tell): Return std::streamoff, not long. 26344 * oct-iostrm.cc (octave_base_iostream::tell): Likewise. 26345 * oct-stdstrm.cc (octave_stdiostream::tell): Likewise. 26346 * oct-strstrm.cc (octave_base_strstream::tell): Likewise. 26347 * oct-stream.h, oct-iostrm.h, oct-stdstrm.h, oct-strstrm.h: 26348 Fix decls to match. 26349 263502003-11-20 John W. Eaton <jwe@bevo.che.wisc.edu> 26351 26352 * ls-mat-ascii.cc (get_lines_and_columns): Delete second arg in 26353 call to istream::seekg. 26354 26355 * ov-mapper.cc (MAPPER_LOOP_2, any_element_less_than, 26356 any_element_greater_than, octave_mapper::apply): 26357 Handle N-d arrays. 26358 263592003-11-19 John W. Eaton <jwe@bevo.che.wisc.edu> 26360 26361 * ls-mat5.cc (read_mat5_binary_element, save_mat5_binary_element): 26362 Handle N-d arrays. 26363 26364 * lex.l (next_token_is_index_op): New function. 26365 (handle_close_bracket): Use it. 26366 26367 * ls-hdf5.cc, ls-mat-ascii.cc, ls-mat4.cc, ls-mat5.cc, 26368 ls-oct-ascii.cc, ls-oct-binary.cc, ls-utils.cc, ls-hdf5.h, 26369 ls-mat-ascii.h, ls-mat4.h, ls-mat5.h, ls-oct-ascii.h, 26370 ls-oct-binary.h, ls-utils.h: New files, extracted from load-save.cc. 26371 * Makefile.in: Add them to the appropriate lists. 26372 263732003-11-18 John W. Eaton <jwe@bevo.che.wisc.edu> 26374 26375 * pr-output.cc (octave_print_internal): Don't indent rows for 26376 plus_format. Use pr_plus_format for Range type with plus_format. 26377 (plus_format_chars): New static variable. 26378 (set_format_style): Allow optional arg for plus format to set it. 26379 (pr_plus_format): Use it. 26380 26381 * ov-bool.h (octave_bool::array_value, 26382 octave_bool::complex_array_value): New functions. 26383 26384 * ov-base-mat.cc (octave_base_matrix<MT>::do_index_op): 26385 Ensure correct number of indices for Array indexing code. 26386 263872003-11-17 John W. Eaton <jwe@bevo.che.wisc.edu> 26388 26389 * DLD-FUNCTIONS/qz.cc (qz): Use x.data()+offset instead of &a(i,j). 26390 First and third args for dlag2 are const. 26391 26392 * DLD-FUNCTIONS/sort.cc (Fsort): Use const qualifier as appropriate. 26393 26394 * DLD-FUNCTIONS/balance.cc (balance): Use data() instead of 26395 fortran_vec where appropriate in call to dggbak. 26396 26397 * DLD-FUNCTIONS/dasrt.cc (dasrt_user_j): Simplify inserting x and 26398 xdot in arg vector. 26399 (dasrt_user_f): Likewise. 26400 (dasrt_user_cf): Likewise. 26401 * DLD-FUNCTIONS/dassl.cc (dassl_user_function): Likewise. 26402 (dassl_user_jacobian): Likewise. 26403 * DLD-FUNCTIONS/lsode.cc (lsode_user_function): Likewise. 26404 (lsode_user_jacobian): Likewise. 26405 * DLD-FUNCTIONS/daspk.cc (daspk_user_function): Likewise. 26406 (daspk_user_jacobian): Likewise. 26407 264082003-11-16 John W. Eaton <jwe@bevo.che.wisc.edu> 26409 26410 * ov-range.h (octave_range::reshape): New function. 26411 264122003-11-15 John W. Eaton <jwe@bevo.che.wisc.edu> 26413 26414 * version.h (OCTAVE_VERSION): Now 2.1.51. 26415 (OCTAVE_API_VERSION): Now api-v2. 26416 26417 * version.h (OCTAVE_BUGS_STATEMENT): Also tell people to look at 26418 http://www.octave.org/bugs.html. 26419 26420 * oct-map.cc (Octave_map::assign): Use resize, not resize and fill. 26421 * ov-typeinfo.cc (octave_value_typeinfo::do_register_type): Likewise. 26422 26423 * Cell.cc (Cell::Cell): Pass dim_vector to resize instead of two ints. 26424 264252003-11-14 John W. Eaton <jwe@bevo.che.wisc.edu> 26426 26427 * Makefile.in (stamp-liboctave-prereq): New target. 26428 ($(DEF_FILES), $(MAKEDEPS)): Depend on it. 26429 (distclean): Remove it. 26430 26431 * parse.y (cancel_obj_idx): New rule. 26432 (postfix_expr, prefix_expr): Use begin_obj_idx after every 26433 postfix_expr on RHS. Use cancel_obj_idx as soon as possible for 26434 cases where we are not working on an index expression. 26435 26436 * lex.l (maybe_unput_comma, handle_close_bracket): 26437 Don't insert comma if we are looking at an object index and the 26438 closest nesting level is a brace. 26439 26440 * parse.y (postfix_expr): Use begin_obj_idx between postfix_expr 26441 and the indexing delimiter rather than after it. 26442 26443 * lex.h (lexical_feedback::braceflag): New member variable. 26444 * lex.l (lexical_feedback::init): Initialize braceflag. 26445 (\{{S}*): Increment lexer_flags.braceflag, not 26446 lexer_flags.bracketflag. 26447 (handle_close_bracket): Handle lexer_flags.braceflag and 26448 lexer_flags.bracketflag separately based on bracket_type. 26449 Delete unnecesary yyinput/yyunput. 26450 26451 * lex.l (next_token_is_postfix_unary_op): Also recognize ++ and --. 26452 26453 * ov-typeinfo.cc (octave_value_typeinfo::register_type, 26454 octave_value_typeinfo::do_register_type): 26455 New arg, c_name for class name. 26456 * ov-base.cc, ov-bool-mat.cc, ov-bool.cc, ov-builtin.cc, 26457 ov-cell.cc, ov-ch-mat.cc, ov-colon.cc, ov-complex.cc, 26458 ov-cs-list.cc, ov-cx-mat.cc, ov-dld-fcn.cc, ov-fcn-handle.cc, 26459 ov-file.cc, ov-list.cc, ov-mapper.cc, ov-range.cc, ov-re-mat.cc, 26460 ov-scalar.cc, ov-str-mat.cc, ov-struct.cc, ov-usr-fcn.cc, 26461 ov-va-args.cc: Pass class name to DEFINE_OV_TYPEID_FUNCTIONS_AND_DATA. 26462 * ov.h (octave_value::class_name): New virtual function. 26463 (DEFINE_OV_TYPEID_FUNCTIONS_AND_DATA): Define c_name, for class name. 26464 Pass c_name to octave_value_typeinfo::register_type. 26465 (DECLARE_OV_TYPEID_FUNCTIONS_AND_DATA): Declare static member 26466 c_name for class name. Provide class_name member function. 26467 26468 * ov-typeinfo.cc (Fclass): New function. 26469 264702003-11-13 John W. Eaton <jwe@bevo.che.wisc.edu> 26471 26472 * utils.cc (Fisvarname): Pass correct name to make_argv. 26473 26474 * ov-cell.cc (Fiscellstr): New function. 26475 26476 * ov-file.h (octave_file::all, octave_file::any, 26477 octave_file::dims, octave_file::is_real_type, 26478 octave_file::ist_real_scalar): New functions. 26479 26480 * lex.l (bracket_brace_paren_nesting_level::is_bracket_or_brace): 26481 New function. 26482 (handle_close_bracket): New arg, bracket_type. Change all uses. 26483 First arg is now bool. 26484 (<MATRIX_START>{SNLCMT}*\}{S}*): New pattern. 26485 (maybe_unput_comma): Handle brace nesting level the same as brackets. 26486 (handle_close_brace): Likewise. 26487 (<MATRIX_START>{S}+): Likewise. 26488 (<MATRIX_START>{S}*{COMMENT}{SNLCMT}*): Likewise. 26489 (<MATRIX_START>{S}*{NL}{SNLCMT}*): Likewise. 26490 ({NL}): Likewise. 26491 ({CCHAR}): Likewise. 26492 (")"): Likewise. 26493 (\{{S}*): Handle the same as \[{S}*. 26494 ("}"): Handle the same as \]. 26495 26496 * Makefile.in (stamp-prereq): Add oct-gperf.h, parse.cc, and 26497 lex.cc to the list. 26498 264992003-11-12 John W. Eaton <jwe@bevo.che.wisc.edu> 26500 26501 * ov-cell.cc (print_as_scalar): New function. 26502 * ov-cell.h: Provide decl. 26503 26504 * ov-cell.cc (octave_cell::print_name_tag): Delete. 26505 * ov-cell.h: Delete decl. 26506 26507 * ov-base-mat.cc (octave_base_matrix::print_name_tag): Delete. 26508 * ov-base-mat.h: Delete decl. 26509 26510 * ov-base.cc (octave_base_value::print_name_tag): 26511 Use print_as_scalar here. 26512 * ov.h (octave_base_value::print_as_scalar): New virtual function. 26513 * ov-base.h (octave_base_value::print_as_scalar): 26514 New default implementation. 26515 * ov-base-mat.h (octave_base_matrix::pirnt_as_scalar): 26516 Don't declare as virtual here. 26517 26518 * ov-struct.cc (octave_struct::print_raw): If only printing keys, 26519 also print dimensions of fields and overall array. 26520 26521 * sysdep.cc (Fnative_float_format): New function. 26522 26523 * input.cc (generate_possible_completions): Also append all 26524 possible filename completions here. 26525 265262003-11-11 John W. Eaton <jwe@bevo.che.wisc.edu> 26527 26528 * oct-stream.cc: Explicitly instantiate octave_scan functions. 26529 26530 * TEMPLATE-INST/Array-c.cc, TEMPLATE-INST/Array-os.cc, 26531 TEMPLATE-INST/Array-sym.cc, ov-typeinfo.cc: 26532 Use new INSTANTIATE_ARRAY macro. 26533 26534 * data.cc (do_permute): New function. 26535 (Fpermute, Fipermute): Use it. 26536 26537 * ov-base.cc (octave_base_value::permute): New function. 26538 * ov-base.h: Provide decl. 26539 26540 * ov.h (octave_value::ipermute): New function. 26541 265422003-11-11 Petter Risholm <risholm@stud.ntnu.no> 26543 26544 * data.cc (Fpermute, Fipermute): New functions. 26545 * ov.h (octave_value::permute): New function. 26546 * ov-base-mat.h (octave_base_matrix::permute): New function. 26547 265482003-11-10 John W. Eaton <jwe@bevo.che.wisc.edu> 26549 26550 * oct-obj.h (octave_value_list): Internal representation is now 26551 std::vector instead of Array. 26552 26553 * ov-list.h, ov-list.cc: Internal representation is now Cell, not 26554 octave_value_list. 26555 (Flist): Print one-time warning. 26556 26557 * ov.cc (octave_value::octave_value (const octave_value_list&, bool)): 26558 Cope with octave_cs_list not being derived from octave_list. 26559 26560 * ov-cs-list.cc (octave_cs_list): Handle conversion of Cell array 26561 to octave_value_list here. 26562 26563 * ov-cs-list.h (class octave_cs_list): Derive from 26564 octave_base_value, not octave_list. 26565 26566 * ov-cs-list.h, ov-cs-list.cc: Remove commented-out code. 26567 26568 * TEMPLATE-INST/Array-tc.cc (resize_fill_value): Use modern 26569 specialization syntax. 26570 26571 * ov-cell.cc (octave_cell::print_raw): Use dim_vector::str. 26572 26573 * Cell.cc, Cell.h, debug.cc, file-io.cc, load-save.cc, 26574 oct-fstrm.cc, oct-iostrm.cc, oct-iostrm.h, oct-map.cc, oct-map.h, 26575 oct-prcstrm.cc, oct-stdstrm.h, oct-stream.cc, oct-strstrm.h, 26576 octave.cc, ov-base.h, ov-cell.cc, ov.cc, ov.h, pt-cell.h, 26577 pt-mat.cc, pt-mat.h, pt-plot.cc, pt-stmt.cc, variables.cc, 26578 DLD-FUNCTIONS/rand.cc: Avoid -Wshadow warnings. 26579 265802003-11-01 John W. Eaton <jwe@bevo.che.wisc.edu> 26581 26582 * ov.h (octave_base_value::is_bool_matrix): New virtual function. 26583 * ov-base.h (octave_base_value::is_bool_matrix): New function. 26584 265852003-10-31 John W. Eaton <jwe@bevo.che.wisc.edu> 26586 26587 * ov.cc (octave_value::length): If any dim is zero, return 0. 26588 26589 * ov-cell.cc (octave_cell::subsref): When indexing with '{', quit 26590 early if an error occurs in do_index_op. 26591 26592 * ov.cc (octave_value::next_subsref): Don't do anything if 26593 error_state is true. 26594 26595 * cutils.c (octave_usleep) [HAVE_SELECT]: Introduce new local 26596 scope for declaration of delay. 26597 [HAVE_POLL]: Likewise, for delay and pfd. 26598 26599 * ov-base.cc (octave_base_value::bool_array_value): 26600 Function takes no args. 26601 * ov-base.h: Likewise, for decl. 26602 * ov-bool-mat.h (boolNDArray::bool_array_value): Likewise. 26603 26604 * ov-fcn.cc, ov-fcn.h (octave_value::clone, 26605 octave_value::empty_clone): Return type is octave_value*, not 26606 octave_function*. 26607 266082003-10-29 John W. Eaton <jwe@bevo.che.wisc.edu> 26609 26610 * ov-str-mat.h (octave_char_matrix_str::reshape): New function. 26611 Force result to be a string. 26612 266132003-10-29 Petter Risholm <risholm@stud.ntnu.no> 26614 26615 * data.cc (DATA_REDUCTION): Work on NDArray and ComplexNDArray 26616 objects instead of Matrix and ComplexMatrix objects. 26617 266182003-10-29 John W. Eaton <jwe@bevo.che.wisc.edu> 26619 26620 * ov-bool-mat.h (octave_bool_matrix::NDArray, 26621 octave_bool_matrix::ComplexNDArray): New functions. 26622 26623 * ov-complex.cc (octave_complex::array_value, 26624 octave_complex::complex_array_value): New functions. 26625 * ov-complex.h: Provide decls. 26626 26627 * ov-scalar.cc (octave_scalar::array_value, 26628 octave_scalar::complex_array_value): New functions. 26629 * ov-scalar.h: Provide decls. 26630 26631 * oct-map.cc (Octave_map::reshape): New function. 26632 * oct-map.h: Provide decl. 26633 26634 * ov-struct.h (octave_struct::reshape): New function. 26635 26636 * Cell.h (Cell:Cell (const Array<octave_value>&): New constructor. 26637 26638 * data.cc (Freshape): New function. 26639 * ov.h (octave_value::reshape): New function. 26640 * ov-base-mat.h (octave_base_matrix::reshape): New function. 26641 * ov-base.cc (octave_base_value::reshape): New function. 26642 * ov-base.h: Provide decl. 26643 26644 * DLD-FUNCTIONS/balance.cc: lscale and rscale args for dggbak are 26645 const. Use data() instead of fortran_vec where possible. 26646 * DLD-FUNCTIONS/qz.cc: Likewise. 26647 26648 * data.cc (fill_matrix): Remove trailing singletons before 26649 allocating the result matrix. 26650 26651 * input.cc (get_user_input): Don't forget about the diary here. 26652 266532003-10-28 John W. Eaton <jwe@bevo.che.wisc.edu> 26654 26655 * ov-list.h (octave_list::nelem): Delete. 26656 (octave_list::dims): New function. 26657 * ov-range.h (octave_list::dims): New function. 26658 * ov-struct.h (octave_struct::dims): New function. 26659 * ov-base-scalar.h (octave_base_scalar::dims): New function. 26660 26661 * ov.h (octave_value::rows): No longer virtual. 26662 * ov.cc (octave_value::rows): Provide common implementation. 26663 * ov-base.h (octave_base_value::rows): Delete. 26664 * ov-base-mat.h (octave_base_matrix<T>::rows): Delete. 26665 * ov-base-scalar.h (octave_base_scalar<T>::rows): Delete. 26666 * ov-struct.h (octave_struct::rows): Delete. 26667 * ov-range.h (octave_range::rows): Delete. 26668 26669 * ov.h (octave_value::columns): No longer virtual. 26670 * ov.cc (octave_value::columns): Provide common implementation. 26671 * ov-base.h (octave_base_value::columns): Delete. 26672 * ov-base-mat.h (octave_base_matrix<T>::columns): Delete. 26673 * ov-base-scalar.h (octave_base_scalar<T>::columns): Delete. 26674 * ov-struct.h (octave_struct::columns): Delete. 26675 * ov-range.h (octave_range::columns): Delete. 26676 26677 * ov.h (octave_value::numel): No longer virtual. 26678 * ov.cc (octave_value::numel): Provide common implementation. 26679 * ov-base.h (octave_base_value::numel): Delete. 26680 * ov-base-mat.h (octave_base_matrix<T>::numel): Delete. 26681 * ov-base-scalar.h (octave_base_scalar<T>::numel): Delete. 26682 * ov-struct.h (octave_struct::numel): Delete. 26683 26684 * ov-cs-list.h (octave_cs_list::dims): New function. 26685 (octave_cs_list::length): Delete. 26686 26687 * ov.h (octave_value::ndims): No longer virtual. 26688 * ov.cc (octave_value::ndims): Provide common implementation. 26689 * ov-base.h (octave_base_value::ndims): Delete. 26690 * ov-base-mat.h (octave_base_matrix<T>::ndims): Delete. 26691 * ov-base-scalar.h (octave_base_scalar<T>::ndims): Delete. 26692 * ov-struct.h (octave_struct::ndims): Delete. 26693 26694 * ov-cell.cc (Fcell): Make it work for N-d cells. 26695 26696 * Cell.h (Cell::Cell (const dim_vector&, const octave_value&)): 26697 New constructor. 26698 26699 * ov.h (octave_value::length): No longer virtual. 26700 * ov.cc (octave_value::length): Provide common implementation. 26701 * ov-base.h (octave_base_value::length): Delete. 26702 * ov-base-mat.h (octave_base_matrix<T>::length): Delete. 26703 * ov-base-scalar.h (octave_base_scalar<T>::length): Delete. 26704 * ov-struct.h (octave_struct::length): Delete. 26705 * ov-cs-list.h (octave_cs_list::length): Delete. 26706 * ov-list.h (octave_list::length): Delete. 26707 * ov-range.h (octave_range::length): Delete. 26708 26709 * load-save.cc (save_mat5_binary_element): Use numel instead of 26710 array_length. 26711 * ov-struct.cc (octave_struct::print_raw): Likewise. 26712 * pt-loop.cc (tree_complex_for_command::eval): Likewise. 26713 * oct-map.cc (Octave_map::numel): New function. 26714 * oct-map.h: Provide decl. 26715 26716 * oct-map.cc, oct-map.h (Octave_map::array_length): Delete. 26717 (common_size): New static function. 26718 (Octave_map::assign): Make resizing work for N-d cell objects. 26719 26720 * oct-map.cc (Octave_map::dims): New function. 26721 * oct-map.h: Provide decl. 26722 26723 * pr-output.cc (print_empty_nd_array): New static function. 26724 (PRINT_ND_ARRAY): Use it. 26725 26726 * ov.h (octave_value::is_empty): No longer virtual. Return value 26727 based on numel. 26728 * data.cc (Fisempty): Use it. 26729 (Fnumel): New function. 26730 26731 * ov.h (octave_value::numel): New function. 26732 * ov-base.h (octave_base_value::numel): Likewise. 26733 * ov-base-mat.h (octave_base_matrix<T>::numel): Likewise. 26734 * ov-base-scalar.h (octave_base_scalar<T>::numel): Likewise. 26735 267362003-10-27 Petter Risholm <risholm@stud.ntnu.no> 26737 26738 * ov-base-mat.cc (octave_base_matrix<MT>::is_true): 26739 Only work for 2-dimensional objects. 26740 * data.cc (ANY_ALL (FCN)): Allow dim to take values large than 2. 26741 26742 * ov.h (octave_value::ndims): New function. 26743 * ov-base.h (octave_base_value::ndims): Likewise. 26744 * ov-base-scalar.h (octave_base_scalar<T>::ndims): Likewise. 26745 * ov-base-mat.cc (octave_base_matrix<MT>::ndims): New function. 26746 (octave_base_matrix<MT>::length): Move here from ov-base-mat.h. 26747 Make it work for N-d arrays. 26748 * ov-base-mat.h (octave_base_matrix<MT>::ndims): Provide decl. 26749 * data.cc (Fndims): New built-in function. 26750 267512003-10-27 John W. Eaton <jwe@bevo.che.wisc.edu> 26752 26753 * DLD-FUNCTIONS/balance.cc, DLD-FUNCTIONS/qz.cc: 26754 Use new F77 arg macros in declarations of external Fortran 26755 subroutines and for calling them. 26756 26757 * ops.h (DEFNDUNOP_OP, DEFNDUNOP_FN): New arg e, to name value 26758 extractor function prefix. 26759 * OPERATORS/op-bm-bm.cc, OPERATORS/op-cm-cm.cc, OPERATORS/op-m-m.cc: 26760 Change all uses. 26761 26762 * ov-cx-mat.h (octave_complex_matrix::complex_array_value, 26763 octave_char_matrix::char_array_value, 26764 octave_bool_matrix::bool_array_value): Rename from array_value. 26765 * OPERATORS/op-bm-bm.cc, OPERATORS/op-cm-cm.cc, 26766 OPERATORS/op-cm-cs.cc, OPERATORS/op-cm-m.cc, 26767 OPERATORS/op-cm-s.cc, OPERATORS/op-cs-cm.cc, 26768 OPERATORS/op-m-cm.cc, OPERATORS/op-m-m.cc, 26769 OPERATORS/op-s-cm.cc: Use complex_array, char_array, and 26770 bool_array as appropriate (instead of just array). 26771 26772 * ov-base.cc (octave_base_value::array_value, 26773 octave_base_value::bool_array_value, 26774 octave_base_value::complex_array_value, 26775 octave_base_value::char_array_value): Provide default implementations. 26776 * ov-base.h: Provide decls. 26777 26778 * ov.h (octave_value::array_value, octave_value::bool_array_value, 26779 octave_value::complex_array_value, octave_value::char_array_value): 26780 New virtual functions. 26781 267822003-10-25 John W. Eaton <jwe@bevo.che.wisc.edu> 26783 26784 * pt-idx.cc (make_subs_cell): Pass dim_vector object to resize. 26785 26786 * ov-typeinfo.cc (octave_value_typeinfo::do_register_type): 26787 Use resize_and_fill for types. 26788 26789 * oct-obj.h (octave_value_list::maybe_resize): Use resize_and_fill. 26790 (octave_value_list::resize (int, const octave_value&)): Likewise. 26791 26792 * oct-map.cc (Octave_map::assign): Use resize_and_fill as needed. 26793 26794 * Cell.h (Cell (void)): Default size is now 0x0. 26795 267962003-10-23 John W. Eaton <jwe@bevo.che.wisc.edu> 26797 26798 * OPERATORS/op-cm-m.cc, OPERATORS/op-cm-s.cc, 26799 OPERATORS/op-cs-m.cc, OPERATORS/op-m-cm.cc, OPERATORS/op-s-cm.cc: 26800 Include headers for N-d operators. 26801 268022003-10-17 John W. Eaton <jwe@bevo.che.wisc.edu> 26803 26804 * ops.h (DEFNDUNOP_OP, DEFNDUNOP_FN, DEFNDBINOP_OP, 26805 DEFNDBINOP_FN): New N-dimensional macros. 26806 * OPERATORS/op-bm-bm.cc, OPERATORS/op-cm-cm.cc, 26807 OPERATORS/op-cm-cs.cc, OPERATORS/op-cm-m.cc, 26808 OPERATORS/op-cm-s.cc, OPERATORS/op-cs-cm.cc, 26809 OPERATORS/op-cs-m.cc, OPERATORS/op-m-cm.cc, 26810 OPERATORS/op-m-cs.cc, OPERATORS/op-m-m.cc, 26811 OPERATORS/op-m-s.cc, OPERATORS/op-s-cm.cc, 26812 OPERATORS/op-s-m.cc: Use N-dimensional macros as appropriate. 26813 26814 * DLD-FUNCTIONS/rand.cc (do_rand, Frand, Frandn): 26815 Handle N-dimensions. 26816 26817 * xpow.cc (elem_xpow (double, const NDArray&), 26818 elem_xpow (double, const ComplexNDArray&), 26819 elem_xpow (const NDArray&, double), 26820 elem_xpow (const NDArray&, const NDArray&), 26821 elem_xpow (const NDArray&, const Complex&), 26822 elem_xpow (const NDArray&, const ComplexNDArray&), 26823 elem_xpow (const Complex&, const NDArray&), 26824 elem_xpow (const Complex&, const ComplexNDArray&), 26825 elem_xpow (const ComplexNDArray&, double), 26826 elem_xpow (const ComplexNDArray&, const NDArray&), 26827 elem_xpow (const ComplexNDArray&, const Complex&), 26828 elem_xpow (const ComplexNDArray&, const ComplexNDArray&): 26829 New functions. 26830 * xpow.h: Provide decls. 26831 26832 * xdiv.cc (x_el_div (double, const NDArray&), 26833 x_el_div (double, const ComplexNDArray&), 26834 x_el_div (const Complex, const NDArray&), 26835 x_el_div (const Complex, const ComplexNDArray&)): New functions. 26836 * xdiv.h: Provide decls. 26837 26838 * ov-bool-mat.h (boolNDArray::array_value): New function. 26839 * ov-ch-mat.h (charNDArray::array_value): New function. 26840 * ov-cx-mat.h (ComplexNDArray::array_value): New function. 26841 * ov-re-mat.h (NDArray::array_value): New function. 26842 (NDArray::double_nd_array_value): Delete. 26843 268442003-10-16 John W. Eaton <jwe@bevo.che.wisc.edu> 26845 26846 * parse.y (text_getc): New static function. 26847 (gobble_leading_white_space): Use it to simplify EOL processing. 26848 268492003-10-15 John W. Eaton <jwe@bevo.che.wisc.edu> 26850 26851 * file-io.cc (fopen_mode_to_ios_mode): Ignore "t" in mode string. 26852 26853 * strfns.cc (Fischar): rename from Fisstr. 26854 268552003-10-09 John W. Eaton <jwe@bevo.che.wisc.edu> 26856 26857 * pr-output.cc (PRINT_ND_ARRAY): New macro. 26858 (octave_print_internal): Use it. 26859 268602003-10-08 John W. Eaton <jwe@bevo.che.wisc.edu> 26861 26862 * ov.cc (octave_value::octave_value (const ArrayN<octave_value>&, 26863 bool)): New constructor. 26864 * ov.h: Provide decl. 26865 26866 * ov.h (octave_value::squeeze): New virtual function. 26867 * ov-base.cc (squeeze): Provide default implementation. 26868 * ov-base-mat.h (octave_base_matrix::squeeze): New function. 26869 * data.cc (Fsqueeze): New function. 26870 268712003-10-03 John W. Eaton <jwe@bevo.che.wisc.edu> 26872 26873 * load-save.cc (make_valid_identifier): Return new string. 26874 Arg is now string, not char *. 26875 (ident_is_all_digits): New function. 26876 (hdf5_read_next_data): Use it. 26877 268782003-10-02 John W. Eaton <jwe@bevo.che.wisc.edu> 26879 26880 * input.cc (input_event_hook): Clear the event hook if hook_fcn 26881 does not name a valid function. 26882 268832003-10-01 John W. Eaton <jwe@bevo.che.wisc.edu> 26884 26885 * mappers.cc (xabs): New function. 26886 (install_mapper_functions): Use it instead of abs for complex args 26887 in Octave's abs mapper function. 26888 268892003-09-27 Joseph P. Skudlarek <Jskud@Jskud.com> 26890 26891 * DLD-FUNCTIONS/minmax.cc (min, max): Use @deftypefn machinery, 26892 doc missing semantics, and add more examples to texinfo strings. 26893 268942003-09-26 John W. Eaton <jwe@bevo.che.wisc.edu> 26895 26896 * load-save.cc (read_mat5_binary_element): Return early if the 26897 miMATRIX element has length zero. 26898 268992003-09-24 John W. Eaton <jwe@bevo.che.wisc.edu> 26900 26901 * ov-cell.cc (octave_cell::subsasgn): Also attempt empty 26902 conversion after extracting single element from cell array to 26903 allow things like x{i}.elt = rhs to work. 26904 269052003-09-19 John W. Eaton <jwe@bevo.che.wisc.edu> 26906 26907 * ov.h (octave_value::dim_vector): New function. 26908 26909 * ov.h, ov.cc (octave_value::octave_value (const Cell&)): 26910 New arg, is_cs_list. 26911 (octave_value::octave_value (const NDArray&)): 26912 Create octave_matrix object, not octave_double_nd_array object. 26913 (octave_value::octave_value (const ComplexNDArray&), 26914 octave_value::octave_value (const boolNDArray&), 26915 octave_value (const charNDArray&, bool)): New constructors. 26916 26917 * ov.h, ov.cc (octave_value::nil_rep): New function. 26918 (octave_value::octave_value (void)): Use it to initialize empty 26919 octave_value objects. 26920 26921 * ov-list.h, ov-list.cc (octave_list::octave_list (const Cell&)): 26922 New constructor. 26923 * ov-cs-list.h (octave_cs_list::octave_cs_list (const Cell&)): 26924 Likewise. 26925 26926 * data.cc (Fsize): Handle N-d objects. 26927 26928 * pr-output.cc (octave_print_internal): New versions for NDArray, 26929 ComplexNDArray, boolNDArray, and charNDArray objects. 26930 * pr-output.h: Provide decls. 26931 26932 * ov-re-nd-array.h, ov-re-nd-array.cc: Delete. 26933 26934 * Cell.h, Cell.cc, ov-base-mat.h, ov-base-mat.cc, ov-bool-mat.h, 26935 ov-bool-mat.cc, ov-ch-mat.h, ov-ch-mat.cc, ov-cx-mat.h, 26936 ov-cx-mat.cc, ov-re-mat.h, ov-re-mat.cc, ov-str-mat.h, 26937 ov-str-mat.cc: Now N-dimensional. 26938 26939 * oct-map.h, oct-map.cc: Now based on Cell ojects instead of 26940 octave_value_list objects. Change all uses. 26941 26942 * TEMPLATE-INST/Array-tc.cc: Also instantiate ArrayN objects. 26943 Don't instantiate assign funcitons for Array2 objects. 26944 269452003-09-11 John W. Eaton <jwe@bevo.che.wisc.edu> 26946 26947 * pt-plot.cc (symbols_of_pt_plot): Default for automatic replot is 26948 now true. 26949 26950 * pr-output.cc (Fformat): Doc fix. 26951 (current_output_max_field_width, current_output_precision): 26952 New functions. 26953 (float_format::float_format (int, int, int)): Use them to provide 26954 default values for field width and precision. 26955 (print_g): New static variable. 26956 (set_real_format, set_real_matrix_format, set_complex_format) 26957 (set_complex_matrix_format, set_range_format): Handle print_g. 26958 (pr_float, pr_complex): Don't scale if using print_g. 26959 (set_format_style): Accept new "g" and "G" modifiers for short and 26960 long formats and set print_g. 26961 Set default precision and width for short to 5, 10. 26962 Set default precision and width for long to 15, 20. 26963 269642003-09-10 John W. Eaton <jwe@bevo.che.wisc.edu> 26965 26966 * OPERATORS/op-m-cs.cc (complex_matrix_conv): Delete function. 26967 (install_m_cs_ops): Don't install complex_matrix_conv here. 26968 26969 * OPERATORS/op-s-cs.cc (complex_matrix_conv): Delete function. 26970 (install_s_cs_ops): Don't install complex_matrix_conv here. 26971 26972 * OPERATORS/op-s-s.cc (matrix_conv): Delete function. 26973 (install_s_s_ops): Don't install matrix_conv here. 26974 26975 * OPERATORS/op-cs-s.cc (complex_matrix_conv): Delete function. 26976 (install_cs_s_ops): Don't install complex_matrix_conv here. 26977 26978 * OPERATORS/op-cs-m.cc (complex_matrix_conv): Delete function. 26979 (install_cs_m_ops): Don't install complex_matrix_conv here. 26980 26981 * OPERATORS/op-cs-cs.cc (complex_matrix_conv): Delete function. 26982 (install_cs_cs_ops): Don't install complex_matrix_conv here. 26983 26984 * ov-typeinfo.cc (do_register_unary_op, 26985 do_register_non_const_unary_op, do_register_binary_op, 26986 do_register_assign_op, do_register_assignany_op, 26987 do_register_pref_assign_conv, do_register_widening_op): 26988 Print warning if installing a duplicate function. 26989 269902003-09-10 Petter Risholm <risholm@stud.ntnu.no> 26991 26992 * data.cc, ov-base.cc, ov-base.h, ov.h, ov.cc, ov-re-mat.h, 26993 ov-scalar.h, ov-re-nd-array.h, ov-re-nd-array.cc: Use NDArray, not 26994 ArrayN<double>. 26995 269962003-09-09 John W. Eaton <jwe@bevo.che.wisc.edu> 26997 26998 * ov.h (octave_value::double_nd_array_value): New function. 26999 (octave_value::is_real_nd_array): New function. 27000 27001 * ov-base.cc (octave_base_value::double_nd_array_value): New function. 27002 * ov-base.h: Provide decl. 27003 (octave_base_value::is_real_nd_array): New function. 27004 270052003-09-09 Petter Risholm <risholm@stud.ntnu.no> 27006 27007 * ov-re-mat.h (octave_matrix::double_nd_array_value): New function. 27008 * ov-scalar.h (octave_scalar::double_nd_array_value): New function. 27009 27010 * ov-re-nd-array.cc (octave_double_nd_array::assign): New function. 27011 (octave_double_nd_array::try_narrowing_conversion): Likewise. 27012 (octave_double_nd_array::valid_as_scalar_index): Likewise. 27013 (octave_double_nd_array::double_value): Likewise. 27014 (octave_double_nd_array::matrix_value): Likewise. 27015 (octave_double_nd_array::complex_value): Likewise. 27016 (octave_double_nd_array::convert_slice_to_matrix): Likewise. 27017 * ov-re-nd-array.h: Provide decls. 27018 (octave_double_nd_array::is_real_nd_array): New function. 27019 (octave_double_nd_array::double_nd_array_value): New function. 27020 (octave_double_nd_array::double_nd_array_value): New function. 27021 27022 * OPERATORS/op-m-nd.cc, OPERATORS/op-nd-m.cc, 27023 OPERATORS/op-nd-nd.cc, OPERATORS/op-nd-s.cc, OPERATORS/op-s-nd.cc: 27024 New files. 27025 * Makefile.in (OP_XSRC): Add them to the list. 27026 270272003-09-09 David Bateman <dbateman@free.fr> 27028 27029 * OPERATORS/op-cs-s.cc (DEFBINOP): First arg is complex, second is 27030 double. 27031 270322003-09-05 John W. Eaton <jwe@bevo.che.wisc.edu> 27033 27034 * pt-cell.cc (tree_cell::rvalue): Don't assume that the number of 27035 elements in a tree_argument_list is the same as the number of 27036 objects it contains (cs-list objects expand to more than one). 27037 27038 * pt-mat.cc (tm_row_const::tm_row_const_rep::do_init_element): 27039 New function, extracted from tm_row_const::tm_row_const_rep::init. 27040 (tm_row_const::tm_row_const_rep::init): Use it. 27041 Also handle cs-list objects. 27042 27043 * ov-cs-list.cc (octave_cs_list::print_raw): New function. 27044 * ov-cs-list.h (octave_cs_list::print_raw): Provide decl. 27045 * ov-list.h (octave_list::lst): Now protected instead of private. 27046 270472003-09-04 John W. Eaton <jwe@bevo.che.wisc.edu> 27048 27049 * pt-plot.cc (subplot_style::columns_ok): Allow boxes style to 27050 have 2 columns as well. 27051 270522003-08-28 John W. Eaton <jwe@bevo.che.wisc.edu> 27053 27054 * dirfns.cc (Fls): Check EAGAIN to avoid losing output. 27055 * toplev.cc (run_command_and_return_output): Likewise. 27056 270572003-08-25 John W. Eaton <jwe@bevo.che.wisc.edu> 27058 27059 * OPERATORS/op-str-s.cc, OPERATORS/op-str-m.cc: New files. 27060 * Makefile.in (OP_XSRC): Add them to the list. 27061 270622003-08-22 John W. Eaton <jwe@bevo.che.wisc.edu> 27063 27064 * defaults.cc (maybe_add_or_del_packages): Use source_file instead 27065 of parse_and_execute. 27066 * parse.y (source_file): New function. 27067 (Fsource): Use it. 27068 * parse.h (source_file): Provide decl. 27069 270702003-08-21 John W. Eaton <jwe@bevo.che.wisc.edu> 27071 27072 * utils.cc (octave_vsnprintf): Copy va_list to avoid using more 27073 than once. 27074 270752003-08-07 John W. Eaton <jwe@bevo.che.wisc.edu> 27076 27077 * utils.cc (octave_vsnprintf): Call octave_raw_vsnprintf instead 27078 of calling vsnprintf directly. 27079 (octave_vsnprintf) [HAVE_C99_VSNPRINTF]: Declare nchars to be size_t. 27080 270812003-08-06 Heine Kolltveit <kolltvei@idi.ntnu.no> 27082 27083 * utils.cc (check_dimensions(Array<int>&, char), 27084 get_dimensions(octave_value&, char, Array<int>&): New functions. 27085 * utils.h (check_dimensions (Array<int>&, char), 27086 get_dimensions (octave_value&, char, Array<int>&)): Provide decl. 27087 27088 * data.cc (fill_matrix): Also create N-d arrays. 27089 (Fones, Fzeros): Handle more than 2 args to create N-d arrays. 27090 270912003-07-30 John W. Eaton <jwe@bevo.che.wisc.edu> 27092 27093 * data.cc (make_diag): Use std::abs instead of our own ABS macro. 27094 27095 * utils.cc (identity_matrix): Move here from data.cc. 27096 (identity_matrix): Use std::min instead of our own MIN macro. 27097 27098 * utils.h (identity_matrix): Provide decl. 27099 27100 * DLD-FUNCTIONS/svd.cc (Fsvd): Improve handling of empty matrix arg. 27101 27102 * ov.cc (octave_value(const ArrayN<Complex>&)): New constructor. 27103 * ov.h (octave_value(const ArrayN<Complex>&)): Provide decl. 27104 271052003-07-30 Heine Kolltveit <kolltvei@idi.ntnu.no> 27106 27107 * ov.cc (octave_value(const ArrayN<double>&)): New constructor. 27108 * ov.h (octave_value(const ArrayN<double>&)): Provide decl. 27109 271102003-07-30 John W. Eaton <jwe@bevo.che.wisc.edu> 27111 27112 * ov.h (Vpropagate_empty_matrices): Delete decl. 27113 * ov.cc: (Vpropagate_empty_matrices): Delete. 27114 (propagate_empty_matrices): Delete. 27115 (symbols_of_ov): Delete DEFVAR for propagate_empty_matrices. 27116 27117 * utils.cc (empty_arg): Behave as though propagate_empty_matrices 27118 is always 1. 27119 * ov-range.cc (octave_range::is_true): Likewise. 27120 * ov-base-mat.cc (octave_base_matrix<MT>::is_true): Likewise. 27121 27122 * octave.cc (maximum_braindamage): Also set 27123 warn_matlab_incompatible to TRUE. 27124 27125 * lex.l (Vwhitespace_in_literal_matrix): Delete. 27126 (whitespace_in_literal_matrix): Delete. 27127 (symbols_of_lex): Delete DEFVAR for whitespace_in_literal_matrix. 27128 (<MATRIX_START>{S}*\,{S}*, <MATRIX_START>{S}+, 27129 (<MATRIX_START>{S}*{COMMENT}{SNLCMT}*, 27130 <MATRIX_START>{S}*{NL}{SNLCMT}*, maybe_unput_comma): Behave as though 27131 old Vwhitespace_in_literal_matrix variable is always 1. 27132 27133 * octave.cc (maximum_braindamage): Don't set 27134 whitespace_in_literal_matrix. 27135 271362003-07-29 John W. Eaton <jwe@bevo.che.wisc.edu> 27137 27138 * Makefile.in (install-lib): Use $(INSTALL), not 27139 $(INSTALL_PROGRAM) for $(SHLLIB) files. 27140 271412003-07-29 Paul Kienzle <pkienzle@users.sf.net> 27142 27143 * Makefile.in: Don't need special system.c for Cygwin. 27144 * oct-procbuf.cc: Use popen rather than fork/exec for Windows. 27145 271462003-07-28 Paul Kienzle <pkienzle@users.sf.net> 27147 27148 * sysdep.cc (CYGWIN_init): Convert TMPDIR to system agnostic path. 27149 271502003-07-25 Paul Kienzle <pkienzle@users.sf.net> 27151 27152 * help.cc (try_info, display_help_text): 27153 Protect spaces in filenames with quotes. 27154 * oct-hist.cc (do_edit_history): Likewise. 27155 * pt-plot.cc (open_plot_stream): Likewise. 27156 271572003-07-15 John W. Eaton <jwe@bevo.che.wisc.edu> 27158 27159 * oct-stream.cc (get_size, octave_base_stream::error, 27160 octave_base_stream::do_gets, octave_base_stream::getl, 27161 octave_base_stream::gets, octave_base_stream::do_scanf, 27162 octave_base_stream::scanf, octave_base_stream::do_oscanf, 27163 octave_base_stream::oscanf, do_printf_conv, 27164 octave_base_stream::do_printf, octave_base_stream::printf, 27165 octave_base_stream::puts, octave_base_stream::invalid_operation, 27166 octave_stream::getl, octave_stream::gets, octave_stream::scanf, 27167 octave_stream::oscanf, octave_stream::printf, octave_stream::puts, 27168 octave_stream::invalid_stream_error): Handle name of calling 27169 function for error messages as a std::string object. Change all 27170 callers. 27171 27172 * file-io.cc (Fprintf, Fputs): New functions, so we can get 27173 function prefixes on error messages right. 27174 (Ffgetl, Ffgets, Ffprintf, Fsprintf, Fputs, Ffscanf, Fsscanf): 27175 Pass name of calling function to octave_stream method. 27176 27177 * oct-stream.h (octave_base_stream::do_char_scanf, 27178 octave_base_stream::do_real_scanf): Delete unused decls. 27179 27180 * load-save.cc (read_mat5_binary_element): Correctly read struct 27181 arrays. 27182 27183 * pt-misc.cc (tree_parameter_list::initialize_undefined_elements): 27184 New args, warnfor and nargout. Change all callers. 27185 (symbols_of_pt_misc): New function. 27186 (warn_undefined_return_values): New function. 27187 27188 * octave.cc (maximum_braindamage): Don't set 27189 define_all_return_values. 27190 27191 * ov-usr-fcn.cc (ov_user_function::do_multi_index_op): Always 27192 intiialize undefined elements in ret_list to []. 27193 Never return last computed value. 27194 (Vreturn_last_computed_value, Vdefine_all_return_values): Delete. 27195 (return_last_computed_value, define_all_return_values): Delete. 27196 (symbols_of_ov_usr_fcn): Delete DEFVARs for 27197 return_last_computed_value, define_all_return_values, and 27198 default_return_value. 27199 272002003-07-14 John W. Eaton <jwe@bevo.che.wisc.edu> 27201 27202 * pt-misc.cc (tree_parameter_list::convert_to_const_vector): 27203 Don't skip undefined elements. 27204 272052003-07-13 John W. Eaton <jwe@bevo.che.wisc.edu> 27206 27207 * octave.cc (maximum_braindamage): Don't set 27208 default_global_variable_value or initialize_global_variables. 27209 27210 * pt-decl.cc (Vinitialize_global_variables): Delete. 27211 (initialize_global_variables): Delete. 27212 (symbols_of_pt_decl): Delete. 27213 (tree_global_command::do_init): Default initial value is now 27214 always []. 27215 272162003-07-11 John W. Eaton <jwe@bevo.che.wisc.edu> 27217 27218 * octave.cc (maximum_braindamage): Don't set default_eval_print_flag. 27219 27220 * parse.y (Vdefault_eval_print_flag): Delete: 27221 (default_eval_print_flag): Delete. 27222 (symbols_of_parse): Delete DEFVAR for default_eval_print_flag. 27223 (Feval, Fevalin): Return empty octave_value_list and turn printing 27224 on in eval_string if nargout is zero. 27225 27226 * ov-list.cc (octave_list::assign): Check 27227 Vwarn_resize_on_range_error, not Vresize_on_range_error. 27228 27229 * ov.cc (Vwarn_resize_on_range_error): New variable. 27230 (warn_resize_on_range_error): New function. 27231 (symbols_of_ov): Add DEFVAR for warn_resize_on_range_error. 27232 27233 * ov.cc (Vresize_on_range_error): Delete. 27234 (resize_on_range_error): Delete. 27235 (symbols_of_ov): Delete DEFVAR for resize_on_range_error. 27236 27237 * pt-mat.cc (Vwarn_empty_list_elements): New variable. 27238 (warn_empty_list_elements): New function. 27239 (symbols_of_pt_mat): Add DEFVAR for warn_empty_list_elements. 27240 (tm_row_const::tm_row_const_rep::init, tm_const::init): 27241 Check Vwarn_empty_list_elements, not Vempty_list_elements_ok. 27242 27243 * pt-mat.cc (Vempty_list_elements_ok): Delete. 27244 (empty_list_elements_ok): Delete. 27245 (symbols_of_pt_mat): Delete DEFVAR for empty_list_elements_ok. 27246 272472003-07-11 Russell Standish <R.Standish@unsw.edu.au> 27248 27249 * TEMPLATE-INST/Array-tc.cc (resize_fill_value): Provide 27250 specialization. 27251 272522003-07-10 John W. Eaton <jwe@bevo.che.wisc.edu> 27253 27254 * strfns.cc (Fchar): Force string conversions without warnings. 27255 27256 * ov.h (octave_value::convert_to_str, octave_value::all_strings, 27257 octave_value::string_value, octave_value:convert_to_str_internal): 27258 New arg, force. Fix all derived classes to match. 27259 27260 * strfns.cc (Fchar): Temporarily reset Vwarn_num_to_str to avoid 27261 warnings. 27262 27263 * ov.cc (convert_to_str): New arg, force. 27264 27265 * octave.cc (maximum_braindamage): Don't set treat_neg_dim_as_zero. 27266 27267 * utils.cc (Vwarn_neg_dim_as_zero): New variable. 27268 (warn_neg_dim_as_zero): New function. 27269 (symbols_of_utils): Add DEFVAR for warn_neg_dim_as_zero. 27270 (check_dimensions): Check Vwarn_neg_dim_as_zero, not 27271 Vtreat_neg_dim_as_zero. 27272 27273 * utils.cc (Vtreat_neg_dim_as_zero): Delete. 27274 (treat_neg_dim_as_zero): Delete. 27275 (symbols_of_utils): Delete DEFVAR for treat_neg_dim_as_zero. 27276 272772003-07-09 John W. Eaton <jwe@bevo.che.wisc.edu> 27278 27279 * octave.cc (maximum_braindamage): Don't set prefer_column_vectors. 27280 27281 * ov.cc (Vprefer_column_vectors): Delete. 27282 (prefer_column_vectors): Delete. 27283 (symbols_of_ov): Delete DEFVAR for prefer_column_vectors. 27284 27285 * octave.cc (maximum_braindamage): Don't set do_fortran_indexing. 27286 27287 * ov-re-mat.cc (octave_matrix::double_value, 27288 octave_matrix::complex_value): Use Vwarn_fortran_indexing, not 27289 Vdo_fortran_indexing. 27290 * ov-range.cc (octave_range::double_value, 27291 octave_range::complex_value): Likewise. 27292 * ov-cx-mat.cc (octave_complex_matrix::double_value, 27293 octave_complex_matrix::complex_value): Likewise. 27294 * ov-ch-mat.cc (octave_char_matrix::double_value, 27295 octave_char_matrix::complex_value): Likewise. 27296 * ov-bool-mat.cc (octave_bool_matrix::double_value, 27297 octave_bool_matrix::complex_value): Likewise. 27298 27299 * ov.cc (Vwarn_fortran_indexing): New variable. 27300 (warn_fortran_indexing): New function. 27301 (symbols_of_ov): Add DEFVAR for warn_fortran_indexing. 27302 (octave_value::vector_value, octave_value::int_vector_value, 27303 (octave_value::complex_vector_value): Check 27304 Vwarn_fortran_indexing, not Vdo_fortran_indexing. 27305 27306 * ov.h (Vwarn_fortran_indexing): Provide decl. 27307 27308 * ov.cc (Vdo_fortran_indexing): Delete unused variable. 27309 (do_fortran_indexing): Delete unused function. 27310 (symbols_of_ov): Delete DEFVAR for do_fortran_indexing. 27311 * ov.h (Vdo_fortran_indexing): Delete decl. 27312 27313 * ov.cc (octave_value::convert_to_str): Call convert_to_str_internal. 27314 (octave_value::convert_to_str_internal): New virtual function. 27315 Rename all derived class convert_to_str functions to match. 27316 27317 * variables.cc (generate_struct_completions): Set 27318 discard_warning_messages, not Vwarning_option. Also protect 27319 warning_state. 27320 27321 * parse.y (fold): Temporarily discard warning messages. 27322 Also protect warning_state. 27323 27324 * error.cc (discard_warning_messages): New variable. 27325 (vwarning): Use it. 27326 (warning): Don't print backtrace if discard_warning_messages is true. 27327 27328 * ov.cc (octave_value::convert_to_str): 27329 Handle type conversion warning here. 27330 27331 * gripes.cc (gripe_implicit_conversion): 27332 New function accepting std::string args. 27333 27334 * octave.cc (maximum_braindamage): Don't set 27335 implicit_num_to_str_ok or implicit_str_to_num_ok. 27336 27337 * ov-base.cc (octave_base_value::char_matrix_value): 27338 Vimplicit_num_to_str_ok no longer exists. 27339 (octave_base_value::all_strings): Likewise. 27340 (octave_base_value::string_value): Likewise. 27341 27342 * ov-str-mat.cc (octave_char_matrix_str::matrix_value): Warn based 27343 on Vwarn_str_to_num instead of Vimplicit_str_to_num_ok. 27344 27345 * ov.cc (Vwarn_num_to_str, Vwarn_str_to_num): New variables. 27346 (warn_num_to_str, warn_str_to_num): New functions. 27347 (symbols_of_ov): Add DEFVARs for warn_num_to_str and Vwarn_str_to_num. 27348 * ov.h (Vwarn_num_to_str, Vwarn_str_to_num): Provide decl. 27349 27350 * ov.cc (Vimplicit_num_to_str_ok, Vimplicit_str_to_num_ok): 27351 Delete unused variables. 27352 (implicit_num_to_str_ok, implicit_str_to_num_ok): 27353 Delete unused functions. 27354 (symbols_of_ov): Delete DEFVARs for implicit_num_to_str_ok and 27355 implicit_str_to_num_ok. 27356 * ov.h (Vimplicit_num_to_str_ok, Vimplicit_str_to_num_ok): 27357 Delete decls. 27358 27359 * pt-mat.cc (tree_matrix::rvalue): Vimplicit_num_to_str_ok no 27360 longer exists. 27361 27362 * ov.cc (Vwarn_imag_to_real): New variable. 27363 (warn_imag_to_real): New function. 27364 (symbols_of_ov): Add DEFVAR for warn_imag_to_real. 27365 * ov.h (Vwarn_imag_to_real): Provide decl. 27366 27367 * ov.cc (Vok_to_lose_imaginary_part): Delete unused variable. 27368 (ok_to_lose_imaginary_part): Delete unused function. 27369 (symbols_of_ov): Delete DEFVAR for ok_to_lose_imaginary_part. 27370 * ov.h (Vok_to_lose_imaginary_part): Delete decl. 27371 27372 * ov-complex.cc (octave_complex::double_value): Warn based on 27373 Vwarn_imag_to_real instead of Vok_to_lose_imaginary_part. 27374 (octave_complex::matrix_value): Likewise. 27375 * ov-cx-mat.cc (octave_complex_matrix::double_value): Likewise. 27376 (octave_complex_matrix::matrix_value): Likewise. 27377 27378 * octave.cc (maximum_braindamage): Don't set ok_to_lose_imaginary_part. 27379 273802003-07-08 John W. Eaton <jwe@bevo.che.wisc.edu> 27381 27382 * sighandlers.cc (sig_hup_or_term_handler): New function. 27383 (install_signal_handlers): Install sig_hup_or_term_handler for 27384 SIGHUP and SIGTERM instead of generic_sig_handler. 27385 (Vsighup_dumps_octave_core, Vsigterm_dumps_octave_core): 27386 New static variables. 27387 (sighup_dumps_octave_core, sigterm_dumps_octave_core): 27388 New static functions. 27389 (symbols_of_sighandlers): Add DEFVARs for sighup_dumps_octave_core 27390 and sigterm_dumps_octave_core. 27391 27392 * defaults.h.in (OCTAVE_LOCALAPIFCNFILEDIR, OCTAVE_LOCALAPIOCTFILEDIR): 27393 Subsitute new variables. 27394 27395 * defun.cc (check_version): Compare version to OCTAVE_API_VERSION, 27396 not OCTAVE_VERSION. Mismatch is now fatal. 27397 * defun-int.h (DEFINE_FUN_INSTALLER_FUN3): Pass 27398 OCTAVE_API_VERSION instead of OCTAVE_VERSION to check_version. 27399 * version.h (OCTAVE_API_VERSION): New macro, initial value api-v1. 27400 27401 * defaults.cc (Vdefault_exec_path): New static variable. 27402 (set_default_default_exec_path): New function. 27403 (install_defaults): Call it. 27404 (exec_path): Use it. 27405 (default_exec_path): New function. 27406 (symbols_of_defaults): Add DEFVAR for DEFAULT_EXEC_PATH. 27407 274082003-07-07 John W. Eaton <jwe@bevo.che.wisc.edu> 27409 27410 * defaults.h.in (OCTAVE_LOCALSTARTUPFILEDIR, OCTAVE_STARTUPFILEDIR): 27411 Set values directly instead of constructing them. 27412 274132003-06-28 Arno J. Klaassen <arno@heho.snv.jussieu.fr> 27414 27415 * toplev.cc (octave_config_info): Key for OCTAVE_CONF_DEFS should 27416 be DEFS, not UGLY_DEFS. 27417 274182003-06-27 John W. Eaton <jwe@bevo.che.wisc.edu> 27419 27420 * version.h (OCTAVE_VERSION): Now 2.1.50. 27421 274222003-06-26 John W. Eaton <jwe@bevo.che.wisc.edu> 27423 27424 * variables.cc (symbol_exist): Distinguish between user and dld 27425 functions loaded in memory. 27426 274272003-06-24 John W. Eaton <jwe@bevo.che.wisc.edu> 27428 27429 * pt-mat.cc (tm_row_const::init, tm_const::init): Don't ignore 27430 empty matrices that have one non-zero dimension. 27431 27432 * variables.cc (symbol_exist): Use dir_path::find_first_of to 27433 search for .oct and .m files. 27434 27435 * ov-base.cc (octave_base_value::subsasgn): Also allow type 27436 conversion for empty numeric objects with more than one index. 27437 * ov-base-mat.cc (octave_base_matrix<T>::subsasgn): Likewise. 27438 274392003-06-23 John W. Eaton <jwe@bevo.che.wisc.edu> 27440 27441 * variables.cc (do_who): New arg, return_list. If return_list is 27442 true, return values in cell or struct arrays instead of printing. 27443 (Fwho, Fwhos): If nargout is 1, ask do_who to return lists of values. 27444 * oct-map.h (Octave_map (const std::string&, const octave_value_list&): 27445 New constructor. 27446 274472003-06-19 John W. Eaton <jwe@bevo.che.wisc.edu> 27448 27449 * pt-idx.cc (tree_index_expression::rvalue): 27450 Correctly handle index expressions like x(end).f(end). 27451 (tree_index_expression::lvalue): Likewise. 27452 27453 * pt-arg-list.cc (F__end__): Add nr, nc info to error messages. 27454 274552003-06-18 John W. Eaton <jwe@bevo.che.wisc.edu> 27456 27457 * pr-output.cc (set_format (const Matrix&, int&, double&)): Ask 27458 any_element_is_negative to return true for negative zero as well. 27459 (set_format (const ComplexMatrix&, int&, int&, double&)): Likewise. 27460 274612003-06-16 John W. Eaton <jwe@bevo.che.wisc.edu> 27462 27463 * toplev.cc (main_loop): Set octave_interrupt_hook and 27464 octave_bad_alloc_hook to unwind_protect::run_all here. 27465 (recover_from_exception): Don't call unwind_protect::run_all here. 27466 27467 * pt-except.cc (do_catch_code): Return immediately if 27468 octave_interrupt_immediately is nonzero. 27469 27470 * sighandlers.cc (sigint_handler): If jumping, don't set 27471 octave_interrupt_state. 27472 274732003-06-14 John W. Eaton <jwe@bevo.che.wisc.edu> 27474 27475 * load-save.cc (get_save_type): Avoid all save types other than 27476 LS_DOUBLE to avoid apparent Matlab bugs. 27477 274782003-06-13 John W. Eaton <jwe@bevo.che.wisc.edu> 27479 27480 * parse.y (frob_function, parse_fcn_file): Handle help_buf as 27481 stack of strings. 27482 * lex.l ({CCHAR}): Handle help_buf as stack of strings. 27483 Store text returned from grab_help_text in help_buf here. 27484 (reset_parser): Handle help_buf as stack of strings. 27485 (prep_for_nested_function): Push empty string onto help_buf stack. 27486 (grab_help_text): Return help text instead of storing it in help_buf. 27487 * parse.h, parse.y (help_buf): Now a stack of strings. 27488 27489 * oct-stream.cc (printf_value_cache::string_value): Don't attempt 27490 to extract values when none are available. 27491 274922003-06-04 John W. Eaton <jwe@bevo.che.wisc.edu> 27493 27494 * pt-plot.cc (Vgnuplot_has_multiplot): Delete variable. 27495 (gnuplot_has_multiplot): Delete. 27496 (symbols_of_pt_plot): Delete DEFVAR for gnuplot_has_multiplot. 27497 274982003-05-28 John W. Eaton <jwe@bevo.che.wisc.edu> 27499 27500 * version.h (OCTAVE_VERSION): Now 2.1.49. 27501 275022003-05-28 Teemu Ikonen <tpikonen@pcu.helsinki.fi> 27503 27504 * load-save.cc (save_mat5_binary_element, save_mat_binary_data): 27505 Allow saving of non-7-bit ASCII characters. 27506 275072003-05-28 John W. Eaton <jwe@bevo.che.wisc.edu> 27508 27509 * oct-stream.cc (FINISH_CHARACTER_CONVERSION, 27510 octave_base_stream::do_scanf): Do a better job of resizing for 27511 charachter conversions. 27512 275132003-05-25 John W. Eaton <jwe@bevo.che.wisc.edu> 27514 27515 * ov-cx-mat.cc (octave_complex_matrix::assign): Move definition here. 27516 * ov-cx-mat.h: From here. 27517 275182003-05-24 John W. Eaton <jwe@bevo.che.wisc.edu> 27519 27520 * ov-range.cc (octave_range::try_narrowing_conversion): Convert to 27521 [](1x0) instead of [](0x0) if range is empty. 27522 275232003-05-14 John W. Eaton <jwe@bevo.che.wisc.edu> 27524 27525 * Makefile.in: Handle DESTDIR. 27526 275272003-05-13 John W. Eaton <jwe@bevo.che.wisc.edu> 27528 27529 * lex.l: Use yyunput (X, yytext) instead of unput (X) for newer 27530 versions of flex. 27531 275322003-05-06 John W. Eaton <jwe@bevo.che.wisc.edu> 27533 27534 * version.h (OCTAVE_VERSION): Now 2.1.48. 27535 275362003-05-02 John W. Eaton <jwe@bevo.che.wisc.edu> 27537 27538 * version.h (OCTAVE_VERSION): Now 2.1.47. 27539 275402003-05-01 John W. Eaton <jwe@bevo.che.wisc.edu> 27541 27542 * load-save.cc (save_ascii_data): If saving a range with 27543 non-integer base, limit, or increment, save as matrix instead. 27544 (get_save_type): Avoid unsigned types. 27545 275462003-04-30 John W. Eaton <jwe@bevo.che.wisc.edu> 27547 27548 * octave.cc (initialize_pathsearch): Don't save old and set new 27549 value of TEXMFDBS. 27550 27551 * toplev.cc (restore_texmfdbs_envvar): Delete function. 27552 (Fsystem): Don't set and reset TEXMFDBS. 27553 27554 * toplev.h, toplev.cc (octave_original_texmfdbs): Delete variable. 27555 275562003-04-25 John W. Eaton <jwe@bevo.che.wisc.edu> 27557 27558 * DLD-FUNCTIONS/getpwent.cc (Fgetpwnam): Delete unnecessary 27559 c_str() method. 27560 275612003-04-22 John W. Eaton <jwe@bevo.che.wisc.edu> 27562 27563 * file-io.cc: Include <memory> for auto_ptr. 27564 275652003-04-18 John W. Eaton <jwe@bevo.che.wisc.edu> 27566 27567 * toplev.cc (octave_config_info): Delete LIBKPATHSEA from struct. 27568 * oct-conf.h.in: Don't substitute LIBKPATHSEA. 27569 27570 * octave.cc (octave_main): Don't call dir_path::set_program_name. 27571 275722003-04-17 John W. Eaton <jwe@bevo.che.wisc.edu> 27573 27574 * ov-file.h (octave_file::empty_clone): Create an octave_scalar 27575 object, not an octave_file object. 27576 275772003-04-01 John W. Eaton <jwe@bevo.che.wisc.edu> 27578 27579 * load-save.cc (hdf5_read_next_data): Extract list before 27580 assigning to map element. 27581 (add_hdf5_data): Prefix faked names with '_' so they are valid 27582 identifiers. 27583 275842003-03-24 Mats Jansson <mats.e.jansson@home.se> 27585 27586 * syscalls.cc (Fkill): Fixed docstring typo. 27587 275882003-03-18 John W. Eaton <jwe@bevo.che.wisc.edu> 27589 27590 * ov-cell.h (octave_cell::is_matrix_type): New function. 27591 275922003-03-09 Duncan Temple Lang <duncan@research.bell-labs.com> 27593 27594 * octave.cc (octave_main): New arg, embedded. 27595 * octave.h: Fix decl. 27596 * main.c: Pass 0 for embedded here. 27597 275982003-03-03 John W. Eaton <jwe@bevo.che.wisc.edu> 27599 27600 * version.h (OCTAVE_VERSION): Now 2.1.46. 27601 27602 * oct-conf.h.in: Undo previous change. 27603 27604 * load-save.cc (read_mat5_binary_element): Handle structure arrays. 27605 (save_mat5_binary_element): Likewise. 27606 276072003-03-01 John W. Eaton <jwe@bevo.che.wisc.edu> 27608 27609 * ov-cell.cc (octave_cell::subsasgn): Use make_unique in 27610 appropriate places to preserve copy on write semantics. 27611 27612 * oct-conf.h.in: Substitute OCTAVE_CONF_KPATHSEA_INCFLAGS. 27613 27614 * oct-stdstrm.h (octave_stdiostream::output_stream): Return stream 27615 if mode is out, not in. 27616 276172003-02-22 John W. Eaton <jwe@bevo.che.wisc.edu> 27618 27619 * strfns.cc (Fchar): New function. 27620 27621 * ov-cell.cc (octave_cell::all_strings): Allow elements to be 27622 string arrays. 27623 * ov.cc (octave_value::all_strings, octave_value::convert_to_str): 27624 New optional arg, pad. Change all derived classes. 27625 27626 * ov-struct.cc (Ffieldnames, Fisfield): Move here from data.cc. 27627 27628 * data.cc (Ffieldnames): Rename from Fstruct_elements. Return 27629 cell array instead of a string array. 27630 (Fisfield): Rename from struct_contains. 27631 276322003-02-22 Paul Kienzle <pkienzle@users.sf.net> 27633 27634 * toplev.cc: Put config info in array of strings, then convert to map. 27635 276362003-02-22 John W. Eaton <jwe@bevo.che.wisc.edu> 27637 27638 * variables.cc (symbol_exist): For names like foo.bar, don't omit 27639 the part after the dot. 27640 276412003-02-21 John W. Eaton <jwe@bevo.che.wisc.edu> 27642 27643 * octave.cc (fun_to_call): New static variable. 27644 (octave_main): Pass it to main_loop. 27645 (long_opts): Accept --funcall. 27646 (usage_string, verbose_usage): Add --funcall. 27647 27648 * toplev.cc (main_loop): New arg, fun_to_call. If non-empty, 27649 evaluate this function before continuing. 27650 276512003-02-21 Paul Kienzle <pkienzle@users.sf.net> 27652 27653 * file-io.cc (Fmkstemp): Use OCTAVE_LOCAL_BUFFER instead of using 27654 std::auto_ptr directly. 27655 276562003-02-21 John W. Eaton <jwe@bevo.che.wisc.edu> 27657 27658 * ov.h, ov.cc (octave_value (long long int)): New constructor. 27659 (octave_value (unsigned long long int)): Likewise. 27660 27661 * oct-obj.h (octave_value_list::operator delete): Handle systems 27662 with or without placement delete. 27663 276642003-02-21 Paul Kienzle <pkienzle@users.sf.net> 27665 27666 * utils.cc (octave_vsnprintf): Return value of vsnprintf is int, 27667 not size_t. Make sure there is some space left in the buffer for 27668 vsnprintf versions which return the number of characters written 27669 even when the buffer is too short. 27670 276712003-02-20 John W. Eaton <jwe@bevo.che.wisc.edu> 27672 27673 * debug.cc (get_user_function): Use dynamic_cast, not static_cast. 27674 27675 * ov-usr-fcn.cc (octave_user_function::traceback_error): Now const. 27676 27677 * ov.cc (octave_value (const octave_fcn_handle&)): New constructor. 27678 (octave_value::fcn_handle_value): New virtual function. 27679 * ov-base.cc (octave_value::fcn_handle_value): Provide default. 27680 * ov-usr-fcn.cc (octave_user_function::stash_fcn_file_name): New 27681 arg, nm. Change all callers. 27682 * ov-fcn.h (octave_function::is_nested_function): New virtual function. 27683 * parse.y (get_feval_args): New function. 27684 (feval (octave_function *, const octave_value_list&, int)): Likewise. 27685 (feval (const octave_value_list&, int)): Allow the first arg to be 27686 a function handle as well as a string. 27687 * variables.cc (load_function): New function. 27688 * pt-walk.h, pt-pr-code.h, pt-pr-code.cc, pt-check.h, pt-check.cc, 27689 pt-bp.h, pt-bp.cc: Handle new tree_fcn_handle class. 27690 * pt-all.h: Include pt-fcn-handle.h. 27691 * pt-fcn-handle.h, pt-fcn-handle.cc, ov-fcn-handle.h, 27692 ov-fcn-handle.cc: New files. 27693 276942003-02-19 John W. Eaton <jwe@bevo.che.wisc.edu> 27695 27696 * parse.y (FCN_HANDLE): New token type. 27697 (fcn_handle): New non-terminal. 27698 (primary_expr): Also accept fcn_handle. 27699 (tree_fcn_handle_type): New %type. 27700 (union): New field, tree_fcn_handle_type. 27701 (make_fcn_handle): New function. 27702 27703 * lex.l (@{IDENT}): Recognize function handle syntax. 27704 (@): Don't recognize "@" as a single token. 27705 27706 * load-save.cc (struct hdf5_callback_data): Provide constructor. 27707 (hdf5_callback_data::name, hdf5_callback_data::doc): Now 27708 std::string instead of char*. Change all uses. 27709 277102003-02-18 Roger Banks <rbanks@colsa.com> 27711 27712 * load-save.cc (read_ascii_data, read_ascii_data, 27713 read_mat5_binary_element, save_mat5_binary_element, 27714 save_ascii_data): Handle cell arrays. 27715 (write_mat5_cell_array): New function. 27716 277172003-02-18 John W. Eaton <jwe@bevo.che.wisc.edu> 27718 27719 * Makefile.in (DLD_XSRC): Delete log.cc from the list. 27720 Add sqrtm.cc to the list. 27721 27722 * DLD-FUNCTIONS/log.cc: Delete. 27723 277242003-02-18 Paul Kienzle <pkienzle@users.sf.net> 27725 27726 * DLD-FUNCTIONS/sqrtm.cc: New file. 27727 277282003-02-18 David Bateman <dbateman@free.fr> 27729 27730 * DLD-FUNCTIONS/lu.cc (Flu): Allow non-square matrices. 27731 277322003-02-17 John W. Eaton <jwe@bevo.che.wisc.edu> 27733 27734 * load-save.cc (read_binary_file_header, do_load, do_save, 27735 write_header): No longer static. 27736 (load_save_format): Move enum decl to load-save.h. 27737 277382003-02-15 John W. Eaton <jwe@bevo.che.wisc.edu> 27739 27740 * oct-stdstrm.h, oct-stdstrm.cc (octave_base_stdiostream, 27741 octave_iostdiostream, octave_istdiostram, octave_ostdiostream): 27742 Combine all functionality into one class, octave_stdiostream. 27743 Change all uses. 27744 27745 * file-io.cc (Ftmpfile, Fmkstemp): New functions. 27746 * oct-stdstrm.h (octave_iostdiostream): New class. 27747 (octave_istdiostream::octave_istdiostream, 27748 octave_istdiostream::create, 27749 octave_ostdiostream::octave_ostdiostream, octave_ostdiostream::create, 27750 octave_iostdiostream::octave_iostdiostream, 27751 octave_iostdiostream::create): Make close function the last arg. 27752 Change all uses. 27753 27754 * c-file-ptr-stream.h (io_c_file_ptr_stream): New class. 27755 277562003-02-14 John W. Eaton <jwe@bevo.che.wisc.edu> 27757 27758 * octave.cc (maximum_braindamage): Set boolean built-in variables 27759 to true and false instead of 1.0 and 0.0. 27760 (octave_main): Likewise. 27761 * error.cc (Fwarning): Likewise. 27762 27763 * pager.cc (Fmore): Make the no-arg case work too. 27764 27765 * ov-str-mat.h (octave_char_matrix_str::is_real_type, 27766 octave_char_matrix_str::is_matrix_type, 27767 octave_char_matrix_str::is_numeric_type): Always return false. 27768 277692003-02-13 John W. Eaton <jwe@bevo.che.wisc.edu> 27770 27771 * lex.l (<CCHAR>): If we are parsing a command, reset start state. 27772 Use BEGIN (INITIAL) instead of BEGIN 0. Use parens around start 27773 state in BEGIN statements. 27774 277752003-02-13 Paul Kienzle <pkienzle@users.sf.net> 27776 27777 * variables.cc (Fmlock, Fmunlock, Fmislocked): New functions. 27778 27779 * variables.cc (mlock, munlock, mislocked): New functions. 27780 * variables.h: Provide decls. 27781 27782 * symtab.h (symbol_record::unmark_static): New function. 27783 277842003-02-12 John W. Eaton <jwe@bevo.che.wisc.edu> 27785 27786 * error.cc (reset_error_handler): New function. 27787 * toplev.cc (main_loop): Use it here. 27788 * lex.l (reset_parser): Don't set error_state and warning_state here. 27789 * parse.y (eval_string): Reset parser before calling yyparse. 27790 277912003-01-29 John W. Eaton <jwe@bevo.che.wisc.edu> 27792 27793 * data.cc (Ffmod): New function. 27794 27795 * c-file-ptr-stream.cc (c_file_ptr_buf::underflow_common): New 27796 function. 27797 * c-file-ptr-stream.h (c_file_ptr_buf::underflow, 27798 c_file_ptr_buf::uflow): Use it. 27799 (c_file_ptr_buf): Derive from std::streambuf, not OCTAVE_STD_FILEBUF. 27800 Don't cache file descriptor. 27801 278022003-01-28 John W. Eaton <jwe@bevo.che.wisc.edu> 27803 27804 * DLD-FUNCTIONS/minmax.cc: Move min and max functions from here to 27805 liboctave/dMatrix.cc and liboctave/CMatrix.cc. 27806 278072003-01-24 John W. Eaton <jwe@bevo.che.wisc.edu> 27808 27809 * DLD-FUNCTIONS/rand.cc: Rewrite to use new octave_rand functions. 27810 278112003-01-23 John W. Eaton <jwe@bevo.che.wisc.edu> 27812 27813 * oct-stream.cc (octave_base_stream::do_printf): Handle values 27814 outside the range of integers in int conversions for 27815 compatibilitiy wtih Matlab. 27816 278172003-01-22 John W. Eaton <jwe@bevo.che.wisc.edu> 27818 27819 * load-save.cc (get_mat_data_input_line): Handle lines with CR 27820 only as separator. 27821 27822 * oct-stream.cc (octave_base_stream::do_printf): Handle Inf and 27823 NaN in int conversions for compatibility with Matlab. 27824 27825 * data.cc (symbols_of_data): Doc fix for realmin. 27826 27827 * cutils.c (octave_raw_vsnprintf): New function. 27828 * utils.cc (octave_snprintf): Move here from cutils.c. 27829 (octave_Vsnprintf): Likewise. Allow octave_raw_vsnprintf to be 27830 interrupted. 27831 * utils.h (octave_vsnprintf, octave_snprintf): No longer extern "C". 27832 278332003-01-21 John W. Eaton <jwe@bevo.che.wisc.edu> 27834 27835 * pt-loop.cc (tree_complex_for_command::eval): Fix typo. 27836 278372003-01-16 Mumit Khan <khan@nanotech.wisc.edu> 27838 27839 * mk-oct-links: Use $SED if set. 27840 * mkbuiltins: Likewise. 27841 * mkdefs: Likewise. 27842 * mkdocs: Likewise. 27843 * mkgendoc: Likewise. 27844 * mkops: Likewise. 27845 278462003-01-11 Paul Kienzle <pkienzle@users.sf.net> 27847 27848 * Makefile.in (gendoc$(BUILD_EXEEXT)): Pass $(BUILD_CXXFLAGS) and 27849 $(BUILD_LDFLAGS) to compiler. 27850 278512003-01-11 John W. Eaton <jwe@bevo.che.wisc.edu> 27852 27853 * parse.y (Fassignin): New function. 27854 278552003-01-10 John W. Eaton <jwe@bevo.che.wisc.edu> 27856 27857 * sighandlers.cc (make_sig_struct): New function. 27858 (symbols_of_sighandlers): Add DEFCONST for SIG struct. 27859 27860 * syscalls.cc (Fkill): New function. 27861 278622003-01-06 John W. Eaton <jwe@bevo.che.wisc.edu> 27863 27864 * oct-stream.cc (get_size): If only one dimension is specified and 27865 it is zero, also set the other dimension to zero instead of one. 27866 278672003-01-04 John W. Eaton <jwe@bevo.che.wisc.edu> 27868 27869 * sysdep.cc [__DECCXX]: Add a kluge for some missing template 27870 functions. 27871 278722003-01-03 John W. Eaton <jwe@bevo.che.wisc.edu> 27873 27874 * ov-usr-fcn.cc (octave_vr_val): Assert vr_list != 0, not vr_list. 27875 * variables.cc (builtin_string_variable, builtin_any_variable, 27876 builtin_real_scalar_variable, bind_builtin_variable): Likewise. 27877 27878 * TEMPLATE-INST/Array-tc.cc: Provide specialization of 27879 Array<octave_value>::resize_fill_value before instantiation of 27880 Array<octave_value>. 27881 27882 * oct-obj.h (octave_value_list::operator delete): Define version 27883 of delete operator to correspond to placement new operator. 27884 27885 * mkgendoc: In generated code, define __USE_STD_IOSTREAM if using 27886 Compaq C++. 27887 27888 * Makefile.in (distclean): Also remove doc-files and gendoc.cc. 27889 27890 * input.cc (initialize_command_input): Use const for 27891 initialization of char * from literal string. 27892 27893 * pt-plot.cc (subplot::extract_plot_data): Call single_subsref, 27894 not subsref. 27895 * ov.h, ov.cc (single_subsref (const std::string&, const 27896 octave_value_list&)): Rename from subsref. 27897 27898 * symtab.cc (symbol_table::rename): Explicitly convert C string to 27899 std::string so type of second arg of ?: matches third. 27900 (symbol_table::lookup): Likewise. 27901 27902 * mappers.cc: Remove std:: qualifiers from C library names. 27903 279042003-01-03 John W. Eaton <jwe@bevo.che.wisc.edu> 27905 27906 * pt-exp.h (tree_expression::has_magic_end): New pure virtual function. 27907 * pt-id.h (tree_identifier::has_magic_end): New function. 27908 * pt-colon.h (tree_colon_expression::has_magic_end): Likewise. 27909 * pt-idx.h (tree_index_expression::has_magic_end): Likewise. 27910 * pt-const.h (tree_constant::has_magic_end): Likewise. 27911 * pt-unop.h (tree_unary_expression::has_magic_end): Likewise. 27912 * pt-binop.h (tree_binary_expression::has_magic_end): Likewise. 27913 * pt-assign.h (tree_multi_assignment::has_magic_end): Likewise. 27914 (tree_simple_assignment::has_magic_end): Likewise. 27915 * pt-mat.cc (tree_matrix::has_magic_end): Likewise. 27916 * pt-arg-list.cc (tree_argument_list::has_magic_end): Likewise. 27917 27918 * pt-arg-list.cc (tree_argument_list::append): Check all 27919 expression types for magic end token.. 27920 27921 * file-io.cc (Ftmpnam): Improve error checking. 27922 (symbols_of_file_io): Move definition of P_tmpdir here from dirfns.cc. 27923 27924 * dirfns.cc (symbols_of_dirfns): Install new built-in constant 27925 P_tmpdir. 27926 279272003-01-02 John W. Eaton <jwe@bevo.che.wisc.edu> 27928 27929 * dirfns.cc (symbols_of_dirfns): New function. 27930 Install new built-in constant filesep. 27931 27932 * utils.cc (Fisvaranme): New function. 27933 (valid_identifier): Identifiers can't start with digits! Doh! 27934 27935 * lex.l (Fiskeyword): New function. 27936 27937 * Makefile.in (INCLUDES): Don't forget base-list.h. 27938 27939 * symtab.cc (symbol_record::define): If definition already exists, 27940 redefine it instead of replacing it. 27941 27942 * variables.cc (symbol_exist): Don't use reference when handling 27943 sr->def (). 27944 27945 * pt-plot.cc (save_in_tmp_file): octave_value arg is now const. 27946 * pt-misc.cc (tree_parameter_list::initialize_undefined_elements): 27947 Likewise. 27948 27949 * symtab.cc (symbol_record::clear): Don't do anything if the 27950 symbol record is already undefined. 27951 279522003-01-01 John W. Eaton <jwe@bevo.che.wisc.edu> 27953 27954 * pt-arg-list.cc (tree_argument_list::append): New function. 27955 (tree_argument_list::convert_to_const_vector): Don't save and 27956 set pointer to indexed object if list_includes_magic_end is false. 27957 * pt-arg-list.h (tree_argument_list::append): Provide decl. 27958 (tree_argument_list::list_includes_magic_end): New data member. 27959 (tree_argument_list::tree_argument_list): Initialize it. 27960 27961 * ov-base.cc (octave_base_value::char_matrix_value, 27962 octave_base_value::all_strings, octave_base_value::string_value): 27963 Attempt conversions here if Vimplicit_num_to_num_ok is true. 27964 27965 * ov.cc (Vimplicit_num_to_str_ok): Move here from pt-mat.cc and 27966 make extern. 27967 * ov.h: Provide decl. 27968 27969 * oct-stream.cc (printf_value_cache::looking_at_string): Delete. 27970 (printf_value_cache::string_value): Just attempt conversion. 27971 (octave_base_stream::do_printf): When doing '%s' format, 27972 just attempt converstion. 27973 27974 * file-io.cc (Ffread): Allow size to be omitted even when 27975 additional arguments are given. 27976 279772002-12-31 John W. Eaton <jwe@bevo.che.wisc.edu> 27978 27979 * pt-arg-list.cc (F__end__): Fail if rows or columns is negative. 27980 (tree_argument_list::convert_to_const_vector): Only protect and 27981 save pointer to the indexed object if it is a constant. 27982 27983 * syscalls.cc (Fmkfifo): Use long_value instead of cast. 27984 27985 * ov.h (octave_value::short_value, octave_value::ushort_value, 27986 octave_value::uint_value, octave_value::long_value, 27987 octave_value::ulong_value): New functions. 27988 27989 * syscalls.cc (mk_stat_map, Fgetegid, getgid, geteuid): Likewise. 27990 Delete unnecessary casts. 27991 * file-io.cc (Ffgetl, Ffgets, Fftell, Fsscanf): Likewise. 27992 * toplev.cc (Fsystem): Likewise. 27993 27994 * ov-file.h (octave_file::double_value, octave_file::scalar_value): 27995 Delete unnecessry cast. 27996 27997 * ov.cc (octave_value::octave_value): Add constructors for 27998 octave_time, short int, unsigned short int, unsigned int, long 27999 int, unsigned long int, 28000 28001 * ov.h (octave_value::do_subsref (const std::string&, const 28002 octave_value_list&)): Rename from subsref. Change all derived classes. 28003 28004 * input.cc (generate_completion): Delete unused variable prefix_len. 28005 28006 * ov.h (DECLARE_OV_TYPEID_FUNCTIONS_AND_DATA): Delete volatile 28007 qualifier for decls of static_type_id and t_id. 28008 (DEFINE_OV_TYPEID_FUNCTIONS_AND_DATA): Likewise, for def of t_id. 28009 280102002-12-30 John W. Eaton <jwe@bevo.che.wisc.edu> 28011 28012 * utils.cc (Ffile_in_path): Index args correctly. 28013 28014 * utils.cc (Ffile_in_path): Call error, not print_usage, for 28015 invalid option error. 28016 (Ffile_in_loadpath): Likewise. 28017 28018 * load-save.cc: Use OCTAVE_LOCAL_BUFFER instead of local automatic 28019 arrays or using new/delete. 28020 28021 * lex.l (.): Try another approach to handling EOF here. 28022 28023 * load-save.cc (read_mat_ascii_data): Use isalpha and isalnum, not 28024 ::isalpha and ::isalnum. 28025 28026 * defaults.cc (maybe_add_or_del_packages): SCRIPT_FILE arg is now 28027 a const reference type. 28028 28029 * ov.h (octave_value::subsref, octave_value::subsasgn, 28030 octave_value::assign, octave_value::do_non_const_unary_op, 28031 octave_value::numeric_assign): TYPE arg is now a const reference 28032 type. Change all derived classes. 28033 28034 * ov.cc (octave_value::subsref (const std::string&, const 28035 octave_value_list&)): Move body here, from ov.h. 28036 28037 * octave.cc (octave_main): Return 0 at end of function to avoid 28038 compiler warnings. 28039 280402002-12-30 Paul Kienzle <pkienzle@users.sf.net> 28041 28042 * parse.y: Fix typo in doc string. 28043 280442002-12-29 John W. Eaton <jwe@bevo.che.wisc.edu> 28045 28046 * DLD-FUNCTIONS/lpsolve.cc (Flpsolve): Rename from Flp_solve. 28047 (Flpsolve_options): Rename ffrom Flp_solve_options. 28048 280492002-12-27 John W. Eaton <jwe@bevo.che.wisc.edu> 28050 28051 * parse.y (Fevalin): New function. 28052 28053 * variables.cc (curr_caller_sym_tab): New global variable. 28054 * variables.h: Provide decl. 28055 (initialize_symbol_tables): Initialize it. 28056 * ov-usr-fcn.cc (octave_user_function::do_multi_index_op): 28057 Protect and set it here. 28058 280592002-12-26 John W. Eaton <jwe@bevo.che.wisc.edu> 28060 28061 * utils.cc (search_path_for_file): Second arg now string_vector. 28062 Use find_first_of, not find. 28063 (search_path_for_all_files): Second arg now string_vector. 28064 Use find_all_first_of, not find_all. 28065 (Ffile_in_path): Accept cell array of strings as first argument. 28066 (Ffile_in_loadpath): Likewise. 28067 28068 * dynamic-ld.cc (octave_dynamic_loader::load): New arg, file_name. 28069 (octave_dynamic_loader::do_load): Likewise. If file_name is not 28070 empty, use it instead of searching in path. 28071 28072 * parse.y (load_fcn_from_file): Use find_first_of to perform search. 28073 28074 * ov-cell.cc (octave_cell::all_strings): New function. 28075 * ov-cell.h: Provide decl. 28076 280772002-12-25 John W. Eaton <jwe@bevo.che.wisc.edu> 28078 28079 * parse.y (function_end): If parsing a nested function, set 28080 lexer_flags.parsing_nested_function to -1. 28081 (frob_function): If lexer_flags.parsing_nested_function is 28082 negative, set it to zero. 28083 * lex.h (lexical_feedback::parsing_nested_function): Now int. 28084 Change uses as needed. 28085 28086 * lex.l (NESTED_FUNCTION_BEGIN): Rename from NESTED_FUNCTION_START. 28087 Now an exclusive start state. 28088 (NESTED_FUNCTION_END): New exclusive start state. 28089 (is_keyword): When matching a new function keyword in a nested 28090 function context, explicitly return END and set start state to 28091 NESTED_FUNCTION_END. 28092 (.): Accept EOF here too. 28093 28094 * variables.cc (link_to_builtin_or_function): Maybe prepend parent 28095 function name symbol name. 28096 28097 * parse.y (parent_function_name): New variable. 28098 (fcn_name): New non-terminal. 28099 (function2): Use it. 28100 (parsed_fcn_name): Fold into fcn_name. 28101 (function_end): Don't call check_for_garbage_after_fcn_def. 28102 Set lexer_flags.parsing_nested_function on EOF. 28103 * parse.h: Provide decl for parent_function_name. 28104 28105 * ov-usr-fcn.h (octave_user_function::mark_as_nested_function, 28106 (octave_user_funciton::is_nested_function): New functions. 28107 (octave_user_function::nested_function): New data member. 28108 (octave_user_function::do_multi_index_op): Maybe protect and set 28109 curr_parent_function pointer. 28110 * parse.y (frob_function): Maybe mark as nested function. 28111 28112 * toplev.cc (curr_parent_function): New global variable. 28113 * toplev.h: Provide decl. 28114 28115 * lex.l (check_for_garbage_after_fcn_def): Delete. 28116 * lex.h: Delete decl. 28117 28118 * lex.l (prep_for_nested_function): New function. 28119 (<NESTED_FUNCTION_START>): Use it here. 28120 (is_keyword): And here. 28121 (lookup_identifier): Maybe prepend parent function name. 28122 28123 * variables.cc (initialize_symbol_tables): Give names to the three 28124 main symbol tables. 28125 * symtab.cc (symbol_table::lookup, symbol_table::rename): Print 28126 debugging info if Vdebug_symtab_lookups is nonzero. 28127 (debug_symtab_lookups): New function. 28128 (Vdebug_symtab_lookups): New static variable. 28129 (symbols_of_symtab): DEFVAR it. 28130 * symtab.h (symbol_table::table_name): New member variable. 28131 (symtab_count): New static member variable. 28132 (symbol_table::symbol_table): Handle table name. 28133 281342002-12-24 John W. Eaton <jwe@bevo.che.wisc.edu> 28135 28136 * parse.y (frob_function): Don't give nested functions the same 28137 name as the function file. 28138 28139 * lex.h (lexical_feedback::parsing_nested_function): New data member. 28140 * lex.l (lexical_feedback::init): Initialize it to false. 28141 (<NESTED_FUNCTION_START>): Set lexer_flags.parsing_nested_function 28142 to true. 28143 28144 * parse.y (symtab_context): Now a stack. Change all uses. 28145 28146 * lex.l (NESTED_FUNCTION_START): New start state to handle 28147 "function" keyword in a nested function context. 28148 (prep_for_function): New function. 28149 (is_keyword): Allow functions to be nested in function files. 28150 28151 * lex.l (is_keyword): Maybe ignore END tokens. 28152 Increment and decrement end_tokens_expected as appropriate. 28153 (handle_identifier): If is_keyword returns -1, return immediately. 28154 ({IDENT}{S}*): Do nothing if handle_identifier returns -1. 28155 28156 * parse.y (end_tokens_expected): New variable. 28157 (parse_fcn_file): Protect and set it. 28158 28159 * parse.y (begin_obj_idx): Increment 28160 lexer_flags.looking_at_object_index. 28161 (postfix_expr): Decrement it as appropriate here. 28162 28163 * lex.h (lexical_feedback::looking_at_object_index): Now int. 28164 28165 * parse.y (postfix_expr): Reset lexer_flags.looking_at_object_index 28166 in () and {} cases too. 28167 281682002-12-21 John W. Eaton <jwe@bevo.che.wisc.edu> 28169 28170 * pt-arg-list.cc (indexed_object, indexed_position): 28171 New file-scope static variables. 28172 (tree_argument_list::convert_to_const_vector): New arg, object. 28173 Protect and set indexed_object and indexed_position. 28174 (F__end__): New function. 28175 28176 * octave-lvalue.h (octave_lvalue::object): New member function. 28177 * pt-idx.cc (make_value_list): New arg, object. Change all 28178 callers. Pass object to convert_to_const_vector. 28179 28180 * lex.h (lexical_feedback.looking_at_object_index): New data member. 28181 * lex.l (lexical_feedback::init): Initialize it. 28182 (is_keyword): If looking at object index, end is not a keyword. 28183 (handle_identifier): If end is not a keyword, transform it to __end__. 28184 * parse.y (begin_obj_idx): New non-terminal. 28185 (postfix_expr): Use it. 28186 28187 * defun.cc (install_builtin_function): New arg, can_hide_function. 28188 * defun-int.h: Fix decl. 28189 (DEFCONSTFUN_INTERNAL): New macro. 28190 * defun.h (DEFCONSTFUN): New macro. 28191 * mkbuiltins (XDEFCONSTFUN_INTERNAL): New macro. 28192 * mkgendoc: Likewise. 28193 * Makefile.in (DEFUN_PATTERN): Make it work for DEFCONSTFUN too. 28194 * symtab.h (symbol_record::can_hide_function): New data member. 28195 (symbol_record::symbol_record): Initialize it. 28196 * symtab.cc (symbol_record::variable_reference): Also check 28197 can_hide_function flag. 28198 281992002-12-20 John W. Eaton <jwe@bevo.che.wisc.edu> 28200 28201 * DLD-FUNCTIONS/time.cc (extract_tm): Use int_value() instead of 28202 casting double_value() to int. 28203 28204 * ov.cc (octave_value::next_subsref): Arg "skip" is now size_t. 28205 28206 * oct-obj.h (octave_value_list::octave_value_list (double), 28207 octave_value_list::octave_value_list (const Matrix&), 28208 octave_value_list::octave_value_list (const DiagMatrix&), 28209 octave_value_list::octave_value_list (const RowVector&), 28210 octave_value_list::octave_value_list (const ColumnVector&), 28211 octave_value_list::octave_value_list (const Complex&), 28212 octave_value_list::octave_value_list (const ComplexMatrix&), 28213 octave_value_list::octave_value_list (const ComplexDiagMatrix&), 28214 octave_value_list::octave_value_list (const ComplexRowVector&), 28215 octave_value_list::octave_value_list (const ComplexColumnVector&), 28216 octave_value_list::octave_value_list (const char *), 28217 octave_value_list::octave_value_list (const std::string&), 28218 octave_value_list::octave_value_list (const string_vector&), 28219 octave_value_list::octave_value_list (double, double, double), 28220 octave_value_list::octave_value_list (const Range&): Delete. 28221 Adjust uses of octave_value/octave_value_list to handle this change. 28222 28223 * ov.cc (octave_value::octave_value (int)): New constructor. 28224 * ov.h: Provide decl. 28225 In files that construct integer-valued octave_value objects, use 28226 ints instead of casing to double. 28227 282282002-12-19 John W. Eaton <jwe@bevo.che.wisc.edu> 28229 28230 * load-save.cc (read_mat_ascii_data): Allow commas to separate values. 28231 Try harder to convert filenames to valid identifiers in a 28232 Matlab-compatible way. 28233 282342002-12-18 John W. Eaton <jwe@bevo.che.wisc.edu> 28235 28236 * Makefile.in: No need to add $(LIBKPATHSEA) to LINK_DEPS, since 28237 it is not included in liboctave. 28238 282392002-12-18 JD Cole <jdcole@san.rr.com> 28240 28241 * pt-check.cc (tree_checker::visit_subplot_axes, 28242 tree_checker::visit_do_until_command): New functions. 28243 * pt-check.h: Provide decl. 28244 282452002-12-17 John W. Eaton <jwe@bevo.che.wisc.edu> 28246 28247 * variables.cc (Fclear): Fix off-by-one error. 28248 28249 * oct-stream.cc (octave_base_stream::do_gets): Correctly read 28250 last line of file even if it does not end with new line 28251 character. 28252 28253 * pt-select.cc (equal): Don't look up == op, just try it and see 28254 whether it works. 28255 28256 * oct-stream.cc (printf_format_list::printf_format_list): 28257 Handle empty format string. 28258 282592002-12-06 John W. Eaton <jwe@bevo.che.wisc.edu> 28260 28261 * pt-mat.cc (class tm_row_const::tm_row_const_rep): Derive from 28262 octave_base_list instead of SLList. Fix tm_row_const member 28263 functions as needed, change all uses. 28264 (class tm_const): Derive from octave_base_list, not SLList. Fix 28265 member functions as needed, change all uses. 28266 * pt-mat.h (class tree_matrix): Derive from octave_base_list 28267 instead of including SLList object as data member. Fix member 28268 functions as needed, change all uses. 28269 28270 * pt-idx.h (tree_index_expression::args, 28271 tree_index_expression::arg_nm, tree_index_expression::dyn_field): 28272 Now std::list, not SLList. Fix member functions as needed, change 28273 all uses. 28274 28275 * oct-map.h (Octave_map::map): Now std::map instead of CHMap. 28276 Fix member functions as needed, change all uses. 28277 28278 * oct-lvalue.h (octave_lvalue::idx): Now std::list instead of 28279 SLList object. Fix member functions as needed, change all uses. 28280 28281 * dynamic-ld.cc (octave_shlib_list::lib_list): Now std::list 28282 instead of DLList object. Fix member functions as needed, change 28283 all uses. 28284 28285 * ov.h (octave_value::subsref, octave_value::subsasgn): 28286 Index arg is not std::list, not SLList. Change all derived 28287 classes, all uses. 28288 28289 * pt-stmt.h (tree_statement_list): Derive from base_octave_list 28290 object instead of including SLList object as data member. Fix 28291 member functions as needed, change all uses. 28292 * pt-select.h (tree_switch_case_list): Likewise. 28293 (tree_if_command_list): Likewise. 28294 * pt-misc.h (tree_parameter_list, tree_return_list, 28295 tree_va_return_list): Likewise. 28296 * pt-plot.h (subplot_list): Likewise. 28297 * pt-mat.h (tree_matrix): Likewise. 28298 * pt-decl.h (tree_decl_init_list): Likewise. 28299 * pt-arg-list.h (tree_argument_list): Likewise. 28300 * comment-list.h (octave_comment_list): Likewise. 28301 28302 * BaseSLList.cc, DLList.cc, Map.cc, SLList.cc, SLStack.cc, 28303 Stack.cc: Delete. 28304 * Makefile.in (DIST_SRC): Delete them from the list. 28305 28306 * BaseSLList.h, DLList.h, Map.h, Pix.h, SLList.h, SLStack.h, 28307 Stack.h: Delete 28308 * Makefile.in (INCLUDES): Delete them from the list. 28309 28310 * Map-oct-obj.cc, SLList-expr.cc, SLList-misc.cc, SLList-plot.cc, 28311 SLList-tc.cc, SLList-tm.cc: Delete. 28312 * Makefile.in (TI_XSRC): Delete them from the list. 28313 28314 * ov-base-mat.cc (octave_base_matrix::assign): Pass 28315 MT::resize_fill_value () as third arg for ::assign. 28316 28317 * Cell.h (Cell::resize_fill_value): Use empty Matrix object, not 28318 undefined octave_value object. 28319 (Cell::Cell (int, int, const octave_value&)): Use 28320 resize_fill_value () as default value, not undefined octave_value 28321 object. 28322 283232002-12-05 John W. Eaton <jwe@bevo.che.wisc.edu> 28324 28325 * Makefile.in (DEFUN_PATTERN): Make it work for DEFCMD too. 28326 28327 * base-list.h: New file. 28328 283292002-12-04 John W. Eaton <jwe@bevo.che.wisc.edu> 28330 28331 * toplev.cc (octave_interpreter_ready): New global variable. 28332 * toplev.h: Provide decl. 28333 28334 * octave.cc (octave_main): Call execute_default_pkg_add_files just 28335 before executing startup files. Set octave_interpreter_ready to 28336 true before calling execute_default_pkg_add_files. 28337 28338 * defaults.cc (maybe_add_or_del_packages, default_load_path, 28339 update_load_path_dir_path): New static functions. 28340 (set_default_path, loadpath): Call update_load_path_dir_path. 28341 (symbols_of_defaults): Use DEFVAR, not DEFCONST for DEFAULT_LOADPATH. 28342 (execute_default_pkg_add_files): New function. 28343 * defaults.h.in: Provide decl. 28344 28345 * utils.cc (search_path_for_all_files): New function. 28346 (Ffile_in_loadpath, Ffile_in_path): Allow search to return all 28347 files in the path. 28348 28349 * Cell.cc (Cell (const string_vector&)): New constructor. 28350 28351 * oct-obj.cc (octave_value_list::assign): Allow optional fill 28352 value for resizing. 28353 * oct-map.cc (Octave_map::assign): Pass fill_value in initial 28354 assignment too. 28355 283562002-12-03 John W. Eaton <jwe@bevo.che.wisc.edu> 28357 28358 * TEMPLATE-INST/Map-tc.cc, TEMPLATE-INST/Map-fnc.cc: Delete. 28359 * Makefile.in (TI_XSRC): Delete them from the list. 28360 28361 * fn-cache.h (octave_fcn_file_name_cache::cache): Now std::map, 28362 not CHMap. 28363 28364 * TEMPLATE-INST/SLStack-i.cc, TEMPLATE-INST/SLStack-ovl.cc, 28365 TEMPLATE-INST/SLStack-pc.cc, TEMPLATE-INST/SLStack-str.cc, 28366 TEMPLATE-INST/SLStack-sym.cc, TEMPLATE-INST/SLStack-tok.cc, 28367 TEMPLATE-INST/SLStack-ue.cc, TEMPLATE-INST/SLStack-ui.cc: 28368 Delete unnecessary files. 28369 * Makefile.in (TI_XSRC): Delete them from the list. 28370 28371 * toplev.cc (octave_atexit_functions): Now std::stack, not SLStack. 28372 * pt-plot.cc (tmp_files): Likewise. 28373 * lex.l (token_stack): Likewise. 28374 (class bracket_brace_paren_nesting_level): Make context a data 28375 member instead of deriving from SLStack object. 28376 Use std::stack instead of SLStack. 28377 * ov-usr-fcn.h (octave_user_function::saved_args): Likewise. 28378 * symtab.h (symbol_record::context): Likewise. 28379 (symbol_record::global_link_context): Likewise. 28380 28381 * unwind-prot.h (unwind_protect::elt_list): Rename from list. 28382 Now std::stack, not SLStack. 28383 28384 * pt-stmt.h (tree_statement_list): Make list member data instead 28385 of deriving from SLList object. 28386 * pt-select.h (tree_switch_case_list): Likewise. 28387 (tree_if_command_list): Likewise. 28388 * pt-plot.h (subplot_list): Likewise. 28389 * pt-mat.h (tree_matrix): Likewise. 28390 * pt-decl.h (tree_decl_init_list): Likewise. 28391 * pt-arg-list.h (tree_argument_list): Likewise. 28392 * comment-list.h (octave_comment_list): Likewise. 28393 28394 * defun.h (DEFCMD): Rename from DEFUN_TEXT. Provide DEFUN_TEXT as 28395 an alias for DEFCMD. Change all uses. 28396 28397 * variables.cc (at_top_level): New function. 28398 (do_who, Fmark_as_command, Funmark_command): Use it. 28399 28400 * lex.l (COMMAND_START): Rename from TEXT_FCN. Change all uses. 28401 (MATRIX_START): Rename from MATRIX. Change all uses. 28402 * variables.cc (command_function_set): Rename from 28403 text_function_set. 28404 (mark_as_command): Rename from mark_as_text_function. 28405 (is_marked_as_command): Rename from is_marked_as_text_function. 28406 (Fmark_as_command): Rename from Fmark_as_text_function. 28407 (Funmark_command): Rename from Funmark_text_function. 28408 (is_command_name): Rename from is_text_function_name. 28409 * symtab.h (symbol_record::COMMAND): Rename from TEXT_FUNCTION. 28410 (symbol_record::mark_as_command): Rename from mark_as_text_function. 28411 (symbol_record::unmark_command): Rename from 28412 symbol_record::unmark_text_function. 28413 (symbol_record::is_command): Rename from 28414 symbol_record::is_text_function. 28415 (symbol_record::symbol_def::mark_as_command): Rename from 28416 symbol_record::symbol_def::mark_as_text_function. 28417 (symbol_record::symbol_def::unmark_command): Rename from 28418 symbol_record::symbol_def::unmark_text_function. 28419 (symbol_record::symbol_def::is_command): Rename from 28420 symbol_record::symbol_def::is_text_function. 28421 28422 * pt-jump.h, pt-jump.cc: Undo previous changes. 28423 * parse.y: Undo previous changes for brea, continue, and return. 28424 284252002-11-25 John W. Eaton <jwe@bevo.che.wisc.edu> 28426 28427 * pt-stmt.cc (tree_statement::eval): Allow the lookup to execute 28428 script files. If script file has been executed, don't bother to 28429 call expr->rvalue (). 28430 284312002-11-22 John W. Eaton <jwe@bevo.che.wisc.edu> 28432 28433 * Makefile.in (OCTINTERP_LINK_DEPS): Include $(FLIBS) in 28434 OCTINTERP_LINK_DEPS. 28435 28436 * variables.cc (text_function_set): New static data. 28437 (mark_as_text_function, unmark_text_function, 28438 is_marked_as_text_function, Fmark_as_text_function, 28439 Funmark_text_function): New functions. 28440 (is_text_function_name): Handle functions marked as text functions 28441 in special list, not just those marked in the symbol record. 28442 * symtab.h (symbol_record::mark_as_text_function, 28443 symbol_record::unmark_text_function, 28444 symbol_record::symbol_def::mark_as_text_function, 28445 symbol_record::symbol_def::unmark_text_function): New functions. 28446 28447 * oct-map.h (Octave_map::rows, Octave_map::columns): New functions. 28448 * ov-struct.h (octave_struct::rows, octave_struct::columns, 28449 octave_struct::length): New functions. 28450 284512002-11-21 John W. Eaton <jwe@bevo.che.wisc.edu> 28452 28453 * oct-conf.h.in (OCTAVE_CONF_MKOCTFILE_SH_LDFLAGS): New macro. 28454 * toplev.cc (octave_config_info): Add it to the struct. 28455 28456 * lex.l (<TEXT_FCN>): If yytext begins with # or %, don't 28457 recognize it as a string. 28458 28459 * oct-map.h (Octave_map::operator[]): New const version. 28460 * oct-map.cc (equiv_keys): New function. 28461 (assign (const idx_vector&, const Octave_map&)): New function. 28462 * ov-struct.cc (octave_struct::subsasgn): Use it. 28463 284642002-11-20 John W. Eaton <jwe@bevo.che.wisc.edu> 28465 28466 * version.h (OCTAVE_VERSION): Now 2.1.40. 28467 28468 * p-b-b.cc, op-bm-bm.cc, op-chm.cc, op-cm-cm.cc, op-cm-cs.cc, 28469 op-cm-m.cc, op-cm-s.cc, op-cs-cm.cc, op-cs-cs.cc, op-cs-m.cc, 28470 op-cs-s.cc, op-fil-b.cc, op-fil-bm.cc, op-fil-cm.cc, op-fil-cs.cc, 28471 op-fil-lis.cc, op-fil-m.cc, op-fil-rec.cc, op-fil-s.cc, 28472 op-fil-str.cc, op-list.cc, op-m-cm.cc, op-m-cs.cc, op-m-m.cc, 28473 op-m-s.cc, op-range.cc, op-s-cm.cc, op-s-cs.cc, op-s-m.cc, 28474 op-s-s.cc, op-str-str.cc, op-bm-b.cc, op-cell.cc, BaseSLList.cc, 28475 BaseSLList.h, ChangeLog, Map.cc, Map.h, SLList.cc, SLList.h, 28476 SLStack.cc, SLStack.h, Stack.cc, Stack.h, oct-map.cc, oct-map.h, 28477 oct-obj.cc, oct-obj.h, c-file-ptr-stream.cc, c-file-ptr-stream.h, 28478 ov-base-mat.cc, ov-base-scalar.cc, ov-base-scalar.h, ov-base.cc, 28479 ov-base.h, ov-bool-mat.cc, ov-bool-mat.h, ov-bool.cc, ov-bool.h, 28480 ov-builtin.cc, ov-builtin.h, ov-ch-mat.cc, ov-ch-mat.h, 28481 ov-colon.cc, ov-complex.cc, ov-complex.h, ov.h, ov-cx-mat.cc, 28482 ov-cx-mat.h, ov-fcn.cc, ov-fcn.h, ov-file.cc, ov-file.h, 28483 ov-list.cc, ov-list.h, ov-mapper.cc, ov-mapper.h, ov-range.cc, 28484 ov-range.h, ov-re-mat.cc, ov-re-mat.h, ov-scalar.cc, ov-scalar.h, 28485 ov-str-mat.cc, ov-str-mat.h, ov-struct.cc, ov-struct.h, 28486 ov-typeinfo.cc, ov-typeinfo.h, ov-usr-fcn.cc, ov-usr-fcn.h, 28487 ov-va-args.cc, ov.cc, ov-base-mat.h, procstream.cc, procstream.h, 28488 pt-arg-list.cc, pt-arg-list.h, pt-binop.cc, pt-binop.h, 28489 pt-check.cc, pt-check.h, pt-cmd.cc, pt-cmd.h, pt-colon.cc, 28490 pt-colon.h, pt-const.cc, pt-const.h, pt-decl.cc, pt-decl.h, 28491 pt-except.cc, pt-except.h, pt-exp.cc, pt-exp.h, pt-id.cc, pt-id.h, 28492 pt-idx.cc, pt-idx.h, pt-jump.cc, pt-jump.h, pt-loop.cc, pt-loop.h, 28493 pt-mat.cc, pt-mat.h, pt-misc.cc, pt-misc.h, pt-pr-code.cc, 28494 pt-pr-code.h, pt-select.cc, pt-select.h, pt-stmt.cc, pt-stmt.h, 28495 pt-unop.cc, pt-unop.h, pt.cc, pt.h, symtab.h, token.cc, token.h, 28496 unwind-prot.cc, unwind-prot.h, ov-base-nd-array.cc, 28497 ov-re-nd-array.h, ov-re-nd-array.cc, ov-base-nd-array.h, 28498 comment-list.h, comment-list.cc, DLList.cc, DLList.h, 28499 ov-dld-fcn.h, ov-dld-fcn.cc, Cell.cc, Cell.h, pt-cell.h, 28500 pt-cell.cc, ov-cell.h, ov-cell.cc, pt-plot.cc, pt-plot.h, 28501 pt-assign.cc, pt-assign.h, pt-bp.cc, pt-bp.h, symtab.cc, 28502 ov-cs-list.h, ov-cs-list.cc: 28503 Use "defined (USE_PRAGMA_INTERFACE_IMPLEMENTATION)" instead of 28504 "! defined (NO_PRAGMA_INTERFACE_IMPLEMENTATION)". 28505 285062002-11-19 John W. Eaton <jwe@bevo.che.wisc.edu> 28507 28508 * oct-obj.h (octave_value_list::~octave_value_list): New function. 28509 285102002-11-19 John W. Eaton <jwe@bevo.che.wisc.edu> 28511 28512 * DLD-FUNCTIONS/odessa.cc (odessa_user_j): Put T in args(1), not 28513 args(0). 28514 285152002-11-18 John W. Eaton <jwe@bevo.che.wisc.edu> 28516 28517 * parse.y (symtab_context): Now extern. 28518 * parse.h: Provide decl. 28519 * lex.l (reset_parser): Set it to 0. 28520 285212002-11-15 John W. Eaton <jwe@bevo.che.wisc.edu> 28522 28523 * pt-bp.cc (octave_debug_on_interrupt_state): New global variable. 28524 * pt-bp.h: Provide decl. 28525 (MAYBE_DO_BREAKPOINT): Check it. 28526 28527 * sighandlers.cc (sigint_handler): Handle debug_on_interrupt. 28528 (Vdebug_on_interrupt): New static variable. 28529 (symbols_of_sighandlers): New function. DEFVAR Vdebug_on_interrupt. 28530 (debug_on_interrupt): New function. 28531 28532 * lex.h (YY_FATAL_ERROR): Use OCTAVE_QUIT here. 28533 28534 * utils.cc (toplevel): Delete variable. 28535 28536 * sighandlers.cc (OCTAVE_MEMORY_EXHAUSTED_ERROR): Delete. 28537 285382002-11-14 John W. Eaton <jwe@bevo.che.wisc.edu> 28539 28540 * sighandlers.cc (octave_new_handler): Delete. 28541 (install_signal_handlers): Don't call set_new_handler. 28542 * toplev.cc (main_loop): Handle bad_alloc exception here. 28543 28544 * sighandlers.cc (octave_new_handler): Allow return after 28545 OCTAVE_JUMP_TO_TOP_LEVEL. 28546 (sigfpe_handler): Likewise. 28547 285482002-11-13 John W. Eaton <jwe@bevo.che.wisc.edu> 28549 28550 * variables.cc (is_variable): New static function. 28551 (generate_struct_completions): Only evaluate objects that look 28552 like variables. 28553 285542002-11-12 John W. Eaton <jwe@bevo.che.wisc.edu> 28555 28556 * pt-jump.h, pt-jump.cc (tree_break_expression, 28557 tree_continue_expression, tree_return_expression): Rename from 28558 tree_break_command, tree_continue_command, tree_return_command. 28559 Implement as expressions that return TRUE instead of commands. 28560 Change all uses. 28561 * parse.y (make_break_expression, make_continue_expression, 28562 make_return_expression): Rename from make_break_command, 28563 make_continue_command, make_return_command. Change all uses. 28564 (jump_expr): Rename from jump_command, type is now expression. 28565 Use in simple_expr, not command. 28566 28567 * toplev.cc (octave_initialized): New global variable. 28568 (main_loop): Set it to true here. 28569 * sighandlers.cc (sigint_handler): Exit immediately if we have not 28570 finished init process. 28571 28572 * load-save.cc (extract_keyword): Return std::string, not char *. 28573 Change all uses. 28574 (read_ascii_data): Likewise. 28575 (read_binary_data): Likewise. 28576 (read_hdf5_data): Likewise. 28577 (read_mat_ascii_data): Likewise. 28578 (read_mat_binary_data): Likewise. 28579 (do_load): Name and doc are now std::string objects, not char *. 28580 (install_loaded_variable): Likewise. 28581 (read_hdf5_data): Doc is now std::string object, not char *&. 28582 (read_mat_ascii_data): Call OCTAVE_QUIT in strategic locations. 28583 (get_lines_and_columns): Likewise. 28584 28585 * toplev.cc (main_loop): Call OCTAVE_QUIT after executing command. 28586 * parse.y (parse_and_execute (FILE *)): Likewise. 28587 285882002-11-12 Joseph P. Skudlarek <jskud@jskud.com> 28589 28590 * input.cc (match_sans_spaces_semi): Rename from match_sans_spaces. 28591 Ignore trailing semicolons too. Change all callers. 28592 285932002-11-11 John W. Eaton <jwe@bevo.che.wisc.edu> 28594 28595 * octave.gperf: Allow "persistent" as a synonym for static. 28596 28597 * defun-int.h (DEFUN_MAPPER_INTERNAL): Don't forget doc string 28598 when creating octave_mapper object. 28599 28600 * sysdep.cc (BSD_init): Avoid failure if FP_X_DNML is not defined. 28601 286022002-11-08 John W. Eaton <jwe@bevo.che.wisc.edu> 28603 28604 * cutils.c: Be sure to always return buf. 28605 28606 Undo previous vnprintf changes. The portable snprintf I found 28607 does not handle floating point conversions... 28608 286092002-11-07 John W. Eaton <jwe@bevo.che.wisc.edu> 28610 28611 * Makefile.in (liboctinterp.$(LIBEXT)): Include $(XERBLA) here. 28612 (octave.$(EXEEXT)): Not here. 28613 (liboctinterp.$(SHLEXT)): Include $(PIC_XERBLA) here. 28614 28615 * main.c: Move decl for xerbla here from octave.cc. 28616 28617 * cutils.c (octave_vsnprintf): Use portable_snprintf to avoid 28618 having to cope with all kinds of buggy implementations. 28619 28620 * snprintf.c: New file. 28621 * Makefile.in (DISTFILES): Add it to the list. 28622 28623 * oct-snprintf.h: New file. 28624 * Makefile.in (INCLUDES): Add it to the list. 28625 28626 * oct-snprintf.c: New file. 28627 * Makefile.in (DIST_SRC): Add it to the list. 28628 28629 * toplev.cc (main_loop): Use SET_OCTAVE_INTERRUPT_IMMEDIATELY 28630 instead of assigning octave_interrupt_immediately. 28631 286322002-11-06 John W. Eaton <jwe@bevo.che.wisc.edu> 28633 28634 * utils.cc (jump_to_top_level): Delete. 28635 28636 * toplev.cc (toplevel): Delete. 28637 (main_loop): Adapt to new signal/exception handling scheme. 28638 28639 * sighandlers.cc (octave_signal_mask, octave_save_signal_mask, 28640 octave_restore_signal_mask): Move to libcruft/misc/quit.cc. 28641 (sigint_handler) [USE_EXCEPTIONS_FOR_INTERRUPTS]: set 28642 octave_interrupt_state. Only jump if octave_interrupt_immediately 28643 is true, and then only to enclosing context. 28644 28645 * lex.h (YY_FATAL_ERROR): Use OCTAVE_JUMP_TO_TOP_LEVEL, not 28646 jump_to_top_level. 28647 * sighandlers.cc (octave_new_handler, sigfpe_handler, endif, 28648 sigpipe_handler): Likewise. 28649 28650 * input.cc (gnu_readline): Surround call to 28651 command_editor::readline with 28652 BEGIN_INTERRUPT_IMMEDIATELY_IN_FOREIGN_CODE and 28653 END_INTERRUPT_IMMEDIATELY_IN_FOREIGN_CODE. 28654 28655 * data.cc, oct-stream.cc, ov-cell.cc, ov-mapper.cc, ov-re-mat.cc, 28656 ov.cc, pr-output.cc, pt-loop.cc, pt-stmt.cc, xdiv.cc, xpow.cc, 28657 DLD-FUNCTIONS/balance.cc, DLD-FUNCTIONS/besselj.cc, 28658 DLD-FUNCTIONS/filter.cc, DLD-FUNCTIONS/find.cc, 28659 DLD-FUNCTIONS/kron.cc, DLD-FUNCTIONS/log.cc, 28660 DLD-FUNCTIONS/minmax.cc, DLD-FUNCTIONS/qz.cc, 28661 DLD-FUNCTIONS/rand.cc, DLD-FUNCTIONS/sort.cc: Sprinkle with 28662 OCTAVE_QUIT. 28663 28664 * DLD-FUNCTIONS/odessa.cc (Fodessa): Correctly extract bsub from 28665 function arg. 28666 286672002-11-04 John W. Eaton <jwe@bevo.che.wisc.edu> 28668 28669 * cutils.c (octave_vsnprintf): Handle C99 snprintf semantics. 28670 28671 * oct-obj.h (octave_value_list::operator =): Copy names too. 28672 (octave_value_list::octave_value_list (const octave_value_list&)): 28673 Likewise. 28674 286752002-11-01 John W. Eaton <jwe@bevo.che.wisc.edu> 28676 28677 * version.h (OCTAVE_VERSION): Now 2.1.39. 28678 28679 * variables.cc (generate_struct_completions): Temporarily reset 28680 discard_error_messages and error_state 28681 (looks_like_struct): Temporarily reset Vwarning option, 28682 error_state, and discard_error_messages. 28683 28684 * pt-idx.cc (tree_index_expression::eval_error): Now const. 28685 (tree_index_expression::get_struct_index): Require valid identifier. 28686 (tree_index_expression::make_arg_struct, 28687 tree_index_expression::rvalue, tree_index_expression::lvalue): 28688 Handle possible error from get_struct_index. 28689 28690 * utils.cc (valid_identifier): Move here from load-save.cc. 28691 * utils.h: Provide decl. 28692 28693 * input.cc (generate_possible_completions): Call 28694 command_editor::filename_completion_desired here. 28695 (generate_possible_completions): Don't generate struct completions 28696 if text contains directory separator or "..". 28697 286982002-10-31 John W. Eaton <jwe@bevo.che.wisc.edu> 28699 28700 * DLD-FUNCTIONS/odessa.cc (odessa_user_f, odessa_user_j, 28701 odessa_user_b): Reorder args for consistency with other solvers. 28702 (Fodessa): Use extract_function to set args. 28703 (odessa_user_j): Rename from odessa_user_mf. 28704 28705 * DLD-FUNCTIONS/fsolve.cc (fsolve_user_function, fsolve_user_jacobian): 28706 Print warning if user returns complex value. 28707 * DLD-FUNCTIONS/quad.cc (quad_user_function): Likewise. 28708 * DLD-FUNCTIONS/lsode.cc (lsode_user_function, lsode_user_jacobian): 28709 Likewise. 28710 * DLD-FUNCTIONS/dassl.cc (dassl_user_function, dassl_user_jacobian): 28711 Likewise. 28712 * DLD-FUNCTIONS/dasrt.cc (dasrt_user_f, dasrt_user_cf, dasrt_user_j): 28713 Likewise. 28714 * DLD-FUNCTIONS/daspk.cc (daspk_user_function, daspk_user_jacobian): 28715 Likewise. 28716 28717 * DLD-FUNCTIONS/daspk.cc (daspk_user_jacobian): New function. 28718 (Fdaspk): Handle extracting Jacobian from function argument. 28719 28720 * DLD-FUNCTIONS/fsolve.cc (fsolve_user_function): New function. 28721 (Ffsolve): Handle extracting Jacobian from function argument. 28722 28723 * Makefile.in (%.oct): Depend on octave$(EXEEXT) so that octave 28724 will be built before any .oct files. 28725 (all): Depend on stamp-oct-links. 28726 (octave$(EXEEXT)): Don't depend on stamp-oct-links. 28727 28728 * ov-base.cc (octave_base_value::subsasgn): Handle default numeric 28729 case here. 28730 * ov-base-mat.cc (octave_base_matrix<MT>::subsasgn): Delete. 28731 287322002-10-30 John W. Eaton <jwe@bevo.che.wisc.edu> 28733 28734 * Makefile.in (OCT_LINK_DEPS): Add $(BLAS_LIBS), $(FFTW_LIBS), and 28735 $(FLIBS). 28736 287372002-10-29 John W. Eaton <jwe@bevo.che.wisc.edu> 28738 28739 * version.h (OCTAVE_VERSION): Now 2.1.38. 28740 28741 * utils.cc (octave_vformat): Get return value from 28742 streambuf::vform. 28743 28744 * DLD-FUNCTIONS/fsolve.cc (Ffsolve): Always return solution. 28745 Don't barf on nargout == 3. 28746 28747 * pt-idx.h (tree_index_expression::dyn_field): New data member. 28748 * pt-idx.cc (tree_index_expression::tree_index_expression 28749 (tree_expression*, tree_expression*, int, int)): New constructor. 28750 (tree_index_expression::append (tree_expression*)): New function. 28751 (tree_index_expression::get_struct_index): New function. 28752 (tree_index_expression::make_arg_struct): Handle dynamic fields. 28753 (tree_index_expression::rvalue): Likewise. 28754 (tree_index_expression::lvalue): Likewise. 28755 28756 * parse.y (make_indirect_ref (tree_expression*, tree_expression*)): 28757 New function. 28758 (indirect_ref_op): New non-terminal. 28759 (postfix_expr): Use it. 28760 Recognize dynamic struct field references. 28761 (parsing_indir): Delete unused non-terminal. 28762 28763 * lex.l ("("): Set lexer_flags.looking_at_indirect_ref to false here. 28764 28765 * pt-idx.cc (tree_index_expression::name): Simplify. 28766 287672002-10-28 John W. Eaton <jwe@bevo.che.wisc.edu> 28768 28769 * oct-conf.h.in (OCTAVE_CONF_HAVE_DLOPEN_API, 28770 OCTAVE_CONF_HAVE_LOADLIBRARY_API, OCTAVE_CONF_HAVE_SHL_LOAD_API): 28771 Delete. 28772 * toplev.cc (octave_config_info): Delete them from the struct 28773 28774 * load-save.cc (read_ascii_data): Use octave_read_double and 28775 octave_read_complex so that we handle Inf, NaN, and NA. 28776 (read_mat_ascii_data): Likewise. 28777 (save_ascii_data): Use octave_write_double andoctave_write_complex. 28778 287792002-10-25 John W. Eaton <jwe@bevo.che.wisc.edu> 28780 28781 * toplev.cc (octave_config_info): Rename WITH_DYNAMIC_LINKING to 28782 ENABLE_DYNAMIC_LINKING. 28783 * oct-conf.h.in: Likewise. 28784 * mkbuiltins: Likewise. 28785 * fn-cache.cc (file_name_cache_elt::update): Likewise. 28786 * Makefile.in: Likewise. 28787 287882002-10-24 John W. Eaton <jwe@bevo.che.wisc.edu> 28789 28790 * cutils.c (octave_vsnprintf): Buffer and buffer size now static. 28791 * utils.cc (octave_vformat): Don't free buffer returned from 28792 octave_vsnprintf here. 28793 28794 * ov-usr-fcn.cc (va_arg, va_start, vr_val): Only print warning 28795 once per session. 28796 28797 * ov-mapper.cc (octave_mapper::apply): Don't try real_type case if 28798 arg is a string and we have a ch_map_fcn. 28799 28800 * Makefile.in: Add $(LIBKPATHSEA) to $(OCTAVE_LIBS) if 28801 $(INCLUDE_LINK_DEPS) is false, not if $(SHARED_LIBS) is false. 28802 288032002-10-23 John W. Eaton <jwe@bevo.che.wisc.edu> 28804 28805 * DLD-FUNCTIONS/daspk.cc (daspk): Use set_options, not copy. 28806 * DLD-FUNCTIONS/dasrt.cc (dasrt): Likewise. 28807 * DLD-FUNCTIONS/dassl.cc (dassl): Likewise. 28808 * DLD-FUNCTIONS/fsolve.cc (fsolve): Likewise. 28809 * DLD-FUNCTIONS/lsode.cc (lsode): Likewise. 28810 * DLD-FUNCTIONS/odessa.cc (Fodessa): Likewise. 28811 * DLD-FUNCTIONS/quad.cc (Fquad): Likewise. 28812 288132002-10-22 John W. Eaton <jwe@bevo.che.wisc.edu> 28814 28815 * oct-map.cc (Octave_map::assign): Fix typo in resizing. 28816 28817 * pt-loop.cc (tree_complex_for_command::eval): Only return list 28818 for val if struct array has more than one element. 28819 (tree_simple_for_command::eval): Likewise. 28820 28821 * ov-struct.cc (octave_struct::print_raw): Don't create 28822 octave_list directly, use octave_value (const octave_value_list&) 28823 constructor instead. 28824 Call print_with_name for tmp, not val(0). 28825 28826 * version.h (OCTAVE_VERSION): Now 2.1.37. 28827 (OCTAVE_CONTRIB_STATEMENT): New macro. 28828 (OCTAVE_STARTUP_MESSAGE): Use it. 28829 288302002-10-17 John W. Eaton <jwe@bevo.che.wisc.edu> 28831 28832 * data.cc (fill_matrix): If nargin is zero, use val, not 0.0. 28833 28834 * main.c: New file. 28835 * octave.h: New file. 28836 * octave.cc (octave_main): Rename from main. 28837 Include octave.h. 28838 * Makefile.in (OBJECTS): Add octave.o, builtins.o, and ops.o to 28839 the list. 28840 (octave): Depend on and link main.o, not octave.o, builtins.o, and 28841 ops.o (they are now in liboctinterp). 28842 (DEP_5): Add main.c here. 28843 28844 * oct-conf.h.in: No need to substitute OCTAVE_CONF_OCTAVE_LITE. 28845 * toplev.cc (octave_config_info): Likewise, don't include it in 28846 struct. 28847 28848 * mkbuiltins: Remove check for OCTAVE_LITE, since it is now 28849 implied by WITH_DYNAMIC_LINKING. 28850 * Makefile.in: Likewise, replace tests for OCTAVE_LITE with tests 28851 for WITH_DYNAMIC_LINKING instead. 28852 28853 * oct-conf.h.in: Use OCTAVE_CONF_HAVE_DLOPEN_API, 28854 OCTAVE_CONF_HAVE_LOADLIBRARY_API, and 28855 OCTAVE_CONF_HAVE_SHL_LOAD_API instead of OCTAVE_CONF_WITH_DL and 28856 OCTAVE_CONF_WITH_SHL. 28857 * toplev.cc (octave_config_info): Likewise. 28858 288592002-10-16 John W. Eaton <jwe@bevo.che.wisc.edu> 28860 28861 * help.cc (display_help_text): Quote output file name for Cygwin. 28862 28863 * Makefile.in (install-lib): Don't bother with versions for 28864 $(SHLBIN) files. 28865 28866 * help.cc (display_help_text): Match zero or more comment 28867 characters instead of one or more. 28868 28869 * Makefile.in (install-oct): Process files from $(DLD_DEF_FILES), 28870 not $(DLD_SRC). Look for them in current directory, not $(srcdir). 28871 288722002-10-15 John W. Eaton <jwe@bevo.che.wisc.edu> 28873 28874 * ov-mapper.cc (octave_mapper::apply): Handle real and complex 28875 types first. If the arg is something else, try ch_map_fcn if it 28876 is defined. 28877 288782002-10-15 Paul Kienzle <pkienzle@users.sf.net> 28879 28880 * Makefile.in: If building shared but not static libs, only set 28881 XERBLA to the location of the pic object file if FPICFLAG is 28882 defined. 28883 288842002-10-14 John W. Eaton <jwe@bevo.che.wisc.edu> 28885 28886 * DLD-FUNCTIONS/minmax.cc, DLD-FUNCTIONS/getrusage.cc, data.cc, 28887 file-io.cc, ov-base.cc, ov-bool-mat.cc, ov-ch-mat.cc, 28888 ov-complex.cc, ov-cx-mat.cc, ov-range.cc, ov-re-mat.cc, 28889 ov-re-nd-array.cc: Change all uses of octave_Inf, octave_NA, and 28890 octave_NaN to be calls to lo_ieee_Inf_value, lo_ieee_NA_value, and 28891 lo_ieee_NaN_value instead of using the constants directly to avoid 28892 linking problem with Cygwin. 28893 28894 * Makefile.in (install): No need to use cd to create links. 28895 288962002-10-14 Paul Kienzle <pkienzle@users.sf.net> 28897 28898 * Makefile.in: Merge liboctave with liboct-readline and 28899 liboct-pathsearch. 28900 Use link dependencies for shared libs if INCLUDE_LINK_DEPS. 28901 (LIBRARIES): If doing shared libs, include versioned library in list. 28902 (liboctinterp.$(SHLEXT), liboctinterp.$(SHLEXT_VER)): Reverse 28903 actions -- build unversioned library, symbolic link adds version 28904 info. 28905 (install, uninstall): Handle link and load forms of the library 28906 separately. 28907 28908 * toplev.cc (octave_config_info): Remove LIBOCT_READLINE and 28909 LIBOCT_PATHSEARCH, add LIBREADLINE. 28910 * oct-conf.h.in: Likewise. 28911 289122002-10-11 John W. Eaton <jwe@bevo.che.wisc.edu> 28913 28914 * lex.l (handle_identifier): Don't enter token in local symbol 28915 table if the following token is a dot and it looks like a binary 28916 operator. 28917 (force_local_variable): If name is not a variable, clear it before 28918 defining. 28919 28920 * oct-procbuf.cc (Vkluge_procbuf_delay): Make default 0 for all 28921 systems. 28922 28923 * octave.cc (execute_startup_files, initialize_pathsearch): 28924 Use file_ops::dir_sep_str instead of OCTAVE_DIR_SEP_STR. 28925 (main): Use file_ops::dir_sep_chars instead of OCTAVE_DIR_SEP_CHARS. 28926 28927 * ov-re-mat.cc (octave_matrix::convert_to_str): Warn for out of 28928 range conversions. For negative values, set to 0. 28929 * ov-scalar.cc (octave_scalar:convert_to_str): Likewise. 28930 28931 * mappers.cc (xabs): New static function. 28932 (install_mapper_functions): Use it for abs for character matrices. 28933 Handle ch_map_flag separately from can_ret_cmplx_for_real in 28934 all uses of DEFUN_MAPPER. 28935 * defun.h (DEFUN_MAPPER): Handle ch_map_flag separately from 28936 can_ret_cmplx_for_real. 28937 * defun-int.h (DEFUN_MAPPER_INTERNAL): Likewise. 28938 * mkbuiltins: Likewise. 28939 * mkgendoc: Likewise. 28940 * ov-mapper.cc (octave_mapper::apply): Use ch_map_flag and 28941 can_ret_cmplx_for_real instead of flag. 28942 * ov-mapper.h (octave_mapper::ch_map_flag): Rename from flag. 28943 (octave_mapper::can_ret_cmplx_for_real): New data member. 28944 (octave_mapper::octave_mapper): Handle it here. 28945 289462002-10-10 John W. Eaton <jwe@bevo.che.wisc.edu> 28947 28948 * octave.cc (execute_startup_files): Don't forget directory 28949 separator for local initfile. 28950 28951 * move-if-change: Delete. 28952 * Makefile.in (DISTFILES): Delete it from the list. 28953 289542002-10-09 John W. Eaton <jwe@bevo.che.wisc.edu> 28955 28956 * Makefile.in: Use $(EXEEXT) and $(BUILD_EXEEXT) as appropriate. 28957 28958 * pt-plot.cc (Vgnuplot_binary): Use GNUPLOT_BINARY as default. 28959 28960 * octave.cc (execute_startup_files): 28961 Use octave_env::getcwd instead of "./". 28962 Use OCTAVE_DIR_SEP_STR instead of "/". 28963 (initialize_pathsearch): Use OCTAVE_DIR_SEP_STR instead of /. 28964 (main): Look for OCTAVE_DIR_SEP_CHARS, not '/'. 28965 289662002-10-08 John W. Eaton <jwe@bevo.che.wisc.edu> 28967 28968 * Makefile.in (gendoc): Use $(BUILD_CXX), not $(CXX). 28969 289702002-10-07 John W. Eaton <jwe@bevo.che.wisc.edu> 28971 28972 * utils.cc (octave_sleep): Cast result of modf to unsigned int. 28973 289742002-10-07 Paul Kienzle <pkienzle@users.sf.net> 28975 28976 * sighandlers.cc (my_friendly_exit): If kill is unavailable, use 28977 raise. 28978 289792002-10-06 John W. Eaton <jwe@bevo.che.wisc.edu> 28980 28981 * sysdep.cc (CYGWIN_init): New function. 28982 (sysdep_init) [__CYGWIN__]: Call it. 28983 28984 * pt-plot.cc (subplot::handle_plot_data): Surround file names in 28985 single quotes, not double (for Windows). 28986 (do_external_plotter_cd): Likewise. 28987 289882002-10-03 John W. Eaton <jwe@bevo.che.wisc.edu> 28989 28990 * cutils.c (octave_usleep): Call octave_sleep, not sleep. 28991 28992 * utils.cc (octave_sleep (double)): New function. 28993 * utils.h: Provide decl. 28994 * sysdep.cc (Fpause, Fsleep): Use it. 28995 28996 * cutils.c (do_octave_usleep): Merge with octave_usleep. 28997 (octave_usleep): Make it work for Windows systems. From Paul 28998 Kienzle <pkienzle@users.sf.net>. 28999 290002002-10-03 Paul Kienzle <pkienzle@users.sf.net> 29001 29002 * cutils.c (octave_usleep): Make it work for Windows systems. 29003 29004 * toplev.cc (Fsystem): Error message if fork is not available. 29005 290062002-10-02 John W. Eaton <jwe@bevo.che.wisc.edu> 29007 29008 * cutils.c (octave_sleep): Handle Windows, which may not have 29009 sleep, but should have Sleep. 29010 29011 * oct-conf.h.in (OCTAVE_CONF_SED): Add an entry for SED. 29012 * toplev.cc (octave_config_info): Likewise. 29013 * Makefile.in (oct-gperf.h): Use $(SED), not sed. 29014 290152002-09-27 John W. Eaton <jwe@bevo.che.wisc.edu> 29016 29017 * file-io.cc (fopen_mode_to_ios_mode): Set ios::ate instead of 29018 ios::app for "a+" mode. 29019 * oct-stream.cc (octave_stream::mode_as_string): Recognize 29020 ios::ate, not ios::app as "a+" mode. 29021 (octave_stream::mode_as_string): Use parens since | has lower 29022 precedence than ==. 29023 290242002-09-26 Paul Kienzle <pkienzle@users.sf.net> 29025 29026 * sysdep.cc: Include conio.h if it exists. 29027 (octave_kbhit): Rename from kbhit. Implement with _kbhit if it 29028 exists. Change all callers. 29029 * cutils.c (octave_sleep): New function. 29030 Change all callers of sleep to use octave_sleep instead. 29031 290322002-09-26 John W. Eaton <jwe@bevo.che.wisc.edu> 29033 29034 * BaseSLList.cc, BaseSLList.h, Cell.cc, Cell.h, DLList.cc, 29035 DLList.h, Map.cc, Map.h, OPERATORS/op-b-b.cc, 29036 OPERATORS/op-bm-b.cc, OPERATORS/op-bm-bm.cc, OPERATORS/op-cell.cc, 29037 OPERATORS/op-chm.cc, OPERATORS/op-cm-cm.cc, OPERATORS/op-cm-cs.cc, 29038 OPERATORS/op-cm-m.cc, OPERATORS/op-cm-s.cc, OPERATORS/op-cs-cm.cc, 29039 OPERATORS/op-cs-cs.cc, OPERATORS/op-cs-m.cc, OPERATORS/op-cs-s.cc, 29040 OPERATORS/op-fil-b.cc, OPERATORS/op-fil-bm.cc, 29041 OPERATORS/op-fil-cm.cc, OPERATORS/op-fil-cs.cc, 29042 OPERATORS/op-fil-lis.cc, OPERATORS/op-fil-m.cc, 29043 OPERATORS/op-fil-rec.cc, OPERATORS/op-fil-s.cc, 29044 OPERATORS/op-fil-str.cc, OPERATORS/op-list.cc, 29045 OPERATORS/op-m-cm.cc, OPERATORS/op-m-cs.cc, OPERATORS/op-m-m.cc, 29046 OPERATORS/op-m-s.cc, OPERATORS/op-range.cc, OPERATORS/op-s-cm.cc, 29047 OPERATORS/op-s-cs.cc, OPERATORS/op-s-m.cc, OPERATORS/op-s-s.cc, 29048 OPERATORS/op-str-str.cc, SLList.cc, SLList.h, SLStack.cc, 29049 SLStack.h, Stack.cc, Stack.h, c-file-ptr-stream.cc, 29050 c-file-ptr-stream.h, comment-list.cc, comment-list.h, oct-map.cc, 29051 oct-map.h, oct-obj.cc, oct-obj.h, ov-base-mat.cc, ov-base-mat.h, 29052 ov-base-nd-array.cc, ov-base-nd-array.h, ov-base-scalar.cc, 29053 ov-base-scalar.h, ov-base.cc, ov-base.h, ov-bool-mat.cc, 29054 ov-bool-mat.h, ov-bool.cc, ov-bool.h, ov-builtin.cc, ov-builtin.h, 29055 ov-cell.cc, ov-cell.h, ov-ch-mat.cc, ov-ch-mat.h, ov-colon.cc, 29056 ov-complex.cc, ov-complex.h, ov-cs-list.cc ov-cs-list.h, 29057 ov-cx-mat.cc, ov-cx-mat.h, ov-dld-fcn.cc, ov-dld-fcn.h, ov-fcn.cc, 29058 ov-fcn.h, ov-file.cc, ov-file.h, ov-list.cc, ov-list.h, 29059 ov-mapper.cc, ov-mapper.h, ov-range.cc, ov-range.h, ov-re-mat.cc, 29060 ov-re-mat.h, ov-re-nd-array.cc, ov-re-nd-array.h, ov-scalar.cc, 29061 ov-scalar.h, ov-str-mat.cc, ov-str-mat.h, ov-struct.cc, 29062 ov-struct.h, ov-typeinfo.cc, ov-typeinfo.h, ov-usr-fcn.cc, 29063 ov-usr-fcn.h, ov-va-args.cc, ov.cc, ov.h, procstream.cc, 29064 procstream.h, pt-arg-list.cc, pt-arg-list.h, pt-assign.cc, 29065 pt-assign.h, pt-binop.cc, pt-binop.h, pt-bp.cc, pt-bp.h, 29066 pt-cell.cc, pt-cell.h, pt-check.cc, pt-check.h, pt-cmd.cc, 29067 pt-cmd.h, pt-colon.cc, pt-colon.h, pt-const.cc, pt-const.h, 29068 pt-decl.cc, pt-decl.h, pt-except.cc, pt-except.h, pt-exp.cc, 29069 pt-exp.h, pt-id.cc, pt-id.h, pt-idx.cc, pt-idx.h, pt-jump.cc, 29070 pt-jump.h, pt-loop.cc, pt-loop.h, pt-mat.cc, pt-mat.h, pt-misc.cc, 29071 pt-misc.h, pt-plot.cc, pt-plot.h, pt-pr-code.cc, pt-pr-code.h, 29072 pt-select.cc, pt-select.h, pt-stmt.cc, pt-stmt.h, pt-unop.cc, 29073 pt-unop.h, pt.cc, pt.h, symtab.cc, symtab.h, token.cc, token.h, 29074 unwind-prot.cc, unwind-prot.h: 29075 If __GNUG__, use pragma interface/implementation. Allow this to 29076 be turned off by defining NO_PRAGMA_INTERFACE_IMPLEMENTATION. 29077 290782002-09-26 Paul Kienzle <pkienzle@users.sf.net> 29079 29080 * mappers.cc (install_mapper_functions): Install erf, not xerf. 29081 Install erfc, not xerfc. 29082 29083 * pt-bp.cc (tree_breakpoint::visit_unwind_protect_command): 29084 Rename lst1 and lst2 to avoid dlgs.h conflict. 29085 29086 * parse.y: Replace TEXT with STRING to avoid winnt.h conflict. 29087 * lex.l: Ditto. 29088 29089 * sysdep.cc (raw_mode): Non-fatal warning if raw_mode is not 29090 supported. 29091 29092 * sighandlers.cc: Don't define handlers for non-existent signals. 29093 29094 * utils.cc: Don't include unneeded termio headers. 29095 290962002-09-19 John W. Eaton <jwe@bevo.che.wisc.edu> 29097 29098 * BaseSLList.cc, BaseSLList.h, Cell.cc, Cell.h, DLList.cc, 29099 DLList.h, Map.cc, Map.h, OPERATORS/op-b-b.cc, 29100 OPERATORS/op-bm-b.cc, OPERATORS/op-bm-bm.cc, OPERATORS/op-cell.cc, 29101 OPERATORS/op-chm.cc, OPERATORS/op-cm-cm.cc, OPERATORS/op-cm-cs.cc, 29102 OPERATORS/op-cm-m.cc, OPERATORS/op-cm-s.cc, OPERATORS/op-cs-cm.cc, 29103 OPERATORS/op-cs-cs.cc, OPERATORS/op-cs-m.cc, OPERATORS/op-cs-s.cc, 29104 OPERATORS/op-fil-b.cc, OPERATORS/op-fil-bm.cc, 29105 OPERATORS/op-fil-cm.cc, OPERATORS/op-fil-cs.cc, 29106 OPERATORS/op-fil-lis.cc, OPERATORS/op-fil-m.cc, 29107 OPERATORS/op-fil-rec.cc, OPERATORS/op-fil-s.cc, 29108 OPERATORS/op-fil-str.cc, OPERATORS/op-list.cc, 29109 OPERATORS/op-m-cm.cc, OPERATORS/op-m-cs.cc, OPERATORS/op-m-m.cc, 29110 OPERATORS/op-m-s.cc, OPERATORS/op-range.cc, OPERATORS/op-s-cm.cc, 29111 OPERATORS/op-s-cs.cc, OPERATORS/op-s-m.cc, OPERATORS/op-s-s.cc, 29112 OPERATORS/op-str-str.cc, SLList.cc, SLList.h, SLStack.cc, 29113 SLStack.h, Stack.cc, Stack.h, c-file-ptr-stream.cc, 29114 c-file-ptr-stream.h, comment-list.cc, comment-list.h, oct-map.cc, 29115 oct-map.h, oct-obj.cc, oct-obj.h, ov-base-mat.cc, ov-base-mat.h, 29116 ov-base-nd-array.cc, ov-base-nd-array.h, ov-base-scalar.cc, 29117 ov-base-scalar.h, ov-base.cc, ov-base.h, ov-bool-mat.cc, 29118 ov-bool-mat.h, ov-bool.cc, ov-bool.h, ov-builtin.cc, ov-builtin.h, 29119 ov-cell.cc, ov-cell.h, ov-ch-mat.cc, ov-ch-mat.h, ov-colon.cc, 29120 ov-complex.cc, ov-complex.h, ov-cs-list.cc ov-cs-list.h, 29121 ov-cx-mat.cc, ov-cx-mat.h, ov-dld-fcn.cc, ov-dld-fcn.h, ov-fcn.cc, 29122 ov-fcn.h, ov-file.cc, ov-file.h, ov-list.cc, ov-list.h, 29123 ov-mapper.cc, ov-mapper.h, ov-range.cc, ov-range.h, ov-re-mat.cc, 29124 ov-re-mat.h, ov-re-nd-array.cc, ov-re-nd-array.h, ov-scalar.cc, 29125 ov-scalar.h, ov-str-mat.cc, ov-str-mat.h, ov-struct.cc, 29126 ov-struct.h, ov-typeinfo.cc, ov-typeinfo.h, ov-usr-fcn.cc, 29127 ov-usr-fcn.h, ov-va-args.cc, ov.cc, ov.h, procstream.cc, 29128 procstream.h, pt-arg-list.cc, pt-arg-list.h, pt-assign.cc, 29129 pt-assign.h, pt-binop.cc, pt-binop.h, pt-bp.cc, pt-bp.h, 29130 pt-cell.cc, pt-cell.h, pt-check.cc, pt-check.h, pt-cmd.cc, 29131 pt-cmd.h, pt-colon.cc, pt-colon.h, pt-const.cc, pt-const.h, 29132 pt-decl.cc, pt-decl.h, pt-except.cc, pt-except.h, pt-exp.cc, 29133 pt-exp.h, pt-id.cc, pt-id.h, pt-idx.cc, pt-idx.h, pt-jump.cc, 29134 pt-jump.h, pt-loop.cc, pt-loop.h, pt-mat.cc, pt-mat.h, pt-misc.cc, 29135 pt-misc.h, pt-plot.cc, pt-plot.h, pt-pr-code.cc, pt-pr-code.h, 29136 pt-select.cc, pt-select.h, pt-stmt.cc, pt-stmt.h, pt-unop.cc, 29137 pt-unop.h, pt.cc, pt.h, symtab.cc, symtab.h, token.cc, token.h, 29138 unwind-prot.cc, unwind-prot.h: 29139 Use USE_PRAGMA_INTERFACE_IMPLEMENTATION instead of __GNUG__ to 29140 decide whether to use the interface/implementation pragmas. 29141 291422002-09-18 John W. Eaton <jwe@bevo.che.wisc.edu> 29143 29144 * load-save.cc: Undo previous change. 29145 29146 * ov-struct.cc (octave_struct::subsasgn): Ensure that indexed 29147 object is not shared before calling subsasgn. 29148 291492002-09-04 John W. Eaton <jwe@bevo.che.wisc.edu> 29150 29151 * load-save.cc: Use % instead of # as comment character in ascii 29152 data files. 29153 291542002-08-17 Mumit Khan <khan@nanotech.wisc.edu> 29155 29156 * c-file-ptr-stream.h (c_file_ptr_buf::c_file_ptr_buf): Add Intel 29157 C++ runtime support. 29158 29159 * Cell.h, gripes.cc, ov-base-scalar.cc, ov-colon.cc, ov-fcn.cc, 29160 ov-file.cc, ov-mapper.h, ov-va-args.cc, token.cc, xpow.cc, 29161 OPERATORS/op-b-b.cc, OPERATORS/op-bm-b.cc, OPERATORS/op-bm-bm.cc, 29162 OPERATORS/op-cell.cc, OPERATORS/op-chm.cc, OPERATORS/op-cm-cm.cc, 29163 OPERATORS/op-cm-cs.cc, OPERATORS/op-cm-m.cc, OPERATORS/op-cm-s.cc, 29164 OPERATORS/op-cs-cm.cc, OPERATORS/op-cs-cs.cc, OPERATORS/op-cs-m.cc, 29165 OPERATORS/op-cs-s.cc, OPERATORS/op-fil-b.cc, OPERATORS/op-fil-bm.cc, 29166 OPERATORS/op-fil-cm.cc, OPERATORS/op-fil-cs.cc, 29167 OPERATORS/op-fil-lis.cc, OPERATORS/op-fil-m.cc, 29168 OPERATORS/op-fil-rec.cc, OPERATORS/op-fil-s.cc, 29169 OPERATORS/op-fil-str.cc, OPERATORS/op-list.cc, OPERATORS/op-m-cm.cc, 29170 OPERATORS/op-m-cs.cc, OPERATORS/op-m-m.cc, OPERATORS/op-m-s.cc, 29171 OPERATORS/op-range.cc, OPERATORS/op-s-cm.cc, OPERATORS/op-s-cs.cc, 29172 OPERATORS/op-s-m.cc, OPERATORS/op-s-s.cc, OPERATORS/op-str-str.cc, 29173 TEMPLATE-INST/Array-sym.cc, TEMPLATE-INST/Array-tc.cc, 29174 TEMPLATE-INST/Map-tc.cc, TEMPLATE-INST/SLList-expr.cc, 29175 TEMPLATE-INST/SLList-tc.cc, TEMPLATE-INST/SLList-tm.cc, 29176 TEMPLATE-INST/SLStack-sym.cc: Make the implementation of 29177 octave_value_list visibile for template instantiation. 29178 291792002-08-17 John W. Eaton <jwe@bevo.che.wisc.edu> 29180 29181 * DLD-FUNCTIONS/dasrt.cc: Include <iostream> not <iostream.h>. 29182 29183 * pager.h: Include lo-sstream.h and use macros instead of using 29184 strstreambuf class directly. 29185 29186 * load-save.cc (read_mat_ascii_data): Handle istrstream here too. 29187 29188 * procstream.h (procstream::procstream): Also accept std::string arg. 29189 (iprocstream::iprocstream, iprocstream::open): Likewise. 29190 (oprocstream::oprocstream, oprocstream::open): Likewise. 29191 (procstreambase::procstreambase, procstreambase::open): Likewise. 29192 29193 * pt-plot.cc (gnuplot_terminal_type): Now std::string&, not char*. 29194 (send_to_plot_stream): Likewise, for cmd arg. 29195 29196 * pt-plot.h, pt-plot.cc: Include lo-sstream.h and use macros 29197 instead of using strstream classes directly. 29198 * oct-strstrm.h: Likewise. 29199 * error.h, error.cc: Likewise. 29200 * oct-stream.h, oct-stream.cc: Likewise. 29201 * lex.l: Likewise. 29202 * toplev.cc: Likewise. 29203 * utils.cc: Likewise. 29204 * pt.cc: Likewise. 29205 * pr-output.cc: Likewise. 29206 * ov-list.cc: Likewise. 29207 * ov-cs-list.cc: Likewise. 29208 * ov-cell.cc: Likewise. 29209 * load-save.cc: Likewise. 29210 * help.cc: Likewise. 29211 * dirfns.cc: Likewise. 29212 292132002-08-15 Paul Kienzle <pkienzle@jazz.ncnr.nist.gov> 29214 29215 * input.cc (octave_read): Do a better job of buffering. 29216 292172002-08-15 John W. Eaton <jwe@bevo.che.wisc.edu> 29218 29219 * Makefile.in (DLD_DEF_FILES): New macro. 29220 (DEF_5): Delete. 29221 (DEF_4): Now only includes $(SOURCES). 29222 (DEF_FILES): Append $(DLD_DEF_FILES) here. 29223 (stamp-oct-links): Pass $(DLD_DEF_FILES) to mk-oct-links instead 29224 of a list of source files. 29225 * mk-oct-links: Work on .df files instead of .cc files. 29226 29227 * parse.y (case_list): Allow it to be empty. 29228 29229 * ov.cc, ov.h (octave_value::int_vector_value): New function. 29230 292312002-08-14 John W. Eaton <jwe@bevo.che.wisc.edu> 29232 29233 * Makefile.in (OCTAVE_LIBS): Only include $(LIBKPATHSEA) if not 29234 using shared libraries. 29235 29236 * ov.cc (octave_value::octave_value (const octave_value_list&, bool)): 29237 Don't forget to assign rep. 29238 292392002-08-12 John W. Eaton <jwe@bevo.che.wisc.edu> 29240 29241 * lex.l: Warn for various Matlab-incompatibilities. 29242 No longer accept <> for NOTEQ. 29243 (gripe_matlab_incompatible): New function. 29244 (maybe_gripe_matlab_incompatible_comment): Likewise. 29245 (gripe_matlab_incompatible_continuation): Likewise. 29246 (gripe_matlab_incompatible_operator): Likewise. 29247 (warn_matlab_incompatible): New function. 29248 (Vwarn_matlab_incompatible): New static variable. 29249 (symbols_of_lex): Add a DEFVAR for it. 29250 29251 29252 * file-io.cc (fopen_mode_to_ios_mode): Default value is std::ios::in. 29253 Return std::ios::openmode instead of int. 29254 292552002-08-10 John W. Eaton <jwe@bevo.che.wisc.edu> 29256 29257 * DLD-FUNCTIONS/dasrt.cc (DASRT_ABORT1, DASRT_ABORT2): 29258 "##" pastes tokens, not strings. 29259 29260 * DLD-FUNCTIONS/odessa.cc: Add std:: qualifiers as needed. 29261 292622002-08-09 John W. Eaton <jwe@bevo.che.wisc.edu> 29263 29264 * variables.cc (Fisglobal): Rename from Fis_global. 29265 * file-io.cc (Fisstream): Rename from Fis_stream. 29266 * data.cc (Fisbool): Rename from Fis_bool. 29267 (Fiscomplex): Rename from Fis_complex. 29268 (Fislist): Rename from Fis_list. 29269 (Fismatrix): Rename from Fis_matrix. 29270 (Fisstruct): Rename from Fis_struct. 29271 29272 * parse.y (switch_case): Make list of command optional. 29273 292742002-08-08 John W. Eaton <jwe@bevo.che.wisc.edu> 29275 29276 * pr-output.cc (pr_max_internal): Use octave_is_NaN_or_NA instead 29277 of xisnan. 29278 (pr_min_internal): Likewise. 29279 (output_max_field_width): Likewise. 29280 (output_precision): Likewise. 29281 (pr_any_float): Handle NA. 29282 * mappers.cc (Fisna, F_is_nan_or_na): New functions. 29283 * data.cc (symbols_of_data): New constant, NA. 29284 292852002-08-07 John W. Eaton <jwe@bevo.che.wisc.edu> 29286 29287 * pt-binop.h (tree_binary_expression::is_binary_expression): 29288 New function, return true. 29289 (tree_boolean_expression::is_boolean_expression): New function, 29290 return true. 29291 * pt-exp.h (tree_expression::is_binary_expression): New function. 29292 (tree_expression::is_boolean_expression): Likewise. 29293 * parse.y (EXPR_OR_OR): Now lower precedence than EXPR_AND_AND. 29294 (EXPR_OR): Now lower precedence than EXPR_AND. 29295 (make_boolean_op): Maybe warn about change in precedence. 29296 (make_binary_op): Likewise. 29297 (Vwarn_precedence_change): New static variable. 29298 (warn_precedence_change): New function. 29299 (Vwarn_precedence_change): New DEFVAR. 29300 293012002-08-05 John W. Eaton <jwe@bevo.che.wisc.edu> 29302 29303 * data.cc (ANY_ALL): Improve arg checks. 29304 293052002-08-04 John W. Eaton <jwe@bevo.che.wisc.edu> 29306 29307 * ov.h (octave_value::assign_op): New enum values, op_pow_eq and 29308 op_el_pow_eq. 29309 * ov.cc (octave_value::assign_op_as_string): Handle them here. 29310 (ocatave_value::op_eq_to_binary_op): And here. 29311 * parse.y (POW_EQ, EPOW_EQ): New tokens. 29312 (assign_expr): Handle them here too. 29313 (make_assign_op): And here. 29314 29315 * lex.l: Recognize {POW}= and {EPOW}=. 29316 293172002-08-02 John W. Eaton <jwe@bevo.che.wisc.edu> 29318 29319 * ov-base-scalar.h (octave_base_scalar::all): New int arg. 29320 (octave_base_scalar::any): Likewise. 29321 * ov-range.h (octave_range::all): Likewise. 29322 (octave_range::any): Likewise. 29323 29324 * Makefile.in (doc-files): Use mv, not move-if-change here. 29325 29326 * variables.cc (symbol_exist): New function. 29327 (Fexist): Use it. Handle optional type arg. Make return codes 29328 more compatible with Matlab. 29329 29330 * data.cc (ANY_ALL): New macro. 29331 (Fany, Fall): Replace guts with ANY_ALL. 29332 293332002-08-01 John W. Eaton <jwe@bevo.che.wisc.edu> 29334 29335 * data.cc (Fall, Fany): Handle optional DIM argument. 29336 29337 * ov.h (octave_value::any): New arg, dim. 29338 (octave_value::all): Likewise. 29339 * ov-base.h (octave_base_value::any): Likewise. 29340 (octave_base_value::all): Likewise. 29341 * ov-base-mat.h (octave_base_matrix::any): Likewise. 29342 (octave_base_matrix::all): Likewise. 29343 29344 * Makefile.in: Use $@-t instead of $@.t. 29345 (doc-files): Use move-if-change when creating doc-files. 29346 29347 * error.cc (warning): Don't print warning backtrace at top level. 29348 29349 * ov-cell.cc (octave_cell::print_raw): Print empty dimensions too. 29350 (octave_cell::print_name_tag): Don't print new line if cell is empty. 29351 29352 * octave.cc (intern_argv): Don't install __argv__. 29353 29354 * defun-int.h (UNDERSCORIFY): Delete. 29355 (DEFCONST_INTERNAL): Don't install double underscore versions of 29356 constants since they aren't really needed. 29357 (DEFCONSTX_INTERNAL): Likewise. 29358 293592002-07-31 John W. Eaton <jwe@bevo.che.wisc.edu> 29360 29361 * symtab.cc (symbol_table::clear (void)): Clear all records. 29362 (symbol_table::clear (const std::string&)): Delete second arg. 29363 Clear any symbol that matches, regardless of type. 29364 29365 * symtab.h (symbol_table::variable_name_list): New function. 29366 (symbol_table::global_variable_name_list): Likewise. 29367 (symbol_table::user_function_name_list): Likewise. 29368 29369 * symtab.h, symtab.cc (symbol_table::clear_variables): New function. 29370 (symbol_table::clear_functions): Likewise. 29371 (symbol_table::clear_globals): Likewise. 29372 (symbol_table::clear_variable): New function. 29373 (symbol_table::clear_function): Likewise. 29374 (symbol_table::clear_global): Likewise. 29375 (symbol_table::clear_variable_pattern): New function. 29376 (symbol_table::clear_function_pattern): Likewise. 29377 (symbol_table::clear_global_pattern): Likewise. 29378 29379 * variables.cc (name_matches_any_pattern): Rename from 29380 var_matches_any_pattern. 29381 (is_local_variable): New static inline function. 29382 (maybe_warn_exclusive): Likewise. 29383 (do_clear_all): Likewise. 29384 (do_clear_functions): Likewise. 29385 (do_clear_globals): Likewise. 29386 (do_clear_variables): Likewise. 29387 (do_clear_function): Likewise. 29388 (do_clear_global): Likewise. 29389 (do_clear_variable): Likewise. 29390 (do_clear_symbol): Likewise. 29391 (do_clear_function_pattern): Likewise. 29392 (do_clear_global_pattern): Likewise. 29393 (do_clear_variable_pattern): Likewise. 29394 (do_clear_symbol_pattern): Likewise. 29395 (do_clear_functions): Likewise. 29396 (do_clear_functions): Likewise. 29397 (do_clear_globals): Likewise. 29398 (do_clear_variables): Likewise. 29399 (do_clear_symbols): Likewise. 29400 (do_matlab_compatible_clear): Likewise. 29401 (CLEAR_OPTION_ERROR): New macro. 29402 (Fclear): Rewrite for Matlab compatibility and to cope with new 29403 symbol table semantics. 29404 294052002-07-30 John W. Eaton <jwe@bevo.che.wisc.edu> 29406 29407 * symtab.cc (symbol_table::clear): Simply clear everything. 29408 (symbol_table::clear_functions, symbol_table::clear_globals, 29409 symbol_table::clear_all): New functions. 29410 29411 * symtab.h (symbol_record::symbol_def::next_elem): Delete. 29412 (symbol_record::symbol_def::symbol_def): Delete intializer. 29413 29414 * symtab.h, symtab.cc (symbol_record::push_def): Delete. 29415 (symbol_record::remove_top_def): Delete. 29416 (symbol_record::replace_all_defs): Delete. 29417 (symbol_record::hides_fcn): Delete. 29418 (symbol_record::hides_builtin): Delete. 29419 29420 * symtab.h (symbol_table::~symbol_table): Call clear before 29421 deleting the table. 29422 29423 * variables.cc (initialize_symbol_tables): Create fbi_sym_tab too. 29424 (Fexist): Look in fbi_sym_tab, not global_sym_tab. 29425 29426 * parse.y (function_symtab): Rename from global_symtab. 29427 Set curr_sym_tab to fbi_sym_tab, not global_sym_tab. 29428 Change all uses of global_symtab to be function_symtab instead. 29429 (frob_function): Rename and look for function name in fbi_sym_tab, 29430 not global_sym_tab. 29431 (parse_fcn_file): Clear function name from fbi_sym_tab, not 29432 global_sym_tab. 29433 29434 * load-save.cc (save_vars): Look for built-in vars in fbi_sym_tab. 29435 * symtab.cc (symbol_record::link_to_builtin_variable): Likewise. 29436 * variables.cc (is_builtin_variable): Likewise. 29437 (bind_ans): Likewise. 29438 (bind_builtin_constant): Likewise. 29439 (bind_builtin_variable): Likewise. 29440 (builtin_string_variable): Likewise. 29441 (builtin_real_scalar_variable): Likewise. 29442 (builtin_any_variable): Likewise. 29443 (is_text_function_name): Likewise, for functions. 29444 (force_link_to_function): Likewise. 29445 (is_builtin_function_name): Likewise. 29446 (is_mapper_function_name): Likewise. 29447 (is_valid_function): Likewise. 29448 (Fclear): Likewise. 29449 (F__print_symtab_info__): Likewise. 29450 * defun.cc (print_usage): Likewise. 29451 (install_builtin_mapper): Likewise. 29452 (install_builtin_function): Likewise. 29453 (install_dld_function): Likewise. 29454 (Falias): Likewise. 29455 * dynamic-ld.cc (clear_function): Likewise. 29456 * variables.cc (do_who): Likewise, for built-ins and functions. 29457 (link_to_builtin_or_function): Likewise. 29458 * help.cc (LIST_SYMBOLS): Likewise. 29459 (make_name_list): Handle fbi_sym_tab too. 29460 29461 * variables.cc (fbi_sym_tab): New symbol table. 29462 * variables.h (fbi_sym_tab): Provide decl. 29463 294642002-07-29 John W. Eaton <jwe@bevo.che.wisc.edu> 29465 29466 * symtab.h (symbol_record::alias): Delete unused arg force. 29467 Change all callers. 29468 29469 * variables.cc (link_to_global_variable): Give local variable 29470 global value. 29471 29472 * pt-id.cc (tree_identifier::link_to_global): Warn about global 29473 variables that have been defined before being declared global. 29474 for a global variable to be used before it is declared global. 29475 * pt-decl.cc (tree_global_command::do_init): Handle possible error 29476 from tree_identifier::link_to_global. 29477 294782002-07-25 John W. Eaton <jwe@bevo.che.wisc.edu> 29479 29480 * ov.cc (silent_functions, Vsilent_functions): Move here. 29481 (octave_value::print_with_name): Don't print anything if we are 29482 evaluating a function and Vsilent_functions is true. 29483 29484 * pt-stmt.cc: From here. 29485 (symbols_of_pt_stmt): Delete. 29486 (tree_statement_list::eval): Don't bother with Vsilent_functions here. 29487 294882002-07-24 John W. Eaton <jwe@bevo.che.wisc.edu> 29489 29490 * Makefile.in (OPT_HANDLERS): New targets. 29491 (doc-files): New target. 29492 (gendoc.cc): Depend on doc-files, not $(DOC_FILES). 29493 29494 * DLD-FUNCTIONS/daspk.cc, DLD-FUNCTIONS/dasrt.cc, 29495 DLD-FUNCTIONS/dassl.cc, DLD-FUNCTIONS/fsolve.cc, 29496 DLD-FUNCTIONS/lsode.cc, DLD-FUNCTIONS/odessa.cc 29497 DLD-FUNCTIONS/quad.cc: Replace option handling code with include 29498 directive. 29499 295002002-07-22 John W. Eaton <jwe@bevo.che.wisc.edu> 29501 29502 * pt-loop.cc (tree_simple_for_command::eval): Once we know the RHS 29503 is a matrix type check for real_type, not real_matrix. 29504 295052002-07-19 John W. Eaton <jwe@bevo.che.wisc.edu> 29506 29507 * DLD-FUNCTIONS/quad.cc (quad): Cope with changes to Quad constructors. 29508 295092002-07-17 John W. Eaton <jwe@bevo.che.wisc.edu> 29510 29511 * DLD-FUNCTIONS/daspk.cc (Fdaspk): Also return istate and error 29512 message. Only generate error if user is not at least requesting 29513 the istate output. 29514 * DLD-FUNCTIONS/dasrt.cc (Fdasrt): Likewise. 29515 * DLD-FUNCTIONS/dassl.cc (Fdassl): Likewise. 29516 * DLD-FUNCTIONS/lsode.cc (Fodessa): Likewise. 29517 295182002-07-16 John W. Eaton <jwe@bevo.che.wisc.edu> 29519 29520 * DLD-FUNCTIONS/dasrt.cc (Fdasrt): No need to find ng here. 29521 (dasrt_user_j): New function. 29522 (Fdasrt): Handle Jacobian function. 29523 29524 * DLD-FUNCTIONS/dassl.cc (dassl_user_jacobian): New function. 29525 (Fdassl): Handle Jacobian function. 29526 29527 * DLD-FUNCTIONS/dasrt.cc: New file. 29528 * Makefile.in (DLD_XSRC): Add it to the list. 29529 295302002-07-12 John W. Eaton <jwe@bevo.che.wisc.edu> 29531 29532 * lex.l (@): Handle new token. 29533 * parse.y (constant): Accept function handle syntax. 29534 (make_constant): Create function handles here. 29535 295362002-07-11 John W. Eaton <jwe@bevo.che.wisc.edu> 29537 29538 * defun.cc (check_version): Improve error message. 29539 * error.cc (warning): Only print backtrace once per warning series. 29540 Print backtrace before warning messages. 29541 295422002-07-10 John W. Eaton <jwe@bevo.che.wisc.edu> 29543 29544 * lex.l (maybe_unput_comma): Also handle '{' as an indexing op. 29545 29546 * DLD-FUNCTIONS/odessa.cc: New file. 29547 * Makefile.in (DLD_XSRC): Add it to the list. 29548 295492002-07-05 John W. Eaton <jwe@bevo.che.wisc.edu> 29550 29551 * pt-assign.cc (tree_multi_assignment::rvalue): Call 29552 lhs->nargout_count, not lhs->length. 29553 29554 * pt-arg-list.cc (tree_argument_list::convert_to_const_vector): 29555 Handle cs-list objects here. 29556 (tree_argument_list::nargout_count): New function. 29557 * pt-arg-list.h: Provide decl. 29558 29559 * ov-cs-list.h, ov-cs-list.cc: New files. 29560 * Makefile.in: Add them to the appropriate lists. 29561 29562 * ov.cc: Include ov-cs-list.h. 29563 New arg, is_cs_list for constructor taking octave_value_list arg. 29564 (install_types): Register ov_cs_list. 29565 * ov.h (octave_value::is_cs_list): New function. 29566 * ov-base.h (octave_base_value::is_cs_list): Likewise. 29567 * ov-cell.cc (octave_cell::subsref): Return cs-list for "{" indexing. 29568 295692002-07-04 John W. Eaton <jwe@bevo.che.wisc.edu> 29570 29571 * pt-mat.cc (Vempty_list_elements_ok): Default value is now 1. 29572 * octave.cc (maximum_braindamage): No longer need to set value here. 29573 29574 * ov-usr-fcn.cc (Fva_arg, Fva_start, Fvr_val): Warn that these 29575 functions are deprecated. 29576 * lex.l (EL): Warn that `...' is deprecated. 29577 * ov-usr-fcn.cc (octave_user_function::varargout_to_vr_val, 29578 octave_user_function::has_varargout): New functions. 29579 (Fvr_val): Ensure varargout is not defined. 29580 (octave_user_function::do_multi_index_op): Copy values from 29581 varargout here. 29582 295832002-07-03 John W. Eaton <jwe@bevo.che.wisc.edu> 29584 29585 * ov-usr-fcn.h (octave_user_function::varargin_sr): New data member. 29586 * ov-usr-fcn.cc (octave_user_function::octave_user_function): 29587 Initialize it. 29588 (bind_automatic_vars): Handle varargin. Change all callers. 29589 29590 * octave.gperf: Handle varargin and varargout as keywords. 29591 * lex.l (is_keyword): Likewise. 29592 (IDENT): Move all actions into handle_identifier. 29593 (handle_identifier): Now takes no args. 29594 29595 * lex.l (EL): Return VARARGIN or VARARGOUT, not ELLIPSIS. 29596 * parse.y (param_list): Use VARARGIN instead of ELLIPSIS. 29597 (return_list): Use VARARGOUT instead of ELLIPSIS. 29598 29599 * data.cc (make_diag const octave_value&, const octave_value&): 29600 Allow first arg to be 1x0 or 0x1. 29601 296022002-07-02 John W. Eaton <jwe@bevo.che.wisc.edu> 29603 29604 * defaults.cc (loadpath): Comment out previous change. 29605 29606 * DLD-FUNCTIONS/fsolve.cc (Ffsolve): Return message too. Only 29607 generate error if user is not at least requesting the info output. 29608 29609 * DLD-FUNCTIONS/lsode.cc (Flsode): Fix typos in setting return value. 29610 296112002-07-01 John W. Eaton <jwe@bevo.che.wisc.edu> 29612 29613 * oct-stream.cc (printf_value_cache::double_value): If the current 29614 element is empty and there are no more elements in the value list, 29615 set curr_state to conversion_error. 29616 29617 * input.cc (initialize_command_input): Include (, ), {, and } as 29618 word break characters. 29619 29620 * variables.cc (looks_like_struct): Don't evaluate text if it is a 29621 function. From Ben Sapp <bsapp@lanl.gov>. 29622 29623 * symtab.h (symbol_record::is_function): Also return true if 29624 symbol is a text function or a mapper function. 29625 296262002-06-28 John W. Eaton <jwe@bevo.che.wisc.edu> 29627 29628 * defaults.cc (loadpath): Warn if loadpath doesn't contain 29629 leading, trailing, or doubled colon. 29630 29631 * pt-decl.cc (tree_static_command::eval, tree_global_command::eval): 29632 Call error for any non-zero value of error_state. 29633 * pt-select.cc (tree_if_command::eval): Likewise. 29634 * pt-loop.cc (tree_while_command::eval_error): Don't check error_state. 29635 (tree_do_until_command::eval_error): Likewise. 29636 (tree_simple_for_command::eval_error): Likewise. 29637 (tree_complex_for_command::eval_error): Likewise. 29638 * pt-assign.cc (tree_multi_assignment::eval_error): Likewise. 29639 (tree_simple_assignment::eval_error): Likewise. 29640 * pt-idx.cc (tree_index_expression::eval_error): Likewise. 29641 * pt-colon.cc (tree_colon_expression::eval_error): Likewise. 29642 (tree_colon_expression::rvalue): Delete rendundant error_state check. 29643 296442002-06-26 John W. Eaton <jwe@bevo.che.wisc.edu> 29645 29646 * ov-mapper.cc (MAPPER_LOOP, MAPPER_LOOP_1, MAPPER_LOOP_2): New macros. 29647 (octave_mapper::apply): Use them to inline the mapper loops. 29648 29649 * pt-unop.cc (tree_prefix_expression::rvalue): Ensure that the 29650 operand is defined for op_incr and op_decr. 29651 (tree_postfix_expression::rvalue): Likewise. 29652 From Ben Sapp <bsapp@lanl.gov>. 29653 296542002-06-25 John W. Eaton <jwe@bevo.che.wisc.edu> 29655 29656 * ov-mapper.cc (octave_mapper::apply): Exit loops on error. 29657 296582002-06-03 John W. Eaton <jwe@bevo.che.wisc.edu> 29659 29660 * ov-struct.cc (octave_struct::print_raw): Print field names with 29661 data types if Vstruct_levels_to_print is 0. 29662 (octave_struct::print_name_tag): Don't emit newline if 29663 Vstruct_levels_to_print is negative. 29664 * ov.cc (struct_levels_to_print): Allow negative values too. 29665 296662002-05-24 John W. Eaton <jwe@bevo.che.wisc.edu> 29667 29668 * DLD-FUNCTIONS/lsode.cc (Flsode): Also return istate and error 29669 message. Only generate error if user is not at least requesting 29670 the istate output. 29671 29672 * load-save.cc (hdf5_import_multidim, hdf5_check_attr, 29673 hdf5_callback_data, hdf5_read_next_data, read_hdf5_data, 29674 add_hdf5_data): Use 0, not NULL in calls to HDF routines. 29675 29676 * oct-procbuf.cc (octave_procbuf::open): Use NULL, not 0 as last 29677 arg in call to execl. 29678 29679 * debug.cc (get_user_function): Initialise dbg_fcn to 0, not NULL. 29680 296812002-05-23 John W. Eaton <jwe@bevo.che.wisc.edu> 29682 29683 * DLD-FUNCTIONS/lsode.cc (LSODE_options::da_set_opt_mf, 29684 LSODE_options::da_get_opt_mf): New typedefs. 29685 (LSODE_OPTIONS::da_set_fcn, LSODE_OPTIONS::da_get_fcn): New fields. 29686 (lsode_option_table): Fill them in. 29687 (set_lsode_option (const Array<double>&)): New function. 29688 (print_lsode_option_list): Handle vector options. 29689 (show_lsode_option_list): Likewise. 29690 (Flsode_options): Likewise. 29691 29692 * DLD-FUNCTIONS/lsode.cc (LSODE_options::s_set_opt_mf, 29693 LSODE_options::s_get_opt_mf): New typedefs. 29694 (LSODE_OPTIONS::s_set_fcn, LSODE_OPTIONS::s_get_fcn): New fields. 29695 (lsode_option_table): Fill them in. 29696 (set_lsode_option (const std::string&)): New function. 29697 (print_lsode_option_list): Handle string options. 29698 (show_lsode_option_list): Likewise. 29699 (Flsode_options): Likewise. 29700 297012002-05-22 John W. Eaton <jwe@bevo.che.wisc.edu> 29702 29703 * c-file-ptr-stream.h (c_file_ptr_buf::fclose): New function. 29704 (c_file_ptr_buf::c_file_ptr_buf): Use it as default argument 29705 instead of extern "C" fclose function. 29706 (i_c_file_ptr_stream::i_c_file_ptr_stream): Likewise. 29707 (o_c_file_ptr_stream::o_c_file_ptr_stream): Likewise. 29708 * oct-stdstrm.h (octave_istdiostream::octave_istdiostream): Likewise. 29709 (octave_istdiostream::create): Likewise. 29710 * oct-stdstrm.h (octave_ostdiostream::octave_ostdiostream): Likewise. 29711 (octave_ostdiostream::create): Likewise. 29712 29713 * oct-prcstrm.cc (cxx_pclose): New static function. 29714 (octave_iprocstream::octave_iprocstream): Pass it to 29715 octave_istdiostream constructor instead of extern "C" pclose function. 29716 (octave_oprocstream::octave_oprocstream): Pass it to 29717 octave_ostdiostream constructor instead of extern "C" pclose function. 29718 29719 * debug.cc (Fdbtype): Use C++ strings, not C strings. 29720 297212002-05-22 Mumit Khan <khan@nanotech.wisc.edu> 29722 29723 * debug.cc: Include cstdlib instead of stdlib.h. Include cstring. 29724 (dbtype): Use strchr instead of index. 29725 * TEMPLATE-INST/Array-tc.cc (Array<octave_value>::resize_fill_value): 29726 Fix template specialization syntax. 29727 297282002-05-17 Mumit Khan <khan@nanotech.wisc.edu> 29729 29730 * c-file-ptr-stream.h (OCTAVE_STD_FILEBUF): New macro to handle 29731 various forms of extensions to std::filebuf. 29732 (c_file_ptr_buf::c_file_ptr_buf): Use. 29733 * pt-idx.cc (tree_index_expression::tree_index_expression): Remove 29734 default arguments are from definition. 29735 * symtab.cc (SYMBOL_DEF::print_info): Add std::. 29736 (symbol_record::print_info): Likewise. 29737 (symbol_table::print_info): Likewise. 29738 297392002-05-16 John W. Eaton <jwe@bevo.che.wisc.edu> 29740 29741 * oct-map.cc (Octave_map::assign): Resize RHS if it is shorter 29742 than existing struct array. 29743 29744 * ov-cell.cc (octave_cell::subsasgn): If an error has occurred, 29745 skip final assignment step. 29746 * ov-list.cc (octave_list::subsasgn): Likewise. 29747 * oct-lvalue.cc (octave_lvalue::assign): Add parens to clarify intent. 29748 (octave_lvalue::do_unary_op): Likewise. 29749 29750 * parse.y (function_end): Also accept end of input as end of 29751 function if input is coming from an eval string. 29752 29753 * pr-output.cc (pr_any_float): Don't convert -0 to 0. 29754 297552002-05-15 John W. Eaton <jwe@bevo.che.wisc.edu> 29756 29757 * input.cc (generate_completion): If it looks like we are 29758 completing a struct, set completion append char to '\0'. 29759 29760 * variables.cc (generate_struct_completions): Temporarily set 29761 warnings off here. 29762 29763 * error.cc (warning): Don't do anything if Vdebug_option == "off". 29764 Only print backtrace if Vdebug_option == "backtrace". 29765 (handle_message): Now returns a string containing the text of the 29766 formatted message. Change all callers. 29767 (Fwarning): Now a text-style function. Handle Matlab-compatible 29768 warning options. 29769 (Flasterr, Flastwarn, set_warning_option): New functions. 29770 (Vlast_error_message, Vlast_warning_message, Vwarning_frequency, 29771 Vwarning_option): New static variables. 29772 (vwarning): Set Vlast_warning_message here too. 29773 (verror): Set Vlast_error_message here too. 29774 297752002-05-14 John W. Eaton <jwe@bevo.che.wisc.edu> 29776 29777 * ov.h (octave_value::get_count): Now const. 29778 29779 * ov.h, ov.cc (octave_value::do_non_const_unary_op, 29780 octave_value::assign): Idx is now a list of octave_value_list 29781 objects. 29782 29783 * ov-base.cc, ov-base.h (octave_base_value::do_struct_elt_index_op, 29784 octave_base_value::struct_elt_ref): Delete. 29785 * ov-struct.cc, ov-struct.h (octave_sruct::do_struct_elt_index_op, 29786 octave_struct::struct_elt_ref): Delete. 29787 * ov.cc, ov.h (octave_value::do_struct_elt_index_op, 29788 octave_value::struct_elt_ref, octave_value::assign_struct_elt, 29789 octave_value::convert_and_assign, octave_value::try_assignment, 29790 octave_value::try_assignment_with_conversion, 29791 octave_value::simple_assign): Delete. 29792 29793 * parse.y (make_index_expression): Type is now a single 29794 character. Change all callers. If expr is already an index 29795 expression, append index to it. 29796 (make_indirect_ref): Likewise. 29797 29798 * pt-pr-code.cc (octave_print_internal (std::ostream&, const 29799 Cell&, bool, int)): Now just a dummy function, panic if called. 29800 29801 * pt-idx.cc (tree_index_expression::make_arg_struct): New function. 29802 (tree_index_expression::type): Delete enum, rename from itype, now 29803 a string. 29804 (tree_index_expression::arg_nm): Now a list of string_vector objects. 29805 (tree_index_expression::idx): Now a list of tree_argument_list* 29806 objects. 29807 (tree_index_expression::is_index_expression): Always return true. 29808 (tree_index_expression::apend, make_value_list, make_subs_cell): 29809 New functions. 29810 29811 * pt-pr-code.cc (visit_index_expression): Handle new definition of 29812 tree_index_expression object. 29813 * pt-check.cc (visit_index_expression): Likewise. 29814 * pt-bp.cc (visit_index_expression): Likewise. 29815 29816 * ov-usr-fcn.h (octave_user_function::restore_args_passed): 29817 Clear args_passed even if nothing was saved. 29818 29819 * ov-base.cc (octave_base_value::subsasgn, 29820 octave_base_value::map_keys, octave_base_value::print_info): 29821 New functions. 29822 29823 * ov.h, ov.cc (octave_value::map_keys, octave_value::print_info, 29824 octave_value::subsref, octave_value::subsasgn, 29825 octave_value::numeric_assign, octave_value::next_subsref): 29826 New functions. 29827 (octave_value::empty_conv): New static function. 29828 (octave_value (octave_value *, int)): New arg, count. 29829 29830 * ov-base-mat.cc (octave_base_matrix<MT>::subsref, 29831 octave_base_matrix<MT>::subsasgn): New functions. 29832 * ov-base-mat.h: Provide decls. 29833 29834 * ov-builtin.cc (octave_builtin::subsref): New function. 29835 * ov-builtin.h: Provide decl. 29836 29837 * ov-range.cc (octave_range::subsref): New function. 29838 * ov-range.h: Provide decl. 29839 29840 * ov-cell.cc (octave_cell::subsref, octave_cell::subsasgn, 29841 octave_cell::list_value, octave_cell::print, 29842 octave_cell::print_raw, octave_cell::print_name_tag): New functions. 29843 * ov-cell.h: Provide decls. 29844 29845 * ov-struct.cc (octave_struct::dotref, octave_struct::subsref, 29846 octave_struct::subsasgn, gripe_invalid_index, 29847 gripe_invalid_index_for_assignment, grip_invalid_index_type, 29848 gripe_failed_assignment): New functions. 29849 (octave_struct::numeric_conv): New static function. 29850 * ov-struct.h: Provide decls. 29851 (octave_struct::is_constant): Return true. 29852 (octave_struct::map_keys): New function. 29853 29854 * ov-list.cc (octave_list::subsref, octave_list::subsasgn): 29855 New functions. 29856 * ov-list.h: Provide decls. 29857 29858 * ov-usr-fcn.cc (octave_user_function::subsref, 29859 octave_user_function::print_symtab_info): New functions. 29860 * ov-usr-fcn.h: Provide decl. 29861 29862 * ov-mapper.cc (octave_mapper::subsref): New function. 29863 * ov-mapper.h: Provide decl. 29864 29865 * ov-base.cc (octave_base_value::subsref, 29866 octave_base_value::subsasgn): New functions. 29867 * ov-base.h: Provide decls. 29868 29869 * ov-base.cc (octave_base_value::do_index_op): New arg, resize_ok. 29870 * ov-base-mat.cc (octave_base_matrix<MT>::do_index_op): Likewise. 29871 * ov-base-nd-array.cc (octave_base_nd_array<AT>::do_index_op): Ditto. 29872 * ov-bool-mat.cc (octave_bool::do_index_op): Ditto. 29873 * ov-str-mat.cc (octave_char_matrix_str::do_index_op): Ditto. 29874 * ov-range.cc (octave_range::do_index_op): Ditto. 29875 * ov-list.cc (octave_list::do_index_op): Ditto. 29876 * ov.cc (octave_value::do_index_op): Ditto. 29877 29878 * ov-base-mat.cc (octave_base_matrix<MT>::print_info): New function. 29879 29880 * ov-base-mat.h (octave_base_matrix<MT>::empty_clone): New function. 29881 * ov-base-nd-array.h (octave_base_nd_array<AT>::empty_clone): Ditto. 29882 * ov-base.h (octave_base_value::empty_clone): Ditto. 29883 * ov-bool-mat.h (octave_bool::empty_clone): Ditto. 29884 * ov-ch-mat.h (octave_char_matrix::empty_clone): Likewise. 29885 * ov-colon.h (octave_magic_colon::empty_clone): Likewise. 29886 * ov-complex.h (octave_complex::empty_clone): Likewise. 29887 * ov-cx-mat.h (octave_complex_matrix::empty_clone): Likewise. 29888 * ov-fcn.cc (octave_function::empty_clone): Likewise. 29889 * ov-file.h (octave_file::empty_clone): Likewise. 29890 * ov-range.h (octave_range::empty_clone): Likewise. 29891 * ov-list.h (octave_list::empty_clone): Likewise. 29892 * ov-re-mat.h (octave_matrix::empty_clone): Likewise. 29893 * ov-re-nd-array.h (octave_double_nd_array::empty_clone): Likewise. 29894 * ov-str-mat.h (octave_char_matrix_str::empty_clone): Likewise. 29895 * ov-struct.h (octave_struct::empty_clone): Likewise. 29896 * ov-va_args.h (octave_all_va_args::empty_clone): Likewise. 29897 * ov.h (octave_value::empty_clone): Likewise. 29898 29899 * ov-base-mat.h (octave_base_matrix<MT>::clone): Now const. 29900 * ov-base-nd-array.h (octave_base_nd_array<AT>::clone): Likewise. 29901 * ov-base.h (octave_base_value::clone): Likewise. 29902 * ov-bool-mat.h (octave_bool::clone): Likewise. 29903 * ov-ch-mat.h (octave_char_matrix::clone): Likewise. 29904 * ov-colon.h (octave_magic_colon::clone): Likewise. 29905 * ov-complex.h (octave_complex::clone): Likewise. 29906 * ov-cx-mat.h (octave_complex_matrix::clone): Likewise. 29907 * ov-fcn.h (octave_function::clone): Likewise. 29908 * ov-file.h (octave_file::clone): Likewise. 29909 * ov-range.h (octave_range::clone): Likewise. 29910 * ov-list.h (octave_list::clone): Likewise. 29911 * ov-re-mat.h (octave_matrix::clone): Likewise. 29912 * ov-re-nd-array.h (octave_double_nd_array::clone): Likewise. 29913 * ov-str-mat.h (octave_char_matrix_str::clone): Likewise. 29914 * ov-struct.h (octave_struct::clone): Likewise. 29915 * ov-va_args.h (octave_all_va_args::clone): Likewise. 29916 * ov.h (octave_value::clone): Likewise. 29917 29918 * oct-lvalue.cc (octave_lvalue::assign, octave_lvalue::set_index, 29919 octave_lvalue::do_unary_op): Idx is now a list of indices. Simplify. 29920 * oct-lvalue.h (octave_lvalue::value): Simplify. 29921 (octave_lvalue::struct_elt_names): Delete data member. 29922 (octave_lvalue::type): Now string 29923 Update decls. 29924 29925 * pt-exp.h (tree_expression::is_indirect_ref): 29926 Delete virtual function. 29927 29928 * pt-plot.cc (subplot::extract_plot_data): Use subsref, instead of 29929 do_index_op. 29930 29931 * pt-stmt.cc (tree_statement::eval): Don't try to avoid binding 29932 ans for structure references. 29933 29934 * symtab.cc (symbol_record::symbol_def::print_info): Rename from 29935 symbol_record::symbol_def::dump_symbol_info. 29936 (symbol_record::print_info): Rename from 29937 symbol_record::dump_symbol_info. Now const.. 29938 (symbol_record::print_symbol_info_line): Now const. 29939 (symbol_table::print_info): Rename from print_stats. Accept 29940 ostream arg. Now const. Print more info. 29941 * symtab.h: Update decls. 29942 29943 * toplev.cc (octave_config_info): Indexing a map now returns a 29944 list, but we only want to return the first element. 29945 29946 * variables.cc (generate_struct_completions, looks_like_struct): 29947 Simplify using eval_string. 29948 (F__print_symtab_info__): Rename from F__dump_symtab_info__. 29949 Handle "top-level" and individual function names in addition to 29950 "global". 29951 (F__print_symbol_info__): Rename from F___dump_symbol_info__. 29952 29953 * octave.cc (intern_argv): Built-in variable argv is now a cell array. 29954 29955 * ov-complex.cc (valid_scalar_indices): Delete. 29956 * ov-scalar.cc (valid_scalar_indices): Delete. 29957 29958 * oct-obj.cc (octave_value_list::valid_scalar_indices): New function. 29959 (octave_value_list::index): New arg, resize_ok. 29960 * oct-obj.h: Provide decls. 29961 29962 * oct-map.cc (Octave_map::keys): Rename from make_name_list. 29963 Change all uses. 29964 (Octave_map::assign, Octave_map::index): New functions. 29965 * oct-map.h: Provide decls. 29966 29967 * data.cc (Fstruct_contains): Use map_value instead of 29968 do_struct_elt_index_op. 29969 29970 * Cell.h (Cell (const Array2<octave_value>&, int, int)): 29971 New constructor. 29972 (Cell::resize_fill_value): New static function. 29973 29974 * input.cc (initialize_command_input): Set basic and completer 29975 word break characters. 29976 299772002-05-07 John W. Eaton <jwe@bevo.che.wisc.edu> 29978 29979 * ov.h (octave_value::subsref): New function. 29980 * ov-base.cc (octave_base_value::subsref): Likewise. 29981 29982 * ov-struct.cc (octave_struct::print_raw): Print scalar struct 29983 arrays more compactly. 29984 29985 * DLD-FUNCTIONS/time.cc (extract_tm): Handle new struct array def. 29986 29987 * oct-map.cc (Octave_map::array_len): New data member. 29988 (Octave_map::operator[], Octave_map::contsnts): Return 29989 octave_value_list, not Octave_value. Change callers as necessary. 29990 (Octave_map::assign): New function. 29991 (Octave_map::array_length): New fucntion. 29992 * oct-obj.cc (octave_value_list::assign): New function. 29993 299942002-05-06 John W. Eaton <jwe@bevo.che.wisc.edu> 29995 29996 * TEMPLATE-INST/Map-oct-obj.cc: New file. 29997 * Makefile.in (TI_XSRC): Add it to the list. 29998 29999 * oct-map.h (Octave_map): Make CHMap<octave_value_list> a data 30000 member instead of deriving from CHMap<octave_value>, in 30001 preparation for structure arrays. 30002 30003 * pt-indir.h, pt-indir.cc: Delete. 30004 30005 * pt-all.h: Don't include pt-indir.h. 30006 30007 * Makefile.in (PT_SRC): Delete pt-indir.cc from the list. 30008 (PT_INCLUDES): Delete pt-indir.h from the list. 30009 30010 * pt-walk.h (tree_walker::visit_indirect_ref): Delete. 30011 * pt-pr-code.h, pt-pr-code.cc (tree_print_code::visit_indirect_ref): 30012 Likewise. 30013 * pt-check.h, pt-check.cc (tree_checker::visit_indirect_ref): Likewise. 30014 * pt-bp.h, pt-bp.cc (tree_breakpoint::visit_indirect_ref): Likewise. 30015 30016 * pt-walk.h: Delete forward decl for tree_indirect_ref. 30017 * variables.h: Likewise. 30018 30019 * parse.y (make_indirect_ref): Return tree_index_expression, not 30020 tree_indirect_ref. 30021 30022 * pt-idx.h (tree_index_expression::struct_elt_name): New function. 30023 30024 * pt-idx.cc (tree_index_expression::lvalue): Handle dot case too. 30025 (tree_index_expression::name): Likewise. 30026 (tree_index_expression rvalue (int)): Likewise. 30027 (tree_index_expression::eval_error): Likewise. 30028 * pt-pr-code.cc (visit_index_expression): Likewise. 30029 * pt-bp.cc (tree_breakpoint::visit_index_expression): Likewise. 30030 30031 * pt-idx.h (tree_index_expression::dot): New type enum element. 30032 (tree_index_expression::expr_type): New function. 30033 (tree_index_expression::tree_index_expression (tree_expression*, 30034 const std::string&, int, int)): New constructor. 30035 (tree_index_expression::is_index_expression): Return value is now 30036 conditional on itype. 30037 (tree_index_expression::is_indirect_ref): New function. 30038 (tree_index_expression::lvalue_ok): Also return true if itype is dot. 30039 300402002-05-03 John W. Eaton <jwe@bevo.che.wisc.edu> 30041 30042 * parse.y (ABORT_PARSE): Maybe restore symbol table context too. 30043 30044 * pt-idx.h (tree_index_expression::type): New enum. 30045 (tree_index_expression::etype): New data member. 30046 * pt-idx.h (tree_index_expression::tree_index_expression): 30047 New arg, t, to set type of index. 30048 * parse.y (make_index_expression): Likewise. 30049 Change all callers. 30050 30051 * ov-base.cc (cell_conv): New conversion function. 30052 (install_base_type_conversions): Install it. 30053 Install conversion for indexed assignment of octave_cells to 30054 undefined values. 30055 30056 * TEMPLATE-INST/Array-tc.cc: Instantiate assign functions too. 30057 (Array<octave_value>::resize_fill_value (void)): 30058 Provide specialization for octave_value. 30059 30060 * ov-cell.cc (octave_cell::assign (const octave_value_list&, 30061 const octave_value&)): New function. 30062 * Cell.h (Cell::Cell (const octave_value&)): New function. 30063 30064 * OPERATORS/op-cell.cc (install_list_ops): Use DEFASSIGNANYOP_FN 30065 and INSTALL_ASSIGNANYOP, not DEFASSIGNOP_FN and INSTALL_ASSIGNOP. 30066 300672002-05-03 Cai Jianming <caijianming@yahoo.co.uk> 30068 30069 * OPERATORS/op-cell.cc: New file. 30070 * Makefile.in (OP_XSRC): Include it in the list. 30071 30072 * parse.y (cell): Return a cell type instead of Matrix type. 30073 30074 * ov.cc (install_types): Install octave_cell type. 30075 30076 * pr-output.cc (octave_print_internal): Handle Cells. 30077 * pr-output.h (octave_print_internal): Provide decl. 30078 30079 * ov-cell.h (octave_cell): Derive from octave_base_matrix<Cell>. 30080 * ov-cell.cc (do_index_op, assign, print, print_raw, 30081 print_name_tag): Delete. 30082 30083 * Cell.cc (allocator, index): Delete. 30084 * Cell.h (Cell): Derive from Array2<octave_value>. 30085 Most functions removed since we can use those from Array2 instead. 30086 300872002-05-02 Cai Jianming <caijianming@yahoo.co.uk> 30088 30089 * ov-base-mat.cc (octave_base_matrix<MT>::assign): 30090 New function. 30091 * ov-base-mat.h (octave_base_matrix<MT>::assign): Provide decl. 30092 * ov-bool-mat.cc (octave_bool_matrix::assign): Delete. 30093 * ov-bool-mat.h (octave_bool_matrix:assign): Delete decl 30094 * ov-cx-mat.cc (octave_complex_matrix::assign (const 30095 octave_value_list& idx, const ComplexMatrix&)): Delete. 30096 * ov-cx-mat.h (octave_complex_matrix:assign (const 30097 octave_value_list& idx, const ComplexMatrix&)): Replace decl with 30098 function. 30099 * ov-re-mat.cc (octave_bool_matrix::assign): Delete. 30100 * ov-re-mat.h (octave_bool_matrix:assign): Delete decl. 30101 301022002-05-02 Cai Jianming <caijianming@yahoo.co.uk> 30103 30104 * OPERATORS/op-bm-b.cc: New file.x 30105 * Makefile.in (OP_XSRC): Add it to the list. 30106 301072002-04-30 John W. Eaton <jwe@bevo.che.wisc.edu> 30108 30109 * octave.cc (print_version_and_exit): Use 30110 OCTAVE_NAME_VERSION_COPYRIGHT_COPYING_AND_WARRANTY, not 30111 OCTAVE_NAME_AND_VERSION. 30112 30113 * octave.cc (verbose_usage): 30114 Use OCTAVE_NAME_VERSION_COPYRIGHT_COPYING_AND_WARRANTY, not 30115 OCTAVE_NAME_VERSION_AND_COPYRIGHT. 30116 30117 * version.h (OCTAVE_COPYING_STATEMENT, OCTAVE_WARRANTY_STATEMENT, 30118 OCTAVE_NAME_VERSION_COPYRIGHT_COPYING_AND_WARRANTY, 30119 X_OCTAVE_NAME_VERSION_COPYRIGHT_COPYING_WARRANTY_AND_BUGS, 30120 OCTAVE_NAME_VERSION_COPYRIGHT_COPYING_WARRANTY_AND_BUGS, 30121 OCTAVE_BUGS_STATEMENT): New macros. 30122 (OCTAVE_STARTUP_MESSAGE): Define in terms of 30123 X_OCTAVE_NAME_VERSION_COPYRIGHT_COPYING_WARRANTY_AND_BUGS 30124 to include bugs address and amplified warranty information. 30125 30126 * DLD-FUNCTIONS/lsode.cc (Flsode): Delete unused variable nsteps. 30127 301282002-04-29 John W. Eaton <jwe@bevo.che.wisc.edu> 30129 30130 * help.cc (additional_help_message): Use www.octave.org, not 30131 www.che.wisc.edu/octave/octave.html. 30132 * octave.cc (verbose_usage): Likewise. 30133 301342002-04-27 John W. Eaton <jwe@bevo.che.wisc.edu> 30135 30136 * DLD-FUNCTIONS/daspk.cc: New file. 30137 * Makefile.in (DLD_XSRC): Add it to the list. 30138 301392002-04-25 Paul Kienzle <pkienzle@users.sf.net> 30140 30141 * DLD-FUNCTIONS/kron.cc: New file. 30142 * Makefile.in (DLD_SRC): Add it to the list. 30143 301442002-04-22 John W. Eaton <jwe@bevo.che.wisc.edu> 30145 30146 * parse.y (save_symtab): New non-terminal. Save current symbol 30147 table context here. 30148 (function_beg): Use it. 30149 (symtab_context): New file-scope variable. 30150 (recover_from_parsing_function): Restore symbol table context here. 30151 301522002-04-17 John W. Eaton <jwe@bevo.che.wisc.edu> 30153 30154 * load-save.cc (get_lines_and_columns): Handle CRLF as line 30155 separator in addition to LF. 30156 301572002-04-11 John W. Eaton <jwe@bevo.che.wisc.edu> 30158 30159 * load-save.cc (hdf5_ofstream::hdf5_ofstream): 30160 Explicitly List std::ostream(0) in constructor. 30161 (hdf5_ifstream::hdf5_ifstream): 30162 Explicitly List std::istream(0) in constructor. 30163 (hdf5_fstreambase::hdf5_fstreambase): Use std::ios::setstate, not set. 30164 (hdf5_fstreambase::close): Likewise. 30165 (hdf5_fstreambase::open): Likewise. 30166 301672002-04-10 Ben Sapp <bsapp@lanl.gov> 30168 30169 * pt-stmt.cc (delete_breakpoint): List breakpoints if line < 0. 30170 * debug.cc (get_user_function): Check symbol by name first. 30171 (Fdbstop): Rename from Fdbg_set. 30172 (Fdbclear): Rename from Fdbg_delete. 30173 (Fdbstatus): Rename from Fdbg_list. 30174 (Fdbg_where): Rename from Fdbwhere. 30175 (do_dbtype, Fdbtype): New functions. 30176 301772002-04-10 Peter Van Wieren <peter.vanwiere@avlna.com> 30178 30179 * load-save.cc (save_mat5_binary_element): Save elements of 2d 30180 character matrices in proper order. 30181 301822002-04-09 Paul Kienzle <pkienzle@users.sf.net> 30183 30184 * utils.cc (do_string_escapes): Handle \0 too. 30185 (undo_string_escape): Likewise. 30186 301872002-04-04 John W. Eaton <jwe@bevo.che.wisc.edu> 30188 30189 * toplev.cc (octave_config_info): Define struct member EXEEXT, not EXE. 30190 * Makefile.in (install-bin): Use $(EXEEXT), not $(EXE). 30191 * oct-conf.h.in (OCTAVE_CONF_EXEEXT): Define and substitute 30192 OCTAVE_CONF_EXEEXT, not OCTAVE_CONF_EXE. 30193 301942002-04-03 Steven G. Johnson <stevenj@alum.mit.edu> 30195 30196 * DLD-FUNCTIONS/balance.cc: Use F77_FUNC instead of F77_FCN. 30197 * DLD-FUNCTIONS/qz.cc: Likewise. 30198 * DLD-FUNCTIONS/rand.cc: Likewise. 30199 * octave.cc: Likewise. 30200 * toplev.cc (Foctave_config_info): Delete use of FORTRAN_MAIN_FLAG. 30201 * oct-conf.h.in: Delete use of OCTAVE_CONF_FORTRAN_MAIN_FLAG. 30202 * syscalls.cc (mk_stat_map): 30203 Use HAVE_STRUCT_STAT_ST_RDEV instead of HAVE_ST_RDEV. 30204 Use HAVE_STRUCT_STAT_ST_BLKSIZE instead of HAVE_ST_BLKSIZE. 30205 Use HAVE_STRUCT_STAT_ST_BLOCKS instead of HAVE_ST_BLOCKS. 30206 302072002-04-02 John W. Eaton <jwe@bevo.che.wisc.edu> 30208 30209 * lex.l, lex.h (parser_end_of_input): New global variable. 30210 (reset_parser): Reset it here. 30211 * parse.y (input): Set it to TRUE on EOF. 30212 (parse_and_executed): Save and restore it, check it to correctly 30213 break out of parse-execute loop. 30214 (parse_fcn_file): Likewise. 30215 (eval_string): Likewise. 30216 * toplev.cc (main_loop): Likewise. 30217 30218 * parse.y (input): Call YYACCEPT for END_OF_INPUT. 30219 Return no-op command for bare newline. 30220 (parse_and_execute): Handle change in yyparse return value semantics. 30221 30222 * toplev.cc (main_loop): Likewise. 30223 302242002-03-25 John W. Eaton <jwe@bevo.che.wisc.edu> 30225 30226 * parse.y (parse_fcn_file): Call error if there is no input file. 30227 (parse_and_execute (FILE *): Protect get_input_from_eval_string. 30228 Set get_input_from_eval_string to false before calling yyparse. 30229 * lex.l (reset_parser): Also skip yyrestart (stdin) if 30230 reading_script_file is true. 30231 302322002-03-07 John W. Eaton <jwe@bevo.che.wisc.edu> 30233 30234 * pt-loop.cc (evaluating_looping_command): New global. 30235 (tree_while_command::eval): Protect evaluating_looping_command. 30236 Set it to true while evaluating loop. 30237 (tree_do_until_command::eval): Ditto. 30238 (tree_simple_for_command::eval): Ditto. 30239 (tree_complex_for_command::eval): Ditto. 30240 * pt-loop.h (evaluating_looping_command): Provide decl. 30241 * parse.y (parse_fcn_file): Protect get_input_from_eval_string. 30242 Set get_input_from_eval_string to false before calling yyparse. 30243 (make_break_command): Also check evaluating_looping_command. 30244 (make_continue_command): Also check evaluating_looping_command. 30245 (eval_string (const std::string&, bool, int&, int)): Loop over 30246 yyparse to handle multi-line strings. 30247 Move call to unwind_protect::run_frame to end of function. 30248 Don't reset parser before calling yyparse. 30249 Correctly handle return, break, and continue. 30250 30251 * input.cc (input_from_eval_string_pending): New global variable. 30252 (get_usr_input): Use it. 30253 * input.h (input_from_eval_string_pending): Provide decl. 30254 302552002-03-06 John W. Eaton <jwe@bevo.che.wisc.edu> 30256 30257 * ov-usr-fcn.cc (octave_user_function::do_multi_index_op): 30258 Don't unwind_protect num_named_args (it doesn't change on 30259 recursive calls). 30260 Do re-initialize curr_va_arg_number to num_named_args after 30261 unwind_protecting. 30262 30263 * ov-usr-fcn.h (octave_user_function::clear_args_passed): Delete. 30264 (octave_user_function::saved_args): New data member. 30265 (octave_user_function::save_args_passed): New function. 30266 (octave_user_function::restore_args_passed): Ditto. 30267 * ov-usr-fcn.cc (clear_args_passed): Delete. 30268 (restore_args_passed): New function. 30269 (octave_user_function::do_multi_index_op): Correctly save and 30270 restore args passed for recursive calls. 30271 30272 * TEMPLATE-INST/SLStack-ovl.cc: New file. 30273 * Makefile.in: Add it to the list. 30274 302752002-02-22 John W. Eaton <jwe@bevo.che.wisc.edu> 30276 30277 * ov-usr-fcn.cc (octave_user_function::do_multi_index_op): 30278 Handle define_all_return_values after function is evaluated. 30279 From Paul Kienzle <pkienzle@jazz.ncnr.nist.gov>. 30280 30281 * ov-scalar.cc (convert_to_str): Use octave_value (std::string) 30282 constructor instead of octave_value (char *) constructor so that 30283 setstr (0) will work. 30284 30285 * pager.cc (octave_pager_buf::sync): Set pointer to beginning 30286 of buffer after calling flush_currnt_contents_to_diary. 30287 (octave_diary_buf::sync): Call eback only once. 30288 302892002-01-03 John W. Eaton <jwe@bevo.che.wisc.edu> 30290 30291 * lex.l (.): Remove test for EOF since it is already handled 30292 separately. 30293 302942001-12-05 John W. Eaton <jwe@bevo.che.wisc.edu> 30295 30296 * load-save.cc (save_mat5_binary_element): 30297 Extract dimensions directly from tc. 30298 Handle ranges the same as real matrices. 30299 303002001-11-16 John W. Eaton <jwe@bevo.che.wisc.edu> 30301 30302 * data.cc (DATA_REDUCTION): If no DIM arg, pass -1 to FCN. 30303 303042001-11-09 John W. Eaton <jwe@bevo.che.wisc.edu> 30305 30306 * oct-conf.h.in (FFTW_LIBS, LD_CXX, LIBOCT_PATHSEARCH, 30307 LIBOCT_READLINE, MKOCTFILE_LFLAGS): Substitute. 30308 * toplev.cc (octave_config_info): Add them to the map. 30309 303102001-11-08 John W. Eaton <jwe@bevo.che.wisc.edu> 30311 30312 * DLD-FUNCTIONS/lsode.cc (Flsode): Don't bother to give OUTPUT 30313 matrix a size before calling integration function. 30314 303152001-11-06 John W. Eaton <jwe@bevo.che.wisc.edu> 30316 30317 Makefile.in (OCTAVE_LIBS): Add $(LIBOCT_READLINE) and 30318 $(LIBOCT_PATHSEARCH) to the list. 30319 303202001-10-08 John W. Eaton <jwe@bevo.che.wisc.edu> 30321 30322 * DLD-FUNCTIONS/dassl.cc (dassl_user_function): Allow user 30323 supplied RES function to return IDID as second value. 30324 303252001-07-23 John W. Eaton <jwe@bevo.che.wisc.edu> 30326 30327 * parse.y: Clear help_buf after documenting function. 30328 303292001-06-29 Mumit Khan <khan@nanotech.wisc.edu> 30330 30331 * defun-int.h (DEFINE_FUN_INSTALLER_FUN{2,3}): New macros. 30332 (DEFINE_FUN_INSTALLER_FUN): Use. 30333 * dynamic-ld.cc ({STRINGIFY, STRINGIFY1}): New macros. 30334 (octave_dynamic_loader::mangle_name): Support dynamic linking 30335 for GNU v3 and Sun C++ ABI. 30336 303372001-06-26 Mumit Khan <khan@nanotech.wisc.edu> 30338 30339 * c-file-ptr-stream.h (c_file_ptr_buf::c_file_ptr_buf): Add GCC3 30340 libstdc++-v3 support. 30341 * load-save.cc (save_mat5_binary_element): Cast arguments to the 30342 correct type. 30343 (save_ascii_data): Eliminate compiler warning. 30344 * toplev.cc (system): Prefix std::. 30345 303462001-05-31 John W. Eaton <jwe@bevo.che.wisc.edu> 30347 30348 * ov-cx-mat.cc: Deleve unnecessary instantiation of assign function. 30349 * ov-re-mat.cc: Likewise. 30350 * ov-re-nd-array.cc: Likewise. 30351 * ov-str-mat.cc: Likewise. 30352 * ov-bool-mat.cc: Likewise. 30353 30354 * load-save.cc (save_ascii_data): When saving string data, get raw 30355 string value for matrix row since there may be embedded nuls. 30356 30357 * pt-mat.cc (Vstring_fill_char): No longer static. 30358 * pt-mat.h: Provide declaration. 30359 303602001-05-17 John W. Eaton <jwe@bevo.che.wisc.edu> 30361 30362 * octave.cc (initialize_pathsearch): Save initial value of the 30363 TEXMFDBS environment variable here. 30364 * toplev.cc (restore_texmfdbs_envvar): New function. 30365 (Fsystem): Set TEXMFDBS back to original value before running 30366 subprocesses. 30367 303682001-05-02 Mumit Khan <khan@nanotech.wisc.edu> 30369 30370 * Makefile.in (octave): Add $(FFTW_LIBS). 30371 303722001-04-27 John W. Eaton <jwe@bevo.che.wisc.edu> 30373 30374 * DLD-FUNCTIONS/sort.cc (mx_sort): Check for NaNs in comparisons. 30375 303762001-04-26 John W. Eaton <jwe@bevo.che.wisc.edu> 30377 30378 * Makefile.in (OCTAVE_LIBS): Delete $(LIBREADLINE) from the list. 30379 (octave): Delete TERMLIBS from link command. 30380 * oct-conf.h.in: Delete references to LIBREADLINE, TERMLIBS. 30381 * toplev.cc (octave_config_info): Delete entries for LIBREADLINE, 30382 TERMLIBS. 30383 303842001-04-25 John W. Eaton <jwe@bevo.che.wisc.edu> 30385 30386 * Makefile.in (install-lib): Don't use mk-libdir-link. 30387 (install-inc): Don't use mk-includedir-link. 30388 303892001-04-19 John W. Eaton <jwe@bevo.che.wisc.edu> 30390 30391 * parse.y (fold (tree_binary_expression *)): 30392 Set discard_error_messages here instead of buffer_error_messages. 30393 Don't add clear_global_error_variable to the unwind_protect stack. 30394 (fold (tree_unary_expression *)): Likewise. 30395 (finish_colon_expression): Likewise. 30396 (finish_matrix): Likewise. 30397 30398 * error.cc (panic): Set discard_error_messages to false here. 30399 (verror): Return immediately if discard_error_messages is true. 30400 30401 * error.cc (discard_error_messages): New global variable. 30402 * error.h: Provide declaration. 30403 304042001-04-18 John W. Eaton <jwe@bevo.che.wisc.edu> 30405 30406 * lex.l: If unexpected character is EOF, report EOF error instead 30407 of invalid character error. 30408 304092001-04-18 Mumit Khan <khan@nanotech.wisc.edu> 30410 30411 * load-save.cc (read_mat5_binary_element): Cast arguments to the 30412 correct type when adding stream positions. 30413 * DLD-FUNCTIONS/det.cc (det): Explicity create a Complex value to 30414 work around a Sun C++ type conversion bug. 30415 304162001-04-17 John W. Eaton <jwe@bevo.che.wisc.edu> 30417 30418 * symtab.cc (define_builtin_const): Don't call replace_all_defs 30419 here. 30420 30421 * error.cc (error_message_buffer): Now static. 30422 * error.h (error_message_buffer): Delete extern declaration. 30423 304242001-03-29 John W. Eaton <jwe@bevo.che.wisc.edu> 30425 30426 * DLD-FUNCTIONS/besselj.cc (besselh): Use K arg. 30427 From: Thomas Stuart <tstuart@ing.sun.ac.za>. 30428 30429 * oct-stream.cc (get_size): Don't allow [Inf, N] as a size 30430 specification for the read and scanf functions. 30431 (get_size): SIZE is now an Array<double> instead of a Matrix object. 30432 (read): Likewise. Change all callers. 30433 (scanf): Likewise. Change all callers. 30434 304352001-03-26 John W. Eaton <jwe@bevo.che.wisc.edu> 30436 30437 * DLD-FUNCTIONS/det.cc (Fdet): Only return rcond if nargout > 1. 30438 * DLD-FUNCTIONS/inv.cc (Finv): Only return rcond if nargout > 1. 30439 304402001-03-26 Paul Kienzle <pkienzle@kienzle.powernet.co.uk> 30441 30442 * DLD-FUNCTIONS/det.cc (Fdet): Suppress warning, but return rcond. 30443 * DLD_FUNCTIONS/inv.cc (Finv): Return rcond if requested. 30444 304452001-02-28 John W. Eaton <jwe@bevo.che.wisc.edu> 30446 30447 * pt.h (tree::break_statement): New static member. 30448 (tree::break_function): Make const. 30449 * pt.cc (tree::break_statement): Initialize here. 30450 (tree::break_function): Make const. 30451 * pb-bp.h (break_statement): Delete global variable declaration. 30452 * pt-bp.cc (break_statement): Delete global variable definition. 30453 30454 * pt-bp.h (tree_breakpoint::bp_list): Rename from lst. 30455 30456 * pt.h: Don't inlcude ov-usr-fcn.h. 30457 Provide forward declaration of octave_user_function class. 30458 304592001-02-28 Ben Sapp <bsapp@lanl.gov> 30460 30461 * debug.cc (get_user_function): Simplify by using curr_function. 30462 (Fdbg_where): New function. 30463 (Fdbg_list): Now DLD_TEXT instead of DLD_FCN. 30464 (Fdbg_set): Likewise. 30465 (Fdbg_delete): Likewise. 30466 30467 * pt-bp.h (break_statement): New global variable. 30468 (MAYBE_DO_BREAKPOINT): Check for dbg_next and dbg_step. 30469 Print line, column, and current statement. 30470 * pt-bp.cc (break_statement): New global variable 30471 (tree_breakpoint::visit_do_until_command): Return immediately if 30472 we've already found the line. 30473 (tree_breakpoint::visit_colon_expression): Set breakpoint info here. 30474 (tree_breakpoint::visit_binary_expression): Recurse here when 30475 checking for breakpoints. 30476 30477 * debug.cc: Move here from DLD-FUNCTIONS/debug.cc. 30478 * Makefile.in (DIST_SRC): Add it to the list. 30479 (DLD_XSRC): Delete it from the list. 30480 30481 * pt.h (tree::last_line, tree::break_function): New static members. 30482 * pt.cc(tree::last_line, tree::break_function): Initialize them. 30483 30484 * pt-cell.h (tree_cell::tree_cell): Accept line and column info. 30485 * pt-mat.h (tree_matrix::tree_matrix): Likewise. 30486 30487 * ov-usr-fcn.h (octave_user_function::sym_tab): Delete. 30488 30489 * input.cc (get_user_input): Handle dbg_next. 30490 Set tree:break_function and tree::last_line when doing dbg_step. 30491 304922001-02-28 John W. Eaton <jwe@bevo.che.wisc.edu> 30493 30494 * lex.l (handle_string): Save line and column information in token. 30495 (is_keyword): Save line and column information for plot style and 30496 axes tokens. 30497 30498 * toplev.cc (main_loop): Set retval to non-zero value if error 30499 occurs when not interactive. 30500 305012001-02-26 John W. Eaton <jwe@bevo.che.wisc.edu> 30502 30503 * parse.y (gobble_leading_white_space): Handle CRLF here too. 30504 * lex.l (check_for_garbage_after_fcn_def): Likewise. 30505 30506 * lex.l: Add numeric value of character to error message for 30507 unrecognized characters. 30508 305092001-02-22 John W. Eaton <jwe@bevo.che.wisc.edu> 30510 30511 * DLD-FUNCTIONS/minmax.cc (EMPTY_RETURN_CHECK): For empty matrix 30512 args, make Octave's min and max behave like Matlab. 30513 305142001-02-18 John W. Eaton <jwe@bevo.che.wisc.edu> 30515 30516 * OPERATORS/op-s-s.cc (el_or, el_and): Return bool value. 30517 305182001-02-14 John W. Eaton <jwe@bevo.che.wisc.edu> 30519 30520 * pt-binop.cc (tree_boolean_expression::rvalue): 30521 Don't cast result to double. 30522 30523 * OPERATORS/op-b-b.cc: Allow & and | operators to return bool values. 30524 305252001-02-09 John W. Eaton <jwe@bevo.che.wisc.edu> 30526 30527 * data.cc (DATA_REDUCTION): Undo previous change. 30528 305292001-02-13 Matthew W. Roberts <matt@nephi.tamu.edu> 30530 30531 * load-save.cc (Fload): Accept -4 as an alias for -v4 and -mat4-binary. 30532 (Fsave): Likewise. 30533 305342001-02-13 John W. Eaton <jwe@bevo.che.wisc.edu> 30535 30536 * lex.l (lexical_feedbac::init): 30537 Initialize looking_at_matrix_or_assign_lhs too. 30538 305392001-02-09 John W. Eaton <jwe@bevo.che.wisc.edu> 30540 30541 * data.cc (DATA_REDUCTION): Allow FCN(x,0) to be equivalent to FCN(x). 30542 305432001-02-06 Mumit Khan <khan@nanotech.wisc.edu> 30544 30545 * oct-stream.cc (octave_scan): Partially implement and specialize 30546 for char*. Delete the old template instantiations. 30547 (BEGIN_S_CONVERSION): Use strings instead of ostrstreambuf. 30548 (octave_base_stream::do_scanf): Pass correct parameter to 30549 do_scan_conv. 30550 305512001-02-05 Mumit Khan <khan@nanotech.wisc.edu> 30552 30553 * pr-output.cc (set_format): Add std:: namespace qualifier as 30554 needed. 30555 30556 * oct-stream.cc (octave_scan): Implement, and specialize for 30557 char*. Delete the old template instantiations. 30558 (BEGIN_S_CONVERSION): Use strings instead of ostrstreambuf. 30559 (octave_base_stream::do_scanf): Pass correct parameter to 30560 do_scan_conv. 30561 30562 * Makefile.in (TEMPLATE_AR, TEMPLATE_ARFLAGS): Use to create 30563 archive libraries containing templates. 30564 30565 * c-file-ptr-stream.h: Include <fstream>. Use <cstdio> instead of 30566 <stdio.h> 30567 (c_file_ptr_buf::int_type): Compat typedef for non-ISO libstdc++. 30568 (c_file_ptr_buf::{overflow, underflow, uflow, pbackfail): Use. 30569 (c_file_ptr_buf::c_file_ptr_buf): Handle various compilers. 30570 (c_file_ptr_buf::file_number): New member function. 30571 (c_file_ptr_buf::fd): New private data. 30572 (i_c_file_ptr_stream::i_c_file_ptr_stream): Initialize stream 30573 correctly. 30574 (o_c_file_ptr_stream::o_c_file_ptr_stream): Likewise. 30575 * c-file-ptr-stream.cc 30576 (c_file_ptr_buf::{overflow, underflow, uflow, pbackfail): Add 30577 ISO-compliant EOF handling. 30578 * oct-stream.cc (octave_base_stream::file_number): Use 30579 c_file_ptr_buf::file_number to get underlying file descriptor. 30580 30581 * comment-list.cc: Add missing class qualifier. 30582 30583 * file-io.cc, load-save.cc, mappers.cc, oct-fstrm.cc, oct-fstrm.h, 30584 oct-iostrm.cc, oct-iostrm.h, oct-stdstrm.cc, oct-stdstrm.h, 30585 oct-stream.cc, oct-stream.h, oct-strstrm.cc, oct-strstrm.h, 30586 ov-base-nd-array.cc, ov-base-scalar.h, ov-complex.cc, ov-cx-mat.cc, 30587 pager.cc, pr-output.cc, procstream.h, pt-bp.h, utils.cc: 30588 Add std:: namespace qualifier as needed, and replace 30589 deprecated or invalid libstdc++-v2 names with standard ones 30590 where appropriate. 30591 30592 * DLD-FUNCTIONS/minmax.cc: Fix docstring. 30593 30594 * oct-fstrm.cc (octave_fstream::octave_fstream): Maintain fix for 30595 libstdc++-v2. 30596 30597 * oct-stdstrm.cc (octave_ostdiostream::create): Remove default 30598 parameter value in definition. 30599 30600 * oct-stream.cc (octave_stream::mode_as_string): Don't assume 30601 std::iso::openmode is an integral quantity. 30602 30603 * pager.cc, procstream.h: Initialize streams correctly. 30604 30605 * utils.cc: Use CXX_ISO_COMPLIANT_LIBRARY guard. 30606 30607 * ov-base-nd-array.cc (idx_list_to_idx_array): Inline. 30608 30609 * ov-base-scalar.h (octave_base_scalar::octave_base_scalar): Use 30610 ``const ST& s'' instead of ST to workaround gcc3 complex bug. 30611 306122001-02-05 John W. Eaton <jwe@bevo.che.wisc.edu> 30613 30614 * lex.l (next_token_is_bin_op): Remove Checks for spacing except 30615 for ops that begin with +, - but are not ++, --, +=, or -=. 30616 306172001-02-02 John W. Eaton <jwe@bevo.che.wisc.edu> 30618 30619 * input.cc (get_user_input): Handle dbg_cont and dbg_step here. 30620 * debug.cc (Fdbg_cont): Delete. 30621 * pt-bp.h (MAYBE_DO_BREAKPOINT): Check tree::break_next here. 30622 * pt.h (tree::break_next): New static member. 30623 * pt.cc: Initialize it. 30624 30625 * parse.h (feval (const octave_value_list&, int)): 30626 Set default value for nargout. 30627 (feval (const std::string&, const octave_value_list&, int)): 30628 Set default values for args and nargout. 30629 306302001-02-01 Ben Sapp <bsapp@lanl.gov> 30631 30632 * DLD-FUNCTIONS/debug.cc: New file. 30633 * pt-bp.h, pt-bp.cc: New files, for breakpoints. 30634 * Makefile.in: Add them to the appropriate lists. 30635 30636 * pt-stmt.cc (tree_statement_list::set_breakpoint, 30637 tree_statement_list::delete_breakpoint, 30638 tree_statement_list::list_breakpoints): New functions. 30639 30640 * pt.h (tree::break_point): New data member. 30641 (tree::set_breakpoint, tree::delete_breakpoint, tree::is_breakpoint): 30642 New virtual functions. 30643 30644 * pt-mat.cc (tree_matrix::rvalue): Check for breakpoint here. 30645 * pt-unop.cc (tree_prefix_expression::rvalue): Likewise. 30646 (tree_postfix_expression::rvalue): Likewise. 30647 * pt-loop.cc (tree_do_until_command::eval): Likewise. 30648 (DO_LOOP): Likewise. 30649 (tree_simple_for_command::eval): Likewise. 30650 (tree_complex_for_command::eval): Likewise. 30651 * pt-assign.cc (tree_simple_assignment::rvalue): Likewise. 30652 * pt-binop.cc (tree_binary_expression::rvalue): Likewise. 30653 (tree_boolean_expression::rvalue): Likewise. 30654 * pt-cell.cc (tree_cell::rvalue): Likewise. 30655 * pt-colon.cc (tree_colon_expression::rvalue): Likewise. 30656 * pt-except.cc (tree_try_catch_command::eval): Likewise. 30657 (tree_unwind_protect_command::eval): Likewise. 30658 * pt-id.cc (tree_identifier::rvalue): Likewise. 30659 (tree_identifier::lvalue): Likewise. 30660 * pt-indir.cc (tree_indirect_ref::rvalue): Likewise. 30661 * pt-jump.cc (tree_break_command::eval): Likewise. 30662 (tree_continue_command::eval): Likewise. 30663 (tree_return_command::eval): Likewise. 30664 306652001-01-29 John W. Eaton <jwe@bevo.che.wisc.edu> 30666 30667 * Map.h, Map.cc (CHMap<C>::operator = (const CHMap&)): New function. 30668 (Map<C>::operator = (const Map&)): Likewise. 30669 (Map<C> (const Map&)): Likewise. 30670 30671 * OPERATORS/op-cm-cs.cc, OPERATORS/op-cm-s.cc, 30672 OPERATORS/op-m-cs.cc, OPERATORS/op-m-s.cc: 30673 Make ldiv operator work for row vector by scalar ops. 30674 30675 * OPERATORS/op-cs-cm.cc, OPERATORS/op-cs-m.cc, 30676 OPERATORS/op-s-cm.cc, OPERATORS/op-s-m.cc: 30677 Make div operator work for scalar by column vector ops. 30678 306792001-01-17 John W. Eaton <jwe@bevo.che.wisc.edu> 30680 30681 * parse.y (safe_fclose): Discard comments at the end of a file. 30682 306832001-01-16 John W. Eaton <jwe@bevo.che.wisc.edu> 30684 30685 * error.cc (pr_where): Call pr_where_1 with two args, not one, to 30686 avoid processing format escapes that might appear in formatted code. 30687 306882001-01-05 John W. Eaton <jwe@bevo.che.wisc.edu> 30689 30690 * error.cc (vwarning): Write to output_buf, then send formatted 30691 message to diary and error streams. 30692 306932001-01-02 John W. Eaton <jwe@bevo.che.wisc.edu> 30694 30695 * ov-cx-mat.cc (octave_complex_matrix::try_narrowing_conversion): 30696 Handle empty matrix dimensions correctly. 30697 306982000-12-14 John W. Eaton <jwe@bevo.che.wisc.edu> 30699 30700 * pager.h (octave_pager_buf::diary_skip): New data member. 30701 (octave_pager_buf::octave_pager_buf): Initialize it. 30702 * pager.cc (octave_pager_buf::set_diary_skip): New function. 30703 (octave_pager_stream::set_diary_skip): New function. 30704 (octave_pager_buf::sync): Call flush_current_contents_to_diary 30705 instead of octave_diary.write. 30706 (octave_pager_buf::flush_current_contents_to_diary): Use 30707 diary_skip, reset when done. 30708 (open_diary_file): Call octave_stdout.set_diary_skip here. 30709 307102000-12-06 John W. Eaton <jwe@bevo.che.wisc.edu> 30711 30712 * DLD-FUNCTIONS/minmax.cc (EMPTY_RETURN_CHECK): New macro. 30713 (min, max): Use it. 30714 30715 * DLD-FUNCTIONS/minmax.cc (MINMAX_BODY): New macro. If single arg 30716 is empty, return empty matrix result and empty matrix for index. 30717 (Fmin, Fmax): Use MINMAX_BODY, so we have consistent definition 30718 for min and max functions. 30719 307202000-11-30 Joerg Specht <joerg.specht@ins.uni-stuttgart.de> 30721 30722 * help.cc (display_help_text): Append new line at end of doc string. 30723 307242000-11-30 John W. Eaton <jwe@bevo.che.wisc.edu> 30725 30726 * DLD-FUNCTIONS/lsode.cc (LSODE_ABORT1, LSODE_ABORT2): Omit `##' 30727 in macro definition since they are not needed to paste strings 30728 together and picky compilers choke on them. 30729 * DLD-FUNCTIONS/quad.cc (QUAD_ABORT1, QUAD_ABORT2): Likewise. 30730 * DLD-FUNCTIONS/fsolve.cc (FSOLVE_ABORT1, FSOLVE_ABORT2): Likewise. 30731 * DLD-FUNCTIONS/dassl.cc (DASSL_ABORT1, DASSL_ABORT2): Likewise. 30732 307332000-11-29 John W. Eaton <jwe@bevo.che.wisc.edu> 30734 30735 * mkbuiltins (XDEFUNX_INTERNAL): New macro. 30736 * mkgendoc (XDEFUNX_INTERNAL): Likewise. 30737 * defun-int.h (DEFUNX_INTERNAL): Use it. 30738 30739 * defun.h (DEFUNX): New macro. 30740 * defun-int.h (DEFUNX_INTERNAL, DECLARE_FUNX): New macro. 30741 (DECLARE_FUN): Define in terms of DECLARE_FUNX. 30742 30743 * mkdefs: Read and print one line at a time, so we can force 30744 patterns to match only at the beginning of a line. 30745 30746 * defun-int.h (UNDERSCORIFY): Omit `##' in macro definition since 30747 they are not needed to paste strings together and picky compilers 30748 choke on them. 30749 307502000-11-17 John W. Eaton <jwe@bevo.che.wisc.edu> 30751 30752 * load-save.cc (save_ascii_data_for_plotting): New function. 30753 * pt-plot.cc (save_in_tmp_file): Use it instead of save_ascii_data. 30754 30755 * load-save.cc (save_ascii_data): Warn if saving Inf or NaN values. 30756 New arg, infnan_warned. Use it to warn just once per set. 30757 Now static. 30758 (do_save): New arg, infnan_warned. Pass to save_ascii_data. 30759 (save_vars): Initialize infnan_warned here, pass to do_save. 30760 307612000-11-16 Paul Kienzle <pkienzle@kienzle.powernet.co.uk> 30762 30763 * file-io.cc (Ffprintf): If no file id parameter, don't return 30764 count of characters if nargout is 0 (for compatibility with 30765 Matlab). 30766 307672000-11-16 Ben Sapp <bsapp@lanl.gov> 30768 30769 * DLD-FUNCTIONS/rand.cc (do_rand): Declare loop counter as 30770 volatile int, not just volatile. 30771 307722000-10-31 John W. Eaton <jwe@bevo.che.wisc.edu> 30773 30774 * load-save.cc (skip_comments): Allow % as comment character too. 30775 (extract_keyword): Likewise. 30776 30777 * Makefile.in (oct-gperf.h): Remove -a, -g, and -p flags for gperf. 30778 307792000-10-30 John W. Eaton <jwe@bevo.che.wisc.edu> 30780 30781 * load-save.cc (do_load): Allow result to be returned instead of 30782 inserting variables in the symbol table. Change patterned after 30783 patch by Kian Ming Adam Chai <caijianming@yahoo.co.uk>. 30784 307852000-10-27 John W. Eaton <jwe@bevo.che.wisc.edu> 30786 30787 * Makefile.in (ops.cc): Don't substitute BLAS_LIBS and LIBS here. 30788 30789 * oct-conf.h.in (OCTAVE_CONF_SPECIAL_MATH_LIB): Delete. 30790 (OCTAVE_CONF_BLAS_LIBS): Add. 30791 * toplev.cc (octave_config_info): Likewise, add BLAS_LIBS and 30792 remove SPECIAL_MATH_LIB from the struct. 30793 30794 * parse.y (feval (const octave_value_list&, int)): Don't panic 30795 while processing arg names if arg.length() and arg_names.length() 30796 differ. 30797 307982000-10-12 Paul Kienzle <pkienzle@kienzle.powernet.co.uk> 30799 30800 * ov-cell.h (octave_cell::is_cell): New function. 30801 30802 * pt-select.cc (equal): New static function. 30803 (tree_switch_case::label_matches): Use it to compare case label 30804 against arg. Handle cell arrays as case labels. 30805 308062000-10-12 John W. Eaton <jwe@bevo.che.wisc.edu> 30807 30808 Change patterned after patch by Cai Jianming 30809 <caijianming@yahoo.co.uk> to support for DIM arg in 2.0.x sources. 30810 30811 * data.cc (DATA_REDUCTION): New macro. Handle second DIM arg here. 30812 (Fcumprod): Replace function body with DATA_REDUCTION. 30813 (Fcumsum): Likewise. 30814 (Fprod): Likewise. 30815 (Fsum): Likewise. 30816 (Fsumsq): Likewise. 30817 308182000-10-10 John W. Eaton <jwe@bevo.che.wisc.edu> 30819 30820 * error.cc (pr_where_2): New function. 30821 (pr_where_1): Use it instead of error_1 to avoid setting error_state. 30822 308232000-10-02 John W. Eaton <jwe@bevo.che.wisc.edu> 30824 30825 * xdiv.cc (xdiv): Warn if execution falls through to lssolve. 30826 308272000-09-06 John W. Eaton <jwe@bevo.che.wisc.edu> 30828 30829 * utils.cc (FERRNO): New function (currently commented out). 30830 30831 * c-file-ptr-stream.cc (c_file_ptr_buf::close): Call flush here. 30832 (c_file_ptr_buf::~c_file_ptr_buf): Not here. 30833 * c-file-ptr-stream.h (c_fie_ptr_buf::close_fcn): New typedef. 30834 (c_file_ptr_buf::cf): New data member. Add default constructor arg. 30835 (class c_file_ptr_buf): Derive from filebuf, not streambuf. 30836 (i_c_file_ptr_stream, o_c_file_ptr_stream): Handle close function here. 30837 * oct-procstrm.cc (octave_iprocstream, octave_oprocstream): Likewise. 30838 (octave_iprocstream::do_close, octave_oprocstream::do_close): Delete. 30839 * oct-stdstrm.cc (octave_base_stdiostream::~octave_base_stdiostream): 30840 Don't do anything. 30841 (octave_istdiostream::create): Handle close function here. 30842 (octave_istdiostream::octave_istdiostream): Likewise. 30843 (octave_ostdiostream::create): Likewise. 30844 (octave_ostdiostream::octave_ostdiostream): Likewise. 30845 (class octave_base_stdiostream): Don't cache FILE pointer here. 30846 308472000-09-01 John W. Eaton <jwe@bevo.che.wisc.edu> 30848 30849 * syscalls.cc (Ffcntl): Don't assume that the file id passed in is 30850 the same as the underlying system file id. 30851 308522000-08-22 John W. Eaton <jwe@bevo.che.wisc.edu> 30853 30854 * parse.y: Use octave_time, not time. 30855 308562000-08-03 John W. Eaton <jwe@bevo.che.wisc.edu> 30857 30858 * oct-stream.cc (printf_value_cache::double_value): Also set 30859 curr_stat to conversion_error if there are no values at all. 30860 308612000-08-02 John W. Eaton <jwe@bevo.che.wisc.edu> 30862 30863 * dirfns.cc (Flink, Fsymlink, Freadlink): New functions. 30864 308652000-08-01 John W. Eaton <jwe@bevo.che.wisc.edu> 30866 30867 * load-save.cc (Vsave_header_format_string): New variable. 30868 (symbols_of_load_save): DEFVAR it. 30869 (save_header_format, default_save_header_format): New functions. 30870 (write_header): Use Vsave_header_format_string here. 30871 308722000-07-28 John W. Eaton <jwe@bevo.che.wisc.edu> 30873 30874 * pt-pr-code.h (tree_print_code::curr_print_indent_level, 30875 (tree_print_code::beginning_of_line): No longer static. 30876 (tree_print_code::tree_print_code): Initialize them here. 30877 * pt-pr-code.cc: Not here. 30878 30879 * pt-stmt.cc (tree_statement::eval): Set curr_statement here. 30880 (tree_statement_list::eval): Not here. 30881 30882 Debug-on-error stuff based on a patch submitted by Paul Kienzle 30883 <pkienzle@kienzle.powernet.co.uk> for 2.0.x. 30884 30885 * error.cc (Vdebug_on_warning): New static flag variable. 30886 (debug_on_warning): New function. 30887 (symbols_of_warning): DEFVAR debug_on_warning. 30888 (warning): Handle debug_on_warning here. 30889 30890 * input.cc (do_keyboard): New function. 30891 (Fkeyboard): Use it to do the real work. 30892 * pt-stmt.cc (curr_statement): New static variable. 30893 (tree_statement::eval): Save and restore it here. 30894 * error.cc (Vdebug_on_error): New static flag variable. 30895 (debug_on_error): New function. 30896 (symbols_of_error): DEFVAR debug_on_error. 30897 (pr_where, pr_where_1): New functions. 30898 (error): Handle debug_on_error here. 30899 309002000-07-20 Joao Cardoso <jcardoso@inescporto.pt> 30901 30902 * Makefile.in (octave): Link with $(LD_CXX) instead of $(CXX) 30903 309042000-07-20 John W. Eaton <jwe@bevo.che.wisc.edu> 30905 30906 * oct-stream.cc (octave_base_stream::oscanf): Advance to next 30907 format element before attempting to pick up any trailing stuff. 30908 309092000-07-17 John W. Eaton <jwe@bevo.che.wisc.edu> 30910 30911 * lex.l (next_token_is_bin_op): Don't recognize `..' as a binary op. 30912 30913 * load-save.cc (get_file_format): Call read_mat5_binary_file_header 30914 with third arg true instead of false, so we don't barf if the file 30915 is not a matlab v5 binary file. 30916 309172000-07-14 John W. Eaton <jwe@bevo.che.wisc.edu> 30918 30919 * Makefile.in (octave): Link to ../libcruft/blas-xtra/xerbla.o here. 30920 30921 * octave.cc (main): Remove kluge to attempt linking our version of 30922 xerbla. 30923 309242000-07-07 Steven G. Johnson <stevenj@alum.mit.edu> 30925 30926 * load-save.cc (have_h5giterate_bug): New file-scope variable. 30927 (hdf5_read_next_data): Only increment current_item if 30928 have_h5giterate_bug is true. 30929 (read_hdf5_data): Set have_h5giterate_bug here. 30930 Only increment hs.current_item if have_h5giterate_bug is true. 30931 309322000-07-05 John W. Eaton <jwe@bevo.che.wisc.edu> 30933 30934 * c-file-ptr-stream.cc (c_file_ptr_buf::close): 30935 Return -1 if file pointer is NULL. 30936 Set file pointer to 0 after closing. 30937 (c_file_ptr_buf::~c_file_ptr_buf): Call close after flushing. 30938 309392000-07-05 Steven G. Johnson <stevenj@alum.mit.edu> 30940 30941 * Makefile.in (BLAS_LIBS): Substitute here. 30942 (octave): Use $(BLAS_LIBS) in the final link command. 30943 309442000-06-30 Steven G. Johnson <stevenj@alum.mit.edu> 30945 30946 * Makefile.in (octave): Link $(FLIBS) last. 30947 * octave.cc (main): Force our own xerbla to be linked instead of 30948 some system version. 30949 309502000-06-29 James R. Van Zandt <jrv@vanzandt.mv.com> 30951 30952 * load-save.cc (load_save_format): New value, LS_MAT5_BINARY. 30953 (arrayclasstype, mat5_data_type): New enums. 30954 (read_mat5_binary_data): New function. 30955 (read_mat5_tag): New function. 30956 (read_mat5_binary_element): New function. 30957 (read_mat5_binary_file_header): New function. 30958 (get_file_format): Check for mat5 binary format too. 30959 (do_load): Handle mat5 binary format. 30960 (write_mat5_tag): New function. 30961 (write_mat5_array): New function. 30962 (class mat5_callback): New class. 30963 (save_mat5_binary_element): New functnon. 30964 (do_save): Handle mat5 binary format. 30965 (write_header): Handle LS_MAT5_BINARY case too. 30966 (save_user_variables): Handle LS_MAT5_BINARY case too. 30967 (Fsave): Handle LS_MAT5_BINARY case too. 30968 (Fload): Handle LS_MAT5_BINARY case too. 30969 309702000-06-29 Steven G. Johnson <stevenj@alum.mit.edu> 30971 30972 All of the following changes are protected by #ifdef HAVE_HDF5. 30973 30974 * load-save.cc (load_save_format): New value, LS_HDF5. 30975 (make_valid_identifier): New function. 30976 (class hdf5_fstreambase, class hdf5_ifstream, class hdf5_ofstream): 30977 New classes for reading and writing hdf5 data. 30978 (hdf5_types_compatible): New function. 30979 (hdf5_import_multidim): New function. 30980 (hdf5_check_attr): New function. 30981 (hdf5_read_next_data): New function. 30982 (hdf5_make_complex_type): New function. 30983 (hdf5_make_range_type): New function. 30984 (read_hdf5_data): New function. 30985 (get_file_format): Handle HDF5 format. 30986 (do_load): Handle LS_HDF5 case. 30987 (Fload): Handle HDF5 format. 30988 (hdf5_add_attr): New function. 30989 (save_type_to_hdf5): New function. 30990 (add_hdf5_data): New function. 30991 (do_save): Handle HDF5 format. 30992 (get_default_save_format): Handle LS_HDF5 case. 30993 (write_header): Handle LS_HDF5 case. 30994 (save_user_variables): Handle HDF5 format. 30995 (Fsave): Handle HDF5 format. 30996 309972000-06-28 John W. Eaton <jwe@bevo.che.wisc.edu> 30998 30999 * help.cc (display_help_text): If writing to filter fails, send 31000 unformatted text to output stream. 31001 310022000-06-27 John W. Eaton <jwe@bevo.che.wisc.edu> 31003 31004 * OPERATORS/op-bm-bm.cc (eq): Define using mx_el_eq, not operator ==. 31005 (ne): Likewise, use mx_el_ne, not operator !=. 31006 31007 * pr-output.cc (Fdisp): Delete. 31008 310092000-06-26 John W. Eaton <jwe@bevo.che.wisc.edu> 31010 31011 * pr-output.cc (float_format::float_format): Set default values 31012 for width and precision to -1. 31013 (operator << (ostream&, pr_formatted_float&): Set width and 31014 precision if values are >= 0. 31015 (set_real_format, set_real_matrix_format, set_range_format, 31016 set_complex_format, set_complex_matrix_format): If we have all 31017 integers, infinities, or nans, set precision equal to field width. 31018 31019 * load-save.cc (read_ascii_data): Allow empty strings and string 31020 vectors to be restored. 31021 31022 * variables.cc (var_matches_any_pattern): New function. 31023 (Fclear): Use it to make exclusive clear work correctly. 31024 310252000-06-08 John W. Eaton <jwe@bevo.che.wisc.edu> 31026 31027 * ov-range.h (octave_range::is_numeric_type): New function. 31028 31029 * sysdep.cc (Fkbhit): Also ask for input if forced_interactive. 31030 310312000-06-07 John W. Eaton <jwe@bevo.che.wisc.edu> 31032 31033 * Makefile.in (oct-gperf.h): Use $(GPERF) instead of gperf. 31034 310352000-05-31 John W. Eaton <jwe@bevo.che.wisc.edu> 31036 31037 * DLD-FUNCTIONS/qz.cc (Fqz): When computing finite generalized 31038 eigenvalues, don't write past the end of the array. 31039 310402000-05-11 John W. Eaton <jwe@bevo.che.wisc.edu> 31041 31042 * ov-base-nd-array.h, ov-base-nd-array.cc, ov-re-nd-array.h, 31043 ov-re-nd-array.h: New files. 31044 * Makefile.in: Add them to the appropriate lists. 31045 31046 * pt-stmt.h, pt-stmt.cc (class tree_statement): 31047 Store comments associated with this parse tree element. 31048 * pt-select.h, pt-select.cc (class tree_if_clause, 31049 class tree_if_command, class tree_switch_case 31050 class tree_switch_command): Likewise. 31051 * pt-loop.h, pt-loop.cc (class tree_while_command, 31052 class tree_do_until_command, class tree_simple_for_command, 31053 class tree_complex_for_command): Likewise. 31054 * pt-except.h, pt-except.cc (class tree_try_catch_command, 31055 class tree_unwind_protect_command): Likewise. 31056 * ov-usr-fcn.h, ov-usr-fcn.cc (class octave_user_function): Likewise. 31057 * pt-pr-code.h, pt-pr-code.cc (tree_print_code::print_comment_elt, 31058 tree_print_code::print_comment_list, 31059 tree_print_code::print_indented_comment): New functions. 31060 (tree_print_code::visit_simple_for_command, 31061 tree_print_code::visit_complex_for_command, 31062 tree_print_code::visit_octave_user_function_header, 31063 tree_print_code::visit_octave_user_function_trailer, 31064 tree_print_code::visit_if_command, tree_print_code::visit_statement, 31065 tree_print_code::visit_switch_case, 31066 tree_print_code::visit_switch_command, 31067 tree_print_code::visit_try_catch_command, 31068 tree_print_code::visit_unwind_protect_command 31069 tree_print_code::visit_while_command, 31070 tree_print_code::visit_do_until_command): Handle comments. 31071 * lex.l, parse.y: Handle comments in parse trees. 31072 * comment-list.h, comment-list.cc: New files. 31073 * Makefile.in: Add them to the appropriate lists. 31074 310752000-04-23 etienne grossmann <etienne@anonimo.isr.ist.utl.pt> 31076 31077 * pt-mat.cc (tm_row_const::tm_row_const_rep::eval_error): 31078 New args x and y, for dimension mismatch info. 31079 Change callers where appropriate. 31080 (tm_const::init): Report mismatched column dimensions. 31081 310822000-04-11 John W. Eaton <jwe@bevo.che.wisc.edu> 31083 31084 * sysdep.cc (kbhit): Also clear cin if at EOF. 31085 310862000-04-11 Joao Cardoso <jcardoso@inescn.pt> 31087 31088 * sysdep.cc (kbhit): New arg, wait. 31089 (raw_mode): Ditto. 31090 (Fkbhit): If given an arg, call kbhit with wait = false. 31091 31092 * DLD-FUNCTIONS/minmax.cc (Fmax, Fmin): Fix doc string. 31093 310942000-04-04 John W. Eaton <jwe@bevo.che.wisc.edu> 31095 31096 * dynamic-ld.cc (octave_dynamic_loader::do_load): Undo previous change. 31097 310982000-04-03 John W. Eaton <jwe@bevo.che.wisc.edu> 31099 31100 * dynamic-ld.cc (octave_dynamic_loader::do_load): Also fail with 31101 error message if we don't find the mangled function name in the 31102 file. 31103 311042000-03-31 John W. Eaton <jwe@bevo.che.wisc.edu> 31105 31106 * oct-stream.cc (printf_value_cache::string_value): Return string 31107 matrices in a Matlab-compatible way. 31108 (printf_value_cache): Redesign the way list_exhausted works. 31109 31110 * oct-fstrm.cc (octave_fstream::do_close): New function. 31111 * oct-stdstrm.cc (octave_istdiostream::do_close): Ditto. 31112 (octave_ostdiostream::do_close): Ditto. 31113 * c-file-ptr-stream.cc (c_file_ptr_buf::close): Ditto. 31114 (i_c_file_ptr_stream::close): Ditto. 31115 (o_c_file_ptr_stream::close): Ditto. 31116 * oct-prcstrm.cc (octave_iprocstream::do_close): Ditto. 31117 (octave_oprocstream::do_close): Ditto. 31118 (octave_iprocstram::~octave_iprocstram): Call do_close here. 31119 (octave_iprocstram::~octave_oprocstram): Likewise. 31120 31121 * oct-stream.h (octave_base_stream::do_close): New virtual function. 31122 (octave_base_stream::close): If stream is open, call do_close. 31123 31124 * c-file-ptr-stream.cc (c_file_ptr_buf::flush): New function. 31125 (c_file_ptr_buf::~c_file_ptr_buf): Use it. 31126 (c_file_ptr_buf::overflow): Ditto. 31127 (c_file_ptr_buf::sync): Ditto. 31128 311292000-03-30 John W. Eaton <jwe@bevo.che.wisc.edu> 31130 31131 * oct-procbuf.cc (octave_procbuf::open): Make output streams line 31132 buffered. 31133 311342000-03-24 John W. Eaton <jwe@bevo.che.wisc.edu> 31135 31136 * sighandlers.cc (my_friendly_exit): Prefix failure messages with 31137 panic instead of error. 31138 31139 * c-file-ptr-stream.cc (c_file_ptr_buf::~c_file_ptr_buf): 31140 Avoid dereferencing NULL pointer. 31141 31142 * oct-stream.cc (printf_format_list::add_elt_to_list, 31143 printf_format_list::process_conversion, 31144 printf_format_list::finish_conversion): New args, flags, fw, and prec. 31145 (printf_format_list::printf_format_list): Save more complete info. 31146 (printf_format_list::printme): Print flags, fw, and prec. 31147 (octave_base_stream::printf): Simplify. 31148 (do_printf_conv): Delete have_arg arg, since it is always true now. 31149 (octave_base_stream::do_printf): Handle case of no args and % 31150 directly instead of using do_printf_conv. 31151 (printf_value_cache::exhausted): Rename from no_more_values. 31152 (DO_PCT_CONVERSION): New macro 31153 (octave_base_streain::do_scanf, octave_base_streain::do_oscanf): 31154 Use it. 31155 (scanf_format_list::finish_conversion): `%' counts as a conversion too. 31156 Also don't forget to set type for it. 31157 (OCTAVE_SCAN_0): Delete. 31158 (OCTAVE_SCAN): Rename from OCTAVE_SCAN_1. 31159 (octave_base_stream::scanf, octave_base_stream::oscanf): Don't 31160 special-case number of conversions here. 31161 (octave_base_stream::oscanf, octave_base_stream::do_oscanf): Only 31162 cycle through fmt elements if the number of conversions is greater 31163 than 0. 31164 31165 * oct-stream.h (scanf_format_list::next): New arg, `cycle'. 31166 (printf_format_list::next): New arg, `cycle'. 31167 (printf_format_list::last_elt_p): New function. 31168 (printf_format_elt): New fields fw, prec, and flags. 31169 Define copy constructor and assignment operator. 31170 (scanf_format_elt): Define copy constructor and assignment operator. 31171 311722000-03-23 John W. Eaton <jwe@bevo.che.wisc.edu> 31173 31174 * oct-stream.cc (OCTAVE_SCAN_0, OCTAVE_SCAN_1): New macros. 31175 (do_scanf_conv, BEGIN_S_CONVERSION, BEGIN_CHAR_CLASS_CONVERSION, 31176 do_scanf, scanf, do_oscanf, do_oscanf, oscanf): Use them instead 31177 of calling istream::scan directly. 31178 (octave_scan): New function. 31179 (do_scanf_conv): Second arg is now scanf_format_elt instead of char*. 31180 Change all callers. 31181 31182 * oct-procbuf.h, oct-procbuf.cc (octave_procbuf): 31183 Derive from c_file_ptr_buf instead of filebuf. 31184 31185 * oct-stream.cc (octave_base_stream::printf): Use octave_format 31186 instead of ostream::form. Return number of characters written. 31187 311882000-03-22 John W. Eaton <jwe@bevo.che.wisc.edu> 31189 31190 * oct-stream.cc (do_printf_conv): Use octave_format instead of 31191 ostream::form. Return number of characters written. 31192 (octave_base_stream::do_printf): Return number of characters written. 31193 31194 * error.cc (verror, vwarning): Use octave_format instead of 31195 ostream::vform. 31196 31197 * utils.cc (octave_format, octave_vformat): New functions. 31198 * cutils.c (octave_snprintf, octave_vsnprintf): New functions. 31199 31200 * oct-lvalue.h (dummy_val): New static variable. 31201 (octave_lvalue::octave_lvalue): Use it to initialize val. 31202 31203 * variables.cc (is_valid_function): Look in the global symbol 31204 table for functions. 31205 312062000-03-21 John W. Eaton <jwe@bevo.che.wisc.edu> 31207 31208 * Makefile.in (LIBRARIES): Conditionally define. 31209 (libraries): Depend on $(LIBRARIES). 31210 (octave): Depend on $(LIBRARIES), not libraries. Also depend on 31211 stamp-prereq and stamp-oct-links. 31212 (all): Don't depend on stamp-prereq or stamp-oct-links. 31213 (liboctinterp.$(LIBEXT), liboctinterp.$(SHELXT)): Delete target 31214 before rebuilding. 31215 312162000-03-21 Ben Sapp <bsapp@nua.lampf.lanl.gov>: 31217 31218 * Makefile.in (libraries): Depend only on library targets, not 31219 archive members. 31220 312212000-03-17 John W. Eaton <jwe@bevo.che.wisc.edu> 31222 31223 * Makefile.in (objects): New target 31224 31225 * c_file_ptr_stream.h, c_file_ptr_stream.cc: New files. 31226 * oct-stdstrm.h, oct-stdstrm.cc, oct-prcstrm.cc: 31227 Use c_file_ptr_buf, i_c_file_ptr_stream, and o_c_fie_ptr_stream 31228 instead of stdiobuf, istdiostream, and ostdiostream. 31229 31230 * pr-output.cc (set_real_format, set_real_matrix_format, 31231 set_complex_format, set_complex_matrix_format, set_range_format): 31232 Do the right thing again for int, NaN, and Inf values. 31233 312342000-03-14 John W. Eaton <jwe@bevo.che.wisc.edu> 31235 31236 * pr-output.cc (pr_plus_format): Rename from do_plus_format. 31237 Change all callers. 31238 (pr_float, pr_complex): New arg, scale. Handle scaling here. 31239 (float_format): New class for managing details of formatting 31240 floats. Use it instead of character string formats and the 31241 nonstandard form() function from the GNU iostream library. 31242 312432000-02-23 John W. Eaton <jwe@bevo.che.wisc.edu> 31244 31245 * Makefile.in (clean): Also delete gendoc. 31246 312472000-02-18 James R. Van Zandt <jrv@vanzandt.mv.com> 31248 31249 * load-save.cc (Vcrash_dumps_octave_core): Fix comment for this var. 31250 312512000-02-18 John W. Eaton <jwe@bevo.che.wisc.edu> 31252 31253 * lex.l (handle_number): Don't transorm `[Dd]' to `e' if reading 31254 hex. 31255 312562000-02-11 John W. Eaton <jwe@bevo.che.wisc.edu> 31257 31258 * Makefile.in (install-inc): Install files in 31259 $(octincludedir)/octave. 31260 (uninstall): Remove them from the correct directory too. 31261 31262 * defaults.h, defaults.cc (Vlocal_ver_arch_lib_dir): New variable. 31263 * defaults.cc (set_default_local_ver_arch_lib_dir): New function. 31264 (install_defaults): Call it. 31265 (exec_path): Prepend the versioned form of the local arch lib 31266 directory to the standard path. 31267 * defaults.h.in (OCTAVE_LOCALVERARCHLIBDIR, 31268 OCTAVE_LOCALVERFCNFILEDIR, OCTAVE_LOCALVEROCTFILEDIR): 31269 Substitute these too. 31270 * toplev.cc (Foctave_config_info): Add them to the struct. 31271 312722000-02-08 John W. Eaton <jwe@bevo.che.wisc.edu> 31273 31274 * toplev.cc (Foctave_config_info): Add MKOCTFILE_INCFLAGS to the 31275 struct. 31276 * oct-conf.h.in (OCTAVE_CONF_MKOCTFILE_INCFLAGS): Define. 31277 312782000-02-07 John W. Eaton <jwe@bevo.che.wisc.edu> 31279 31280 * DLD-FUNCTIONS/balance.cc (Fbalance): Explicitly request 31281 conversion from Matrix to ComplexMatrix. 31282 * DLD-FUNCTIONS/qz.cc (Fqz): Likewise. 31283 31284 * ov-re-mat.h (octave_matrix::complex_matrix_value): Explicitly 31285 request conversion from Matrix type. 31286 31287 * ov-ch-mat.h (octave_char_matrix::matrix_value): Explicitly 31288 request conversion from charMatrix type. 31289 (octave_char_matrix::complex_matrix_value): Likewise. 31290 * ov-bool-mat.h (octave_bool_matrix::matrix_value): Likewise. 31291 (octave_bool_matrix::complex_matrix_value): Likewise. 31292 31293 * ov-range.h (octave_range::complex_matrix_value): Explicitly 31294 request conversion from Matrix type. 31295 31296 * ov-cx-mat.h, ov-re-mat.h: Explicitly request conversions from 31297 diagonal matrix types in constructors. 31298 31299 * mappers.cc (ximag, xreal): Return double, not Complex. 31300 31301 * error.cc (panic): Turn off buffering of error messages. 31302 Don't call flush_octave_stdout here, verror will do it for us. 31303 (verror): Don't call flush_octave_stdout if buffering error messages. 31304 31305 * pt-except.cc (tree_try_catch_command::eval): Only restore 31306 buffer_error_message value (by running the unwind_protect element 31307 for it) if it has been saved. 31308 31309 * help.cc (Ftype): Return value if nargout is NOT equal to zero. 31310 Delete unnecessary unwind_protect::begin_frame(). 31311 31312 * toplev.cc (octave_config_info): Stuff lots of new config info in 31313 the struct. 31314 31315 * oct-conf.h.in: Delete TARGET_HOST_TYPE. 31316 313172000-02-04 John W. Eaton <jwe@bevo.che.wisc.edu> 31318 31319 * siglist.c: Include <signal.h>. 31320 31321 * lex.l (is_plot_keyword): Add minimum match length in call to 31322 almost_match. 31323 31324 * Makefile.in (%.df : %.cc): Don't pass -c to compiler. 31325 313262000-02-03 John W. Eaton <jwe@bevo.che.wisc.edu> 31327 31328 * ov-base-mat.cc: Include pr-output.h here. 31329 31330 * DLD-FUNCTIONS/rand.cc (curr_rand_dist): Return const char * 31331 instead of char *. 31332 31333 * oct-fstrm.cc (octave_fstream::seek, octave_fstream::tell): 31334 Call pubseekoff instead of seekoff. 31335 31336 * DLD-FUNCTIONS/dassl.cc (print_dassl_option_list): Use stream 31337 manipulators instead of GNU iostream-specific form function. 31338 * DLD-FUNCTIONS/fsolve.cc (print_fsolve_option_list): Ditto. 31339 * DLD-FUNCTIONS/lsode.cc (print_lsode_option_list): Ditto. 31340 * DLD-FUNCTIONS/quad.cc (print_quad_option_list): Ditto. 31341 * pr-output.cc (pr_scale_header): Ditto. 31342 31343 * sighandlers.h: Include signal.h here. 31344 * sighandlers.cc: Not here. 31345 31346 * utils.cc: Include setjmp.h, not csetjmp. 31347 * toplev.cc: Ditto. 31348 31349 * sighandlers.cc: Include signal.h, not csignal. 31350 31351 * pt-plot.h: Don't include csignal. 31352 * toplev.cc: Ditto. 31353 * oct-hist.cc: Ditto. 31354 * octave.cc: Ditto. 31355 * pager.cc: Ditto. 31356 * input.cc: Ditto. 31357 * help.cc: Ditto. 31358 31359 * pt-plot.cc (send_to_plot_stream): Use operator== and substr 31360 method to do limited-length string comparison. 31361 * input.cc (generate_completion): Likewise. 31362 * ov-dld-fcn.cc (octave_dld_function::octave_dld_function): Likewise. 31363 * ov-usr-fcn.cc (octave_user_function::mark_as_system_fcn_file): 31364 Likewise. 31365 31366 * utils.cc (check_preference): Expect exact string matches. 31367 * variables.cc (ignore_function_time_stamp): Likewise. 31368 * lex.l (whitespace_in_literal_matrix): Likewise. 31369 31370 * mappers.cc (xconj, ximag, xreal): New functions. Use them in 31371 DEFUN_MAPPER calls. 31372 31373 * defun-int.h (DEFUN_MAPPER_INTERNAL): Cast function pointer args 31374 to octave_mapper constructor. 31375 313762000-02-02 John W. Eaton <jwe@bevo.che.wisc.edu> 31377 31378 * procstream.cc (procstreambase::procstreambase, 31379 procstreambase::open, procstreambase::close): 31380 Call std::ios::setstate, not set. 31381 31382 * lex.l (plot_axes_token): Declare plot_axes as const char *. 31383 Declare tmp const char **. 31384 31385 * oct-procbuf.h: Include fstream, not streambuf.h. 31386 31387 * load-save.cc (Fsave): Call pubseekoff instead of seekoff. 31388 * oct-strstrm.cc (octave_base_strstream::tell): Likewise. 31389 (octave_base_strstream::seek): Likewise. 31390 31391 * oct-stream.cc (octave_base_stream::read): Rename count to char_count. 31392 (octave_base_stream::do_gets): Likewise. 31393 31394 * octave-stream.cc (octave_base_stream::write): Rename flt_fmt to ffmt. 31395 (octave_base_stream::read): Likewise. 31396 31397 * TEMPLATE-INST/SLStack-sym.cc: Delete meaningless `extern 31398 template' declarations. 31399 * TEMPLATE-INST/Array-tc.cc: Ditto. 31400 31401 * TEMPLATE-INST/Map-fnc.cc: Don't try to instantiate goodCHptr or 31402 CHptr_to_index here. 31403 * TEMPLATE-INST/Map-tc.cc: Likewise. 31404 * Map.h (CHNode::goodCHptr, CHNode::CHptr_to_index): Now member 31405 functions. Change all callers. 31406 31407 * load-save.cc (read_binary_file_header): Declare magic_len `const'. 31408 31409 * token.h (token::token (const token&), token::operator=): 31410 Delete unnecessary definitions. 31411 31412 * oct-stream.cc (octave_stream::mode_as_string): Use 31413 std::ios::binary, not std::ios::bin. 31414 * load-save.cc (Fsave, Fload, save_user_variables): Likewise. 31415 31416 * DLD-FUNCTIONS/qz.cc (Fqz): Use Array<int> class instead of 31417 trying to create automatic int array with variable size. 31418 31419 * variables.cc (F__dump_symbol_info__): Fix continuation char. 31420 * mappers.cc (Ftoupper): Likewise. 31421 * DLD-FUNCTIONS/besselj.cc (Fairy, Fbesselj): Likewise. 31422 * DLD-FUNCTIONS/chol.cc (Fchol): Likewise. 31423 * DLD-FUNCTIONS/det.cc (Fdet): Likewise. 31424 * DLD-FUNCTIONS/eig.cc (Feig): Likewise. 31425 * DLD-FUNCTIONS/gammainc.cc (gammainc): Likewise. 31426 * DLD-FUNCTIONS/givens.cc (givens): Likewise. 31427 * DLD-FUNCTIONS/hess.cc (hess): Likewise. 31428 * DLD-FUNCTIONS/inv.cc (inv): Likewise. 31429 * DLD-FUNCTIONS/log.cc (logm): Likewise. 31430 * DLD-FUNCTIONS/lu.cc (lu): Likewise. 31431 * DLD-FUNCTIONS/qr.cc (qr): Likewise. 31432 * DLD-FUNCTIONS/schur.cc (schur): Likewise. 31433 * DLD-FUNCTIONS/balance.cc (balance): Likewise. 31434 * DLD-FUNCTIONS/svd.cc (svd): Likewise. 31435 * DLD-FUNCTIONS/syl.cc (syl): Likewise. 31436 * DLD-FUNCTIONS/expm.cc (Fexpm): Likewise. 31437 31438 * token.h (token::token_type, token::end_tok_type, 31439 token::plot_tok_type): Delete extraneous comma from enum decls. 31440 * load-save.cc (load_save_format): Likewise. 31441 31442 * pt-idx.cc (tree_index_expression::tree_index_expression): 31443 Delete default arg values. 31444 * oct-fstrm.cc (octave_fstream::octave_fstream): Likewise. 31445 * oct-stream.cc (octave_stream::octave_stream): Likewise. 31446 31447 * siglist.h, siglist.c: New files. 31448 * Makefile.in: Add them to the appropriate lists. 31449 * siglist.c (sys_siglist): Move definition here from sighandlers.cc. 31450 * siglist.h (sys_siglist): Move declaration here from sighandlers.h. 31451 31452 * ov.h, ov-bool.h, ov-bool-mat.h (bool_matrix_value): 31453 Delete unnecessary arg. 31454 31455 * ov.h (octave_value::do_multi_index_op): Rename from do_index_op. 31456 31457 * ov-fcn.h (octave_function::is_system_fcn_file): Now const. 31458 31459 * Map.cc (index_to_CHptr): Now a macro. 31460 (CHMap<C>::hash): Now a member function. 31461 31462 * defun-int.h (UNDERSCORIFY): New macro. 31463 (DEFCONST_INTERNAL, DEFCONSTX_INTERNAL): Use it. 31464 31465 * data.cc (Fis_list): Fix continuation char. 31466 * defaults.cc (IMAGEPATH): Likewise. 31467 31468 * Map.cc (CHptr_to_index, goodCHptr): Delete static decl. 31469 31470 * ov.h (unary_op, binary_op, assign_op): Prepend `op_' to elts. 31471 Change all usses 31472 31473 * All source files: Sprinkle with std:: qualifier as needed. 31474 314752000-01-31 John W. Eaton <jwe@bevo.che.wisc.edu> 31476 31477 * sighandlers.cc (install_signal_handlers): Add std:: qualifier 31478 for set_net_handler. 31479 31480 * All source files: Include iostream, fstream, strstream, 31481 etc. as needed instead of using forward declarations for these 31482 classes. 31483 314842000-01-30 John W. Eaton <jwe@bevo.che.wisc.edu> 31485 31486 * input.cc (input_event_hook, Finput_event_hook): New functions. 31487 (hook_fcn, user_data): New static variables. 31488 314892000-01-28 John W. Eaton <jwe@bevo.che.wisc.edu> 31490 31491 * pt-except.cc (do_catch_code): Don't do anything special for 31492 tree_return_command::returning, or tree_break_command::breaking. 31493 31494 * error.cc (vwarning): New function. 31495 (warning): Use it instead of calling verror. 31496 31497 * oct-stream.cc (octave_base_stream::oscanf): 31498 Result is now always nconv+1 elements. Return count of successful 31499 conversions in last element. 31500 * file-io.cc (Ffscanf, Fsscanf, Fscanf): Fix doc string. 31501 31502 * pt-except.cc (do_catch_code): Unwind-protect buffer_error_messages. 31503 Be sure to run all unwind-protects before returning. 31504 (tree_try_catch_command::eval): Add do_catch_code cleanup function 31505 to unwind-protect stack before resetting buffer_error_messages. 31506 Use unwind-protect to save and restore buffer_error_messages. 31507 If there is no catch code, discard the cleanup function and run 31508 the unwind-protect for buffer_error_messages. 31509 31510 * error.cc (bind_global_error_variable): Avoid dereferencing 31511 error_message_buffer if it is NULL. 31512 31513 * parse.y (evaluating_function_body): New global flag. 31514 * ov-usr-fcn.cc (octave_user_function::do_index_op): 31515 Protect and set it here. 31516 * parse.y (make_break_command, make_return_command): Check it here. 31517 31518 * error.cc (warning_state): New global flag. 31519 (warning): Set it here. 31520 * lex.l (reset_parser): Clear it here. 31521 * parse.y (fold): Check it here. 31522 315232000-01-27 John W. Eaton <jwe@bevo.che.wisc.edu> 31524 31525 * pt-walk.h (tree_walker::visit_do_until_command): New pure virtual. 31526 * pt-pr-code.cc (tree_print_code::visit_do_until_command): 31527 New function. 31528 * pt-loop.h (tree_do_until_command): New class. 31529 (tree_while_command::expr, tree_while_command::list): 31530 Now protected instead of private. 31531 * parse.y (make_do_until_command): New function. 31532 (loop_command): Recognize do-until statement. 31533 (DO, UNTIL): New tokens. 31534 31535 * input.cc (match_sans_spaces): Require non-blank part of test 31536 string to match standard string exactly. 31537 315382000-01-26 John W. Eaton <jwe@bevo.che.wisc.edu> 31539 31540 * oct-stream.h (scanf_format_elt::char_class): New struct elt. 31541 Add arg to constructor. 31542 (scanf_format_elt::special_conversion): New enum. 31543 * oct-stream.cc (scanf_format_list::add_elt_to_list): New arg, 31544 char_class. Pass it to scanf_format_elt constructor. 31545 (scanf_format_list::scanf_format_list): Create separate list 31546 elements for whitespace and literal conversions. 31547 (expand_char_class): New function. 31548 (scanf_format_list::finish_conversion): Extract character class 31549 (not including the delimiting brackets) and expand the list of 31550 characters. Pass the result to add_elt_to_list. 31551 (scanf_format_list::all_character_conversions): Also accept '^', 31552 scanf_format_elt::literal_conversion, and 31553 scanf_format_elt::whitespace_conversion types too. 31554 (DO_WHITESPACE_CONVERSION, BEGIN_CHAR_CLASS_CONVERSION, 31555 BEGIN_C_CONVERSION, BEGIN_S_CONVERSION, DO_LITERAL_CONVERSION): 31556 New macros. 31557 (octave_base_stream::do_scanf, octave_base_stream::do_oscanf): 31558 Use them to avoid code duplication. 31559 Handle whitespace, literal text, and character class conversions. 31560 (octave_base_stream::oscanf): Loop over all format list elements, 31561 not just the first nconv elements. Clear status flags on is for 31562 all streams. 31563 315642000-01-25 John W. Eaton <jwe@bevo.che.wisc.edu> 31565 31566 * xdiv.cc (result_ok): Just check value of info. 31567 (solve_singularity_warning): New function. 31568 (xleftdiv, xdiv): Pass pointer to solve_singularity_warning to 31569 solve function. 31570 31571 * lex.l (handle_identifier): Set next_tok_is_eq if we are looking 31572 at `=', but not if we are looking at `=='. 31573 31574 * pt-pr-code.cc (tree_print_code::visit_unwind_protect_command): 31575 Print `unwind_protect_cleanup', not `cleanup_code'. 31576 31577 * pager.cc (octave_pager_buf::flush_current_contents_to_diary): 31578 New function. 31579 (octave_pager_stream::flush_current_contents_to_diary): 31580 Ditto. 31581 (close_diary_file): Use the new octave_pager_stream function to 31582 try to flush the current buffer to the diary when it is closed. 31583 31584 * variables.cc (Fexist): Return 6 for built-in constants. 31585 31586 * pt-plot.cc (Fgshow): Don't append " " after last arg. 31587 (Fgset): Likewise. 31588 315892000-01-23 John W. Eaton <jwe@bevo.che.wisc.edu> 31590 31591 * ov-base-mat.h (octave_base_matrix::length): Return 0 for empty 31592 arrays. 31593 315942000-01-20 John W. Eaton <jwe@bevo.che.wisc.edu> 31595 31596 * DLD-FUNCTIONS/time.cc (Fstrptime): New function. 31597 31598 * load-save.cc (Fsave): Add missing else. 31599 316002000-01-17 John W. Eaton <jwe@bevo.che.wisc.edu> 31601 31602 * DLD-FUNCTIONS/gammainc.cc (Fgammainc): Texinfoize doc string. 31603 * ov-typeinfo.cc (Ftypeinfo): Ditto. 31604 * parse.y (Vwarn_future_time_stamp): Ditto. 31605 * DLD-FUNCTIONS/minmax.cc (Fmax, Fmin): Ditto. 31606 * ov-usr-fcn.cc (Fva_arg, Fva_start, Fvr_val): Ditto. 31607 * defaults.cc (VOCTAVE_HOME, Frehash): Ditto. 31608 * toplev.cc (Fwarranty, Fcasesen): Ditto. 31609 * utils.cc (Fdo_string_escapes, Ffile_in_loadpath): Ditto. 31610 * variables.cc (F__dump_symtab_info__, F__dump_symbol_info__): Ditto. 31611 * ov-list.cc (Flist, Fappend, Fnth, Freverse, Fsplice): Ditto. 31612 * input.cc (Fread_readline_init_file): Ditto. 31613 * file-io.cc (Fis_stream): Ditto. 31614 * ov-cell.cc (Fiscell, Fcell): Ditto. 31615 * pt-assign.cc (Vprint_rhs_assign_val): Ditto. 31616 * pt-decl.cc (Vinitialize_global_variables): Ditto. 31617 * symtab.cc (Vvariables_can_hide_functions): Ditto. 31618 31619 * pt-plot.cc (Fgraw, Fgset, Fgshow, Vgnuplot_command_plot, 31620 Vgnuplot_command_replot, Vgnuplot_command_splot, 31621 Vgnuplot_command_using, Vgnuplot_command_with, 31622 Vgnuplot_command_axes, Vgnuplot_command_title, 31623 Vgnuplot_command_end): Texinfoize doc strings. 31624 31625 * oct-procbuf.cc (__kluge_procbuf_delay__): Rename from 31626 kluge_procbuf_delay. Texinfoize doc string. 31627 316282000-01-13 John W. Eaton <jwe@bevo.che.wisc.edu> 31629 31630 * parse.y (gobble_leading_whitespace): Discard first space character 31631 after consecutive comment characters. 31632 * lex.l (grab_help_text): Ditto. 31633 31634 * lex.l (Vwhitespace_in_literal_matrix, Vwarn_separator_insert, 31635 Vwarn_single_quote_string): Texinfoize doc string. 31636 316372000-01-11 John W. Eaton <jwe@bevo.che.wisc.edu> 31638 31639 * ov.h, ov.cc (octave_value::column_vector_value, 31640 octave_value::row_vector_value, 31641 octave_value::complex_column_vector_value, 31642 octave_value::complex_row_vector_value): New functions. 31643 (octave_value::vector_value): Now returns Array<double>. 31644 (octave_value::complex_vector_value): Now returns Array<Complex>. 31645 Sprinkle conversions where necessary. 31646 31647 * ov.cc (Vprefer_column_vectors): Now static. 31648 * ov.h (octave_value (const ComplexRowVector&), 31649 octave_value (const ComplexColumnVector&), 31650 octave_value (const RowVector&), octave_value (const ColumnVector&)): 31651 Delete second arg. Change all callers. 31652 31653 * oct-obj.h (octave_value_list (const RowVector&), 31654 octave_value_list (const ColumnVector&), 31655 octave_value_list (const ComplexRowVector&), 31656 octave_value_list (const ComplexColumnVector&)): Likewise. 31657 * ov-cx-mat.h, ov-cx-mat.cc 31658 (octave_complex_matrix (const ComplexRowVector&), 31659 (octave_complex_matrix (const ComplexColumnVector&)): 31660 Delete second arg, simply create object with orientation 31661 corresponding to vector arg. Move constructors to class decl. 31662 * ov-re-mat.h, ov-re-mat.cc (octave_matrix (const RowVector&), 31663 (octave_matrix (const ColumnVector&)): 31664 Delete second arg, simply create object with orientation 31665 corresponding to vector arg. Move constructors to class decl. 31666 316672000-01-07 Ben Sapp <bsapp@nua.lampf.lanl.gov> 31668 31669 * mappers.cc (Fconj, Ferf, Ferfc, Fgamma, Fimag, Flgamma, Flog10, 31670 Freal, Fround): Add @seealso{...} to doc strings. 31671 316722000-01-06 John W. Eaton <jwe@bevo.che.wisc.edu> 31673 31674 * oct-stream.cc (do_scanf): Do the right thing again for character 31675 conversions. 31676 31677 * help.cc (display_help_text): Also strip out leading spaces 31678 before Texinfo @-commands before sending doc string to makeinfo. 31679 (display_help_text): Improve format of `See also' string. 31680 316812000-01-05 John W. Eaton <jwe@bevo.che.wisc.edu> 31682 31683 * help.cc (display_help_text): Pass a definition for @seealso 31684 through the filter. 31685 316861999-12-22 John W. Eaton <jwe@bevo.che.wisc.edu> 31687 31688 * lex.l (Vwarn_single_quote_string): New variable. 31689 (syms_of_lex): DEFVAR it. 31690 (warn_single_quote_string): New function. 31691 (gripe_single_quote_string): New function. 31692 Use new stuff to allow warnings for code that uses single quote 31693 characters to introduce string constants. 31694 316951999-12-20 John W. Eaton <jwe@bevo.che.wisc.edu> 31696 31697 * mkbuiltins: Add #undef quad to generated file. 31698 316991999-12-15 John W. Eaton <jwe@bevo.che.wisc.edu> 31700 31701 * lex.l (Vwarn_separator_insert): New variable. 31702 (syms_of_lex): DEFVAR it. 31703 (warn_separator_insert): New function. 31704 (maybe_warn_separator_insert): New function. 31705 Use new stuff to allow warnings for code that might result in 31706 auto-insertion of commas or semicolons, depending on the value of 31707 whitespace_in_literal_matrix. 31708 31709 * parse.y (Fsource): Record function file name here too. 31710 317111999-12-13 John W. Eaton <jwe@bevo.che.wisc.edu> 31712 31713 * variables.cc (link_to_global_variable): If the local symbol is 31714 not a variable, don't bother to clear it. Instead, just redefine 31715 it by aliasing to the global symbol. 31716 317171999-11-23 John W. Eaton <jwe@bevo.che.wisc.edu> 31718 31719 * DLD-FUNCTIONS/balance.cc (Fbalance): Texinfoize doc string. 31720 * DLD-FUNCTIONS/det.cc (Fdet): Ditto. 31721 * DLD-FUNCTIONS/eig.cc (Feig): Ditto. 31722 * DLD-FUNCTIONS/givens.cc (Fgivens): Ditto. 31723 * DLD-FUNCTIONS/inv.cc (Finv): Ditto. 31724 * DLD-FUNCTIONS/chol.cc (Fchol): Ditto. 31725 * DLD-FUNCTIONS/hess.cc (Fhess): Ditto. 31726 * DLD-FUNCTIONS/lu.cc (Flu): Ditto. 31727 * DLD-FUNCTIONS/qr.cc (Fqr): Ditto. 31728 * DLD-FUNCTIONS/schur.cc (Fschur): Ditto. 31729 * DLD-FUNCTIONS/svd.cc (Fsvd): Ditto. 31730 * DLD-FUNCTIONS/expm.cc (Fexpm): Ditto. 31731 * DLD-FUNCTIONS/log.cc (Flogm, Fsqrtm): Ditto. 31732 * DLD-FUNCTIONS/syl.cc (Fsyl): Ditto. 31733 * DLD-FUNCTIONS/pinv.cc (Fpinv): Ditto. 31734 * DLD-FUNCTIONS/qz.cc (Fqz): Ditto. 31735 * DLD-FUNCTIONS/dassl.cc (Fdassl, Fdassl_options): Ditto. 31736 * DLD-FUNCTIONS/lsode.cc (Flsode, Flsode_options): Ditto. 31737 * data.cc (Flength, Fsize, Fisempty): Ditto. 31738 * sysdep.cc (Fkbhit): Ditto. 31739 * input.cc (Fkeyboard, Finput): Ditto. 31740 * variables.cc (ans): Ditto. 31741 * pr-output.cc (Fdisp, Fformat): Ditto. 31742 * ov.cc (Vprint_answer_id_name): Ditto. 31743 * defaults.cc (IMAGEPATH): Ditto. 31744 * error.cc (Ferror, Fwarning, Fusage, error_text, beep_on_error): 31745 Ditto. 31746 * load-save.cc (Fload, Fsave, Vdefault_save_format, 31747 Vsave_precision): Ditto. 31748 * file-io.cc (Ffflush, Ffopen, Ffclose, Ffputs, Ffgetl, Ffgets, 31749 Ffprintf, Fsprintf, Fscanf, Ffscanf, Fsscanf, Ffread, Ffwrite, 31750 Ffseek, Fftell, Ffeof, Fferror, Ffreport, Ftmpnam, Vstdin_file, 31751 Vstdout_file, Vstderr_file, SEEK_SET, SEEK_CUR, SEEK_END): Ditto. 31752 * pager.cc (Vpager_binary, Vpage_output_immediately, 31753 Vpage_screen_output, Fmore): Ditto. 31754 317551999-11-21 John W. Eaton <jwe@bevo.che.wisc.edu> 31756 31757 * utils.cc (Vtreat_neg_dim_as_zero): Texinfoize doc string. 31758 * DLD-FUNCTIONS/find.cc (Ffind): Ditto. 31759 * DLD-FUNCTIONS/rand.cc (Frand, Frandn): Ditto. 31760 * DLD-FUNCTIONS/sort.cc (Fsort): Ditto. 31761 * mappers.cc (Fisinf, Fisnan, Ffinite): Ditto. 31762 * data.cc (Fall, Fany, Fdiag, Fones, Fzeros, Feye, Flinspace): Ditto. 31763 * defaults.cc (Vloadpath, Vdefault_loadpath): Ditto. 31764 * parse.y (Feval, Ffeval, Vdefault_eval_print_flag, 31765 Vwarn_missing_semicolon, Vwarn_function_name_clash, Fsource): Ditto. 31766 * ov-usr-fcn.cc (Vmax_recursion_depth, Vdefault_return_value, 31767 Vdefine_all_return_values, Vreturn_last_computed_value): Ditto. 31768 * ov.cc (Vok_to_lose_imaginary_part, Vdo_fortran_indexing, 31769 Vprefer_column_vectors, Vresize_on_range_error, 31770 Vwarn_divide_by_zero): Ditto. 31771 * pt-stmt.cc (Vsilent_functions): Ditto. 31772 * variables.cc (Vignore_function_time_stamp): Ditto. 31773 * dynamic-ld.cc (Vwarn_reload_forces_clear): Ditto. 31774 317751999-11-20 John W. Eaton <jwe@bevo.che.wisc.edu> 31776 31777 * DLD-FUNCTIONS/fft.cc (Ffft): Texinfoize doc string. 31778 * DLD-FUNCTIONS/ifft.cc (Fifft): Ditto. 31779 * DLD-FUNCTIONS/fft2.cc (Ffft2): Ditto. 31780 * DLD-FUNCTIONS/ifft2.cc (Fifft2): Ditto. 31781 * DLD-FUNCTIONS/filter.cc (Ffilter): Ditto. 31782 * DLD-FUNCTIONS/quad.cc (Fquad, Fquad_options): Ditto. 31783 * DLD-FUNCTIONS/colloc.cc (Fcolloc): Ditto. 31784 * DLD-FUNCTIONS/fsolve.cc (Ffsolve, Ffsolve_options): Ditto. 31785 * defaults.cc (Veditor): Ditto. 31786 * pt-plot.cc (Vautomatic_replot, Vgnuplot_binary, 31787 Vgnuplot_has_frames, Vgnuplot_has_multiplot, Fclearplot, 31788 Fcloseplot, Fpurge_tmp_files, Fishold, Fhold): 31789 31790 * Makefile.in (parse.cc): Expect 11 shift/reduce conflicts now. 31791 317921999-11-19 John W. Eaton <jwe@bevo.che.wisc.edu> 31793 31794 * parse.y (Vwarn_assign_as_truth_value, Vwarn_variable_switch_label): 31795 Texinfoize doc strings. 31796 31797 * DLD-FUNCTIONS/pinv.cc (Fpinv): Texinfoize doc string. 31798 31799 * defun-int.h (DEFUN_DLD_INTERNAL): New macro. 31800 * defun-dld.h [MAKE_BUILTINS] (DEFUN_DLD): Simply expand to 31801 DEFUN_DLD_INTERNAL. 31802 * mkbuiltins: Generate code to define DEFUN_DLD_INTERNAL. 31803 * mkgendoc: Likewise. 31804 31805 * Makefile.in (gendoc.o): Don't optimize when creating gendoc. 31806 (%.dc : %.cc): Delete rule. 31807 31808 * pt-decl.cc (Vdefault_global_variable_value): Texinofize doc string. 31809 * variables.cc (Fclear, Fdocument, Fexist, Fis_global, Fwho): Ditto. 31810 * help.cc (Ftype, Fwhich): Ditto. 31811 * ov.cc (Vstruct_levels_to_print, Vimplicit_str_to_num_ok): Ditto. 31812 * data.cc (Fis_struct, Fstruct_elements, Fstruct_constains): Ditto. 31813 * strfns.cc (Fisstr, Fsetstr): Ditto. 31814 * pt-mat.cc: (Fimplicit_num_to_str_ok, Fstring_fill_char): Ditto. 31815 * utils.cc (Fundo_string_escapes): Ditto. 31816 * mappers.cc: (Fisalnum, Fisalpha, Fisascii, Fiscntrl, Fisdigit, 31817 Fisgraph, Fislower, Fisprint, Fispunct, Fisspace, Fisupper, 31818 Fisxdigit, Ftoascii, Ftolower, Ftoupper): Ditto. 31819 318201999-11-18 John W. Eaton <jwe@bevo.che.wisc.edu> 31821 31822 * syscalls.cc (symbols_of_syscalls): Use DEFCONSTX to define 31823 Octave constants for C macros like O_WRONLY. 31824 31825 * oct-lvalue.cc (octave_lvalue::set_index): Disallow expressions 31826 like x(i)(j) = rhs. 31827 318281999-11-17 John W. Eaton <jwe@bevo.che.wisc.edu> 31829 31830 * symtab.cc (symbol_record::type_as_string): New function. 31831 31832 * symtab.cc (symbol_record::which): New functions. 31833 * help.cc (do_which): New functions. 31834 (Fwhich): Use them. 31835 31836 * help.cc (help_from_symbol_table, help_from_file): New functions. 31837 (builtin_help): Use them. 31838 31839 * help.cc (do_type): New function. 31840 (symbol_record::type): New function. 31841 (Ftype): Use them. 31842 31843 * help.cc (print_symbol_type): Delete. 31844 31845 * symtab.cc (symbol_table::name_list): Delete count arg. 31846 (symbol_table::symbol_list): Likewise. 31847 (symbol_table::glob): Likewise. Also return Array<symbol_record *> 31848 instead of symbol_record **. 31849 Change all callers. 31850 * help.cc (names, display_symtab_names): Delete count arg. 31851 31852 * help.cc (print_symbol_type, Ftype): No longer need to look up 31853 fcn_file_name in the loadpath. 31854 31855 * help.cc (print_symbol_type): Handle dld functions. 31856 (help_from_symbol_table, help_from_file): New functions. 31857 (builtin_help): Use them. 31858 318591999-11-16 John W. Eaton <jwe@bevo.che.wisc.edu> 31860 31861 * ov-cell.cc (Fiscell, Fcell): New Functions. 31862 (octave_cell::do_index_op): New function. 31863 31864 * utils.cc (get_dimensions): Move here from data.cc and make extern. 31865 (Vtreat_neg_dim_as_zero, treat_neg_dim_as_zero): Likewise. 31866 (symbols_of_utils): New function. 31867 31868 * data.cc (fill_matrix (const octave_value_list&, double, 31869 const char*)): New function. 31870 (Fones, Fzeros): Use it to avoid some code duplication. 31871 318721999-11-15 John W. Eaton <jwe@bevo.che.wisc.edu> 31873 31874 * pt-cell.h, pt-cell.cc, ov-cell.h, ov-cell.cc, Cell.h, Cell.cc: 31875 New files. 31876 * Makefile.in: Add them to the appropriate lists. 31877 * pt-walk.h (visit_cell (tree_cell&): New pure virtual. 31878 * pt-pr-code.cc (tree_print_code::visit_cell (tree_cell&)): New 31879 function. 31880 * TEMPLATE-INST/Array-tc.cc: Instantiate 2D arrays of octave_value 31881 objects. 31882 * pt-all.h: Include pt-cell.h. 31883 * ov.h, ov.cc (octave_value::is_cell, octave_value::cell_value): 31884 New functions. 31885 * ov-base.h, ov-base.cc (octave_value::is_cell, 31886 octave_value::cell_value): Provide defaults. 31887 * lex.h, lex.l: Handle `{' and `}' tokens (for cell arrays). 31888 (bracketflag): Rename from braceflag. 31889 (handle_close_bracket): Rename from handle_close_brace. 31890 (class bracket_brace_paren_nesting_level): Rename from 31891 brace_paren_nesting_level. 31892 (bracket_brace_paren_nesting_level::bracket, 31893 bracket_brace_paren_nesting_level::is_bracket): New functions to 31894 keep count of nesting level for `[' and `]'. 31895 (bracket_brace_paren_nesting_level::brace, 31896 bracket_brace_paren_nesting_level::is_brace): Now keeps count of 31897 nesting level for `{' and `}'. 31898 * parse.y (tree_cell_type): New type. 31899 Give '{' the same precedence and associativity as '(' and '.' 31900 (matrix_rows, matrix_rows1): Rename from rows, rows1. 31901 (cell, cell_rows, cell_rows1): New non-terminals. 31902 (cell_or_matrix_row): Rename from matrix_row. 31903 (primary_expr): Accept cell here. 31904 (postfix_expr): Allow indexing using '{' arg_list '}'. 31905 (finish_cell): New function. 31906 319071999-11-12 John W. Eaton <jwe@bevo.che.wisc.edu> 31908 31909 * utils.cc (jump_to_top_level): No longer declared extern "C". 31910 31911 * cutils.c (octave_strcasecmp, octave_strncasecmp): New functions. 31912 * utils.cc (almost_match): Call octave_strncasecmp instead of 31913 calling strncasecmp directly. 31914 319151999-11-10 John W. Eaton <jwe@bevo.che.wisc.edu> 31916 31917 * parse.y: Don't define warn_reload_forces_clear here. 31918 31919 * Makefile.in (DISTFILES): Include DOCSTRINGS. 31920 319211999-11-05 John W. Eaton <jwe@bevo.che.wisc.edu> 31922 31923 * sighandlers.cc (install_signal_handlers): Don't install 31924 sigwinch_handler. 31925 31926 * oct-iostrm.h (octave_istream::eof, octave_ostream::eof): Provide 31927 implementation for these. 31928 31929 * oct-stream.cc (octave_base_stream::do_scanf): 31930 The stdin stream is only special if we are interactive. 31931 (octave_base_stream::scanf): Ditto. 31932 (octave_base_stream::do_oscanf): Ditto. 31933 (octave_base_stream::oscanf): Ditto. 31934 31935 * ov.h (octave_value::is_stream): New predicate. 31936 * ov-file.h (octave_file::is_stream): Return true. 31937 * file-io.cc (Fis_stream): New function. 31938 31939 * ov-file.h (class octave_file): stream is now an object instead 31940 of pointer. 31941 * ov-file.cc (octave_file::print_raw): Handle stream as object 31942 instead of pointer. Also print stream status. 31943 31944 * ov-base.cc (octave_base_value::stream_value): Return object 31945 instead of pointer. 31946 31947 * ov.cc (octave_value::stream_value): Return object instead of pointer. 31948 (octave_value::octave_value (const octave_stream&)): Take const 31949 reference instead of pointer arg. 31950 31951 * TEMPLATE-INST/Array-os.cc: Instantiate Arrays of octave_stream 31952 objects, not pointers to them. 31953 31954 * OPERATORS/op-fil-b.cc: Cope with octave_stream class changes. 31955 * OPERATORS/op-fil-bm.cc: Likewise. 31956 * OPERATORS/op-fil-cm.cc: Likewise. 31957 * OPERATORS/op-fil-cs.cc: Likewise. 31958 * OPERATORS/op-fil-lis.cc: Likewise. 31959 * OPERATORS/op-fil-m.cc: Likewise. 31960 * OPERATORS/op-fil-rec.cc: Likewise. 31961 * OPERATORS/op-fil-s.cc: Likewise. 31962 * OPERATORS/op-fil-str.cc: Likewise. 31963 * file-io.cc: Likewise. 31964 * syscalls.cc (Fdup): Likewise. 31965 31966 * oct-fstrm.cc, oct-fstrm.h, oct-iostrm.cc, oct-iostrm.h, 31967 oct-prcstrm.cc, oct-prcstrm.h, oct-stdstrm.cc, oct-stdstrm.h, 31968 oct-stream.cc, oct-stream.h, oct-strstrm.cc, oct-strstrm.h: 31969 Rewrite to allow octave_stream objects to be used like values 31970 instead of having to use pointers. 31971 319721999-11-03 John W. Eaton <jwe@bevo.che.wisc.edu> 31973 31974 * oct-stream.cc (octave_base_stream::do_scanf): If it looks like 31975 we have a matching failure, then reset the failbit in the stream 31976 state. 31977 (octave_base_stream::do_oscanf): Likewise. 31978 319791999-11-02 Ben Sapp <bsapp@nua.lampf.lanl.gov> 31980 31981 * help.cc (Fhelp): Texinfoize doc string. 31982 * input.cc (Fecho, Fcompletion_matches): Ditto. 31983 * oct-hist.cc (Fedit_history, Fhistory, Frun_history): Ditto. 31984 * pager.cc (Fdiary): Ditto. 31985 * sysdep.cc (Fclc): Ditto. 31986 * toplev.cc (Fquit, Fatexit): Ditto. 31987 319881999-11-02 John W. Eaton <jwe@bevo.che.wisc.edu> 31989 31990 * lex.l (yywrap): No longer static. 31991 (have_continuation): Declare input character as int, not char, so 31992 comparison to EOF will work. 31993 319941999-11-01 John W. Eaton <jwe@bevo.che.wisc.edu> 31995 31996 * defun.cc (print_usage): Use display_help_text instead of sending 31997 help message directly to octave_stdout. 31998 319991999-10-29 John W. Eaton <jwe@bevo.che.wisc.edu> 32000 32001 * defun-dld.h (INSTALL_DLD_FCNS, INSTALL_DLD_FCN): Delete definitions. 32002 * DLD-FUNCTIONS/dassl.cc: Don't use INSTALL_DLD_FCN or 32003 INSTALL_DLD_FCNS macros. They are not necessary with the new code 32004 in dynamic-ld.cc. 32005 * DLD-FUNCTIONS/lsode.cc: Ditto. 32006 * DLD-FUNCTIONS/fsolve.cc: Ditto. 32007 * DLD-FUNCTIONS/quad.cc: Ditto. 32008 * DLD-FUNCTIONS/time.cc: Ditto. 32009 * DLD-FUNCTIONS/besselj.cc: Ditto. 32010 * DLD-FUNCTIONS/getgrent.cc: Ditto. 32011 * DLD-FUNCTIONS/getpwent.cc: Ditto. 32012 * DLD-FUNCTIONS/inv.cc: Ditto. 32013 * DLD-FUNCTIONS/log.cc: Ditto. 32014 * DLD-FUNCTIONS/minmax.cc: Ditto. 32015 * DLD-FUNCTIONS/rand.cc: Ditto. 32016 32017 * dynamic-ld.cc, dynamic-ld.h: Major rewrite to allow reloading of 32018 dynamically linked functions. 32019 32020 * symtab.cc (symbol_record::replace_all_defs): Don't allow top 32021 definition to be NULL. 32022 (symbol_table::clear): Allow dynamically linked functions to be 32023 cleared. 32024 32025 * symtab.h (TYPE): New enum value, DLD_FUCTION. 32026 (symbol_type): Now 8 bits wide. 32027 (SYMTAB_ALL_TYPES): Include DLD_FUNCTION. 32028 (symbol_record::symbol_def::is_function): Also recognize dld functions. 32029 (symbol_record::symbol_def::is_dld_function): New function. 32030 (symbol_record::is_dld_function): Ditto. 32031 32032 * defun.cc (install_dld_function): New function. 32033 * defun-int.h: Provide declaration here. 32034 (octave_dld_fcn_installer): New typedef. 32035 (DEFINE_FUN_INSTALLER_FUN): Installer function now takes an 32036 oct_shlib object as an arg. Allow installation of a function to 32037 happen more than once. 32038 32039 * octave.cc (initialize_error_handlers): Call 32040 set_liboctave_warning_handler here too. 32041 32042 * ov-builtin.h (is_builtin_function): Return true. 32043 Data member is now protected, not private. 32044 32045 * ov-fcn.h (is_dynamically_loaded_function): New predicate. 32046 (unload): New function. 32047 Data members are now protected, not private. 32048 32049 * ov.h (is_builtin_function, is_dld_function): New predicates. 32050 * ov-base.h (is_builtin_function, is_dld_function): Ditto. 32051 32052 * parse.y (Vwarn_reload_forces_clear): New static flag. 32053 (warn_reload_forces_clear): New function. 32054 (symbols_of_parse): DEFVAR warn_reload_forces_clear. 32055 32056 * variables.cc (Fclear): Look for dld functions too. 32057 32058 * ov-dld-fcn.cc, ov-dld-fcn.h: New files. 32059 * Makefile.in (OV_INCLUDES, OV_SRC): Add them to the lists. 32060 32061 * Makefile.in (DEFVAR_PATTERN): Also match DEFCONSTX. 32062 320631999-10-26 John W. Eaton <jwe@bevo.che.wisc.edu> 32064 32065 * DLList.h, DLList.cc: New files. 32066 * Makefile.in (INCLUDES, DIST_SRC): Add them to the lists. 32067 32068 * DLD-FUNCTIONS/lsode.cc (Flsode): Be sure to call 32069 unwind_protect::run_frame before returning. 32070 * DLD-FUNCTIONS/quad.cc (Fquad): Likewise. 32071 * DLD-FUNCTIONS/fsolve.cc (Ffsolve): Likewise. 32072 * DLD-FUNCTIONS/dassl.cc (Fdassl): Likewise. 32073 32074 * load-save.cc (read_mat_ascii_data): When reading from 32075 tmp_stream, check its state, not the state of is. 32076 32077 * defun-dld.h (INSTALL_DLD_FCN, INSTALL_DLD_FCNS): New macros. 32078 * DLD-FUNCTIONS/dassl.cc: Use them. 32079 * DLD-FUNCTIONS/lsode.cc: Ditto. 32080 * DLD-FUNCTIONS/fsolve.cc: Ditto. 32081 * DLD-FUNCTIONS/quad.cc: Ditto. 32082 * DLD-FUNCTIONS/time.cc: Ditto. 32083 * DLD-FUNCTIONS/besselj.cc: Ditto. 32084 * DLD-FUNCTIONS/getgrent.cc: Ditto. 32085 * DLD-FUNCTIONS/getpwent.cc: Ditto. 32086 * DLD-FUNCTIONS/inv.cc: Ditto. 32087 * DLD-FUNCTIONS/log.cc: Ditto. 32088 * DLD-FUNCTIONS/minmax.cc: Ditto. 32089 * DLD-FUNCTIONS/rand.cc: Ditto. 32090 32091 * data.cc (Flinspace): Let linspace functions handle errors. 32092 32093 * mkgendoc (print_doc_string): Handle quoted names. 32094 32095 * file-io.cc (symbols_of_file_io): Use DEFCONSTX for SEEK_SET, 32096 SEEK_CUR, and SEEK_END. 32097 32098 * defun.h (DEFCONST): Just pass name, defn, and doc to 32099 DEFCONST_INTERNAL. 32100 (DEFCONSTX): Likewise, pass name, defn, and doc to DEFCONSTX_INTERNAL. 32101 * defun-int.h [MKBUILTINS] (DEFCONST_INTERNAL): Likewise, pass 32102 name, defn, and doc to XDEFCONST_INTERNAL. 32103 [MKBUILTINS] (DEFCONSTX_INTERNAL): New macro. 32104 (INSTALL_CONST): New macro. 32105 [! MKBUILTINS] (DEFCONST_INTERNAL): Use it to handle details here. 32106 [! MKBUILTINS] (DEFCONSTX_INTERNAL): Ditto. 32107 * mkgendoc: Fix definition of XDEFCONST_INTERNAL to match. 32108 * mkbuiltins: Ditto. 32109 32110 * mkdefs: Match spaces before BEGIN_INSTALL_BUILTIN. 32111 32112 * Makefile.in (DEFUN_PATTERN): Also match DEFUN_MAPPER. 32113 321141999-10-26 Ben Sapp <bsapp@nua.lampf.lanl.gov> 32115 32116 * data.cc (VI, VInf, VJ, VNaN, Ve, Veps, Vfalse, Vi, Vinf, Vj, 32117 Vnan, Vpi, Vrealmax, Vrealmin): Texinfoize doc strings. 32118 * mappers.cc (Fabs, Facos, Facosh, Fangle, Farg, Fasin, Fasinh, 32119 Fatan, Fatanh, Fceil, Fconj, Fcos, Fcosh, Ferf, Ferfc, Fexp, 32120 Ffinite, Ffix, Ffloor, Fgamma, Fimag, Flgamma, Flog, Flog10, 32121 Freal, Fround, Fsign, Fsin, Fsinh, Fsqrt, Ftan, Ftanh): Ditto. 32122 321231999-10-23 Ben Sapp <bsapp@nua.lampf.lanl.gov> 32124 32125 * data.cc (Fis_matrix): Texinfoize doc string. 32126 * ov.cc (Vpropagate_empty_matrices): Ditto. 32127 * pt-mat.cc: (Vempty_list_elements_ok): Ditto. 32128 * pr-output.cc (Vfixed_point_format, Voutput_max_field_width, 32129 Voutput_precision, Vprint_empty_dimensions, Vsplit_long_rows): 32130 Ditto. 32131 321321999-10-22 John W. Eaton <jwe@bevo.che.wisc.edu> 32133 32134 * ov-usr-fcn.cc (octave_user_function::do_index_op): If 32135 Vmax_recursion_depth is exceeded, call unwind_protect::run_frame 32136 before returning. 32137 321381999-10-21 John W. Eaton <jwe@bevo.che.wisc.edu> 32139 32140 * cutils.c (do_octave_usleep): Handle useconds > 1e6. 32141 32142 * variables.h (is_valid_function): Provide default values for the 32143 string argument. 32144 32145 * symtab.cc (variable_reference): Maybe print warning (or error) 32146 about variables that hide functions of the same name. 32147 (symbol_record::define (const octave_value&, unsigned int)): Ditto. 32148 (Vvariables_can_hide_functions): New static variable. 32149 (variables_can_hide_functions, symbols_of_symtab): New functions. 32150 32151 * cutils.c: New file. 32152 * Makefile.in (SOURCES): Add it to the list. 32153 * utils.h: Declare octave_usleep here. 32154 * dirfns.cc (Fls): Simply all octave_usleep. 32155 * oct-procbuf.cc (octave_procbuf::open): Ditto. 32156 * sysdep.cc (Fusleep): Ditto. 32157 * toplev.cc (run_command_and_return_output): Ditto. 32158 321591999-10-20 John W. Eaton <jwe@bevo.che.wisc.edu> 32160 32161 * data.cc (make_diag (const octave_value&, const octave_value&)): 32162 Delete special cases for scalars and simply attempt conversion of 32163 first arg to a matrix value. If that fails, we will still see an 32164 error message. 32165 32166 * Makefile.in (DISTFILES): Add mkgendoc to the list. 32167 321681999-10-19 John W. Eaton <jwe@bevo.che.wisc.edu> 32169 32170 * Makefile.in (stmp-pic): New target. 32171 ($(PICOBJS)): Depend on stmp-pic, not pic. 32172 32173 * ov.h (get_rep): New function. 32174 32175 * help.cc (display_help_text): Pass definitions for VERSION, 32176 OCTAVE_HOME, and TARGETHOSTTYPE to makeinfo. 32177 32178 * DLD-FUNCTIONS/getgrent.cc: Texinfoize all doc strings. 32179 * DLD-FUNCTIONS/getpwent.cc: Ditto. 32180 * DLD-FUNCTIONS/getrusage.cc: Ditto. 32181 * DLD-FUNCTIONS/time.cc: Ditto. 32182 32183 * defaults.cc (EXEC_PATH, OCTAVE_VERSION): Texinfoize doc strings. 32184 * dirfns.cc (Fcd, Fls, Fpwd, Freaddir, Fmkdir, Frmdir, Frename, 32185 Fglob, Ffnmatch): Ditto. 32186 * file-io.cc (Fpopen, Fpclose, Fumask): Ditto. 32187 * sysdep.cc (Fgetenv, Fputenv, Fpause, Fsleep, Fusleep, Fisieee, 32188 Ftilde_expand): Ditto. 32189 * toplev.cc (Fcomputer, Fsystem, Foctave_config_info): Ditto. 32190 * utils.cc (Ffile_in_path): Ditto. 32191 * syscalls.cc (Fdup2, Fexec, Ffcntl, Ffork, Fgetpgrp, Fgetpid, 32192 Fgetppid, Fgetegid, Fgetgid, Fgeteuid, Fgetuid, Fmkfifo, Fpipe, 32193 Fstat, Funlink, Fwaitpid, F): Ditto. 32194 (Flstat): Refer to stat for doc. 32195 32196 * help.cc (looks_like_texinfo): New function. 32197 (display_help_text): Use it to see if the doc string looks like 32198 Texinfo source. If so, use makeinfo to format the text before 32199 displaying it. 32200 32201 * mkgendoc: New script. 32202 * Makefile.in: Use it to create gendoc.cc, which is compiled and 32203 run to create DOCSTRINGS file from sources. 32204 322051999-10-18 John W. Eaton <jwe@bevo.che.wisc.edu> 32206 32207 * help.cc (help_from_info): Print `unable to find info' message if 32208 try_info returns 127; otherwise, print `not indexed' message. 32209 Don't sleep after printing `not indexed' message. 32210 322111999-10-14 John W. Eaton <jwe@bevo.che.wisc.edu> 32212 32213 * parse.y (fold (tree_unary_expression *)): New function. 32214 (make_prefix_op, make_postfix_op): Use it. 32215 322161999-10-13 John W. Eaton <jwe@bevo.che.wisc.edu> 32217 32218 * Makefile.in (oct-gperf.h): Ask for ANSI-C output from gperf 32219 (requires gperf-2.7 or later). 32220 32221 * sighandlers.cc (sigwinch_handler): New function. 32222 (install_signal_handlers): Install it. 32223 32224Thu Sep 23 19:49:36 1999 John W. Eaton <jwe@bevo.che.wisc.edu> 32225 32226 * toplev.cc (Fsystem): For async case, use execl instead of 32227 system, avoiding the need to exit after executing the subprocess. 32228 32229Thu Sep 9 17:09:23 1999 John W. Eaton <jwe@bevo.che.wisc.edu> 32230 32231 * oct-stream.cc (get_size): Allow zero values. 32232 (get_size): New arg, one_elt_size_spec. 32233 (do_scanf_conv): New arg, `conv_count'. Change instantiation 32234 requests and all callers. 32235 (octave_base_stream::do_scanf): Improve scanning of strings. 32236 (octave_base_stream::do_oscanf): Remove size limit on %s conversions. 32237 32238 * oct-stream.cc (scanf_format_list::all_character_conversions): 32239 Don't count %p as a character conversion. 32240 32241Tue Sep 7 08:31:04 1999 John W. Eaton <jwe@bevo.che.wisc.edu> 32242 32243 * pr-output.cc (set_real_matrix_format, set_complex_matrix_format): 32244 Move check for fixed_point_format ahead of check for 32245 int_or_inf_or_nan. 32246 32247Thu Sep 2 11:54:51 1999 John W. Eaton <jwe@bevo.che.wisc.edu> 32248 32249 * oct-obj.cc (make_argv): Correctly handle empty strings as args. 32250 32251Fri Aug 20 08:17:52 1999 John W. Eaton <jwe@bevo.che.wisc.edu> 32252 32253 * DLD-FUNCTIONS/quad.cc (quad): Delete unused label. 32254 32255 * unwind-prot.cc (saved_variable::~saved_variable): Don't try to 32256 delete gen_ptr_value here. 32257 32258Mon Aug 16 21:34:33 1999 John W. Eaton <jwe@bevo.che.wisc.edu> 32259 32260 * lex.l (next_token_is_sep_op): New function. 32261 (handle_close_brace, maybe_unput_comma): Use it. 32262 (have_continuation): Also handle CRLF here. 32263 32264Wed Aug 11 16:06:57 1999 John W. Eaton <jwe@bevo.che.wisc.edu> 32265 32266 * file-io.cc (Ffopen): Make fopen ("filename") work and imply that 32267 MODE = "r". 32268 32269Wed Jul 21 15:38:52 1999 John W. Eaton <jwe@bevo.che.wisc.edu> 32270 32271 * help.cc (display_names_from_help_list): Sort names before 32272 listing them. 32273 (print_symbol_type, Ftype): Also handle built-in constants. 32274 (LIST_SYMBOLS): Correct call to symbol_table::name_list. 32275 (simple_help): List constants here too. List constants and 32276 variables before functions, not after. Sort names before listing 32277 them. 32278 32279 * variables.cc (do_who): Display built-in constants in a separate 32280 section. 32281 32282 * error.cc (bind_global_error_variable, clear_global_error_variable): 32283 Call bind_builtin_constant, not bind_builtin_variable to set 32284 __error_text__. 32285 * octave.cc (intern_argv): Likewise, for argv and __argv__. 32286 32287 * defun.cc (install_builtin_constant): Move function guts to 32288 bind_builtin_constant in variables.cc. 32289 * variables.cc (bind_builtin_constant): New function. 32290 32291 * symtab.cc (symbol_record::define, symbol_record::variable_reference): 32292 Handle constants the same as functions. 32293 (symbol_record::link_to_builtin_variable): New function. 32294 (symbol_record::define_builtin_const): New function. 32295 (symbol_record::define_as_fcn): Delete unused function. 32296 (symbol_record::read_only_error): 32297 Handle constants the same as variables. 32298 * symtab.h (symbol_record::BUILTIN_CONSTANT): New enum value. 32299 (symbol_record::symbol_type): Increase width to 7 bits. 32300 (symbol_record::symbol_def::is_constant): New function. 32301 (symbol_record::symbol_def::is_builtin_constant): New function. 32302 (symbol_record::is_constant): New function. 32303 (symbol_record::is_builtin_constant): New function. 32304 (SYMTAB_ALL_TYPES): Add symbol_record::BUILTIN_CONSTANT. 32305 * variables.cc (link_to_builtin_variable): Delete unused function. 32306 (link_to_builtin_or_function): Handle built-in constants here too. 32307 32308 * defun.cc (install_builtin_variable): Delete inst_as_fcn arg. 32309 (install_builtin_constant): New function. 32310 (install_builtin_variable_as_function): Delete unused function. 32311 * defun.h (DEFVAR_INTERNAL): Delete inst_as_fcn arg. 32312 (DEFCONST_INTERNAL): New macro. 32313 * defun.h (DEFVAR): Delete inst_as_fcn arg. 32314 (DEFCONST, DEFCONSTX): Define using DEFCONST_INTERNAL instead of 32315 DEFVAR_INTERNAL. 32316 * data.cc, defaults.cc, error.cc, help.cc, input.cc, lex.l, 32317 load-save.cc, oct-hist.cc, oct-procbuf.cc, ov-fcn.h, 32318 ov-usr-fcn.cc, ov.cc, pager.cc, parse.y, pr-output.cc, 32319 pt-assign.cc, pt-decl.cc, pt-mat.cc, pt-plot.cc, pt-stmt.cc, 32320 toplev.cc, variables.cc: 32321 Change all invocations of DEFVAR to match new definition. 32322 32323 * data.cc (symbols_of_data): Add DEFCONSTs for true and false. 32324 32325Thu Jul 15 10:59:42 1999 John W. Eaton <jwe@bevo.che.wisc.edu> 32326 32327 * data.cc (Fis_bool, Fis_complex, Fisempty, Fisnumeric, Fis_list, 32328 Fis_map, Fis_struct): Return bool object. 32329 (Fisreal): New function. 32330 32331 * ov-str-mat.h (octave_char_matrix_str): Only return true if 32332 Vimplicit_str_to_num_ok is also true. 32333 32334 * DLD-FUNCTIONS/time.cc (Ftime): Print usage message if any 32335 arguments are supplied. 32336 32337 * variables.cc (symbol_out_of_date): Call octave_time for time stamps. 32338 32339 * fn-cache.h (octave_fcn_file_name_cache::timestamp): 32340 Now octave_time object. 32341 32342 * strftime.c: Move to liboctave directory. 32343 * Makefile.in (DIST_SRC): Delete from list. 32344 32345 * ov-usr-fcn.h (octave_user_function::t_parsed, 32346 octave_user_function::t_checked): Now octave_time objects. 32347 (octave_user_function::time_parsed, 32348 (octave_user_function::time_checked): 32349 Return value is now octave_time object. 32350 (octave_user_function::mark_fcn_file_up_to_date)): 32351 Arg is now octave_time object. 32352 32353 * ov-fcn.h (octave_function::mark_fcn_file_up_to_date)): 32354 Arg is now octave_time object. 32355 (octave_function::time_parsed, octave_function::time_checked): 32356 Return value is now octave_time object. 32357 32358 * input.cc (Vlast_prompt_time): Now an octave_time object. 32359 (octave_gets): Call octave_time::stamp() to set Vlast_prompt_time. 32360 32361 * DLD-FUNCTIONS/time.cc (mk_tm_map, extract_tm, Ftime, Fgmtime, 32362 Flocaltime, Fmktime, Fstrftime): Use new classes defined in 32363 liboctave/oct-time.cc instead of accessing C functions directly. 32364 32365Wed Jul 14 17:38:46 1999 John W. Eaton <jwe@bevo.che.wisc.edu> 32366 32367 * systime.h: Move to liboctave directory. 32368 * Makefile.in (INCLUDES): Delete it from the list 32369 32370Tue Jul 13 14:34:57 1999 John W. Eaton <jwe@bevo.che.wisc.edu> 32371 32372 * sighandlers.cc (sigchld_handler): Only wait for processes in 32373 octave_child_list. 32374 * toplev.cc (cmd_status): Delete unused static variable. 32375 (cmd_death_handler): Delete unused function. 32376 (run_command_and_return_output): Don't add cmd_death_handler to 32377 octave_child_list. Simply extract command exit status from 32378 calling close() on the procstream object. 32379 32380Mon Jul 12 22:38:50 1999 John W. Eaton <jwe@bevo.che.wisc.edu> 32381 32382 * defun.h (DEFUN_MAPPER): Handle new args, d_b_map and c_b_map. 32383 * defun-int.h (DEFUN_MAPPER_INTERNAL): Likewise. 32384 * mappers.cc (install_mapper_functions): Supply new args to 32385 all uses of DEFUN_MAPPER. 32386 * ov-mapper.cc (octave_mapper::apply): Handle mapper functions 32387 that return bool objects. 32388 * ov-mapper.h (octave_mapper::d_b_mapper, octave_mapper::c_b_mapper): 32389 New typedefs. 32390 (octave_mapper::octave_mapper): Handle new mapper function types. 32391 32392 * DLD-FUNCTIONS/minmax.cc: Do a better job of handling NaNs. 32393 32394Sun Jul 11 13:15:17 1999 John W. Eaton <jwe@bevo.che.wisc.edu> 32395 32396 * pr-output.cc (do_plus_format (ostream&, double)): New function. 32397 (octave_print_internal (ostream&, double, bool)): Use it. 32398 (octave_print_internal (ostream&, const Matrix&, bool, int)): Ditto. 32399 32400 * pr-output.cc (do_plus_format (ostream&, const Complex&)): 32401 New function. 32402 (octave_print_internal (ostream&, const Complex&, bool)): Use it. 32403 (octave_print_internal (ostream&, const ComplexMatrix&, bool, int)): 32404 Ditto. 32405 32406Sun Jun 20 23:04:00 1999 John W. Eaton <jwe@bevo.che.wisc.edu> 32407 32408 * sysdep.cc: Include sys/ioctl.h if available. 32409 32410Sat Jun 19 12:07:16 1999 John W. Eaton <jwe@bevo.che.wisc.edu> 32411 32412 * variables.cc (do_who): Make pattern and multiple non-option 32413 arguments work. 32414 32415Mon Jun 7 09:54:51 1999 John W. Eaton <jwe@bevo.che.wisc.edu> 32416 32417 * lex.l (next_token_is_bin_op, next_token_is_postfix_unary_op, 32418 handle_number): Delete yytext arg. Change all callers. 32419 (next_token_is_postfix_unary_op): Check the first character 32420 obtained from yyinput before calling it again. 32421 (next_token_is_bin_op): Do a more thorough check. 32422 (handle_identifier): Also enter token in local symbol table if the 32423 following token is a dot and it looks like a binary operator. 32424 (whitespace_in_literal_matrix): Now static. 32425 32426 * lex.l: Always use unput, not yyunput. 32427 32428Fri May 28 11:02:37 1999 John W. Eaton <jwe@bevo.che.wisc.edu> 32429 32430 * DLD-FUNCTIONS/chol.cc (Fchol): If two output arguments, never 32431 produce error message. 32432 32433Thu May 27 18:28:35 1999 John W. Eaton <jwe@bevo.che.wisc.edu> 32434 32435 * DLD-FUNCTIONS/chol.cc (Fchol): Also return info as second output. 32436 32437 * DLD-FUNCTIONS/minmax.cc (max (const ComplexMatrix&, const 32438 ComplexMatrix&)): Correct test for real columns only. 32439 (min (const ComplexMatrix&, const ComplexMatrix&)): Likewise. 32440 32441Wed Apr 14 12:54:25 1999 John W. Eaton <jwe@bevo.che.wisc.edu> 32442 32443 * DLD-FUNCTIONS/dassl.cc (Fdassl): Prevent recursive calls. 32444 * DLD-FUNCTIONS/fsolve.cc (Ffsolve): Likewise. 32445 * DLD-FUNCTIONS/lsode.cc (Flsode): Likewise. 32446 * DLD-FUNCTIONS/quad.cc (Fquad): Likewise. 32447 32448 * file-io.cc (Fsscanf, Ffscanf): Doc fix. 32449 32450Sat Mar 27 11:07:51 1999 John W. Eaton <jwe@bevo.che.wisc.edu> 32451 32452 * ov.h (octave_value::count): New function. 32453 * symtab.cc (symbol_record::dump_symbol_info): New function. 32454 * symtab.cc (symbol_record::symbol_def::dump_symbol_info): Ditto. 32455 * variables.cc (F__dump_symbol_info__): Ditto. 32456 32457 * pt-misc.cc (tree_parameter_list::clear): New function. 32458 * ov-usr-fcn.h (octave_user_function::clear_args_passed): Ditto. 32459 * ov-usr-fcn.cc (clear_param_list): New function. 32460 (clear_args_passed): New function. 32461 (octave_user_function::do_index_op): Use them to decrement 32462 reference counts on local variables. 32463 32464Fri Mar 26 00:51:53 1999 John W. Eaton <jwe@bevo.che.wisc.edu> 32465 32466 * Makefile.in (libraries): Use the libfoo.a(objects) method of 32467 creating static libs. 32468 32469 * defaults.cc (symbols_of_defaults): Initialize LOADPATH to 32470 Vload_path, not ":". 32471 32472Thu Mar 18 12:09:23 1999 John W. Eaton <jwe@bevo.che.wisc.edu> 32473 32474 * data.cc (Fisnumeric): Fix typo. 32475 32476Thu Mar 4 02:17:04 1999 James Macnicol <jamesm@evans.ee.adfa.oz.au> 32477 32478 * file-io.cc (Ffread, Ffwrite): Add uint16 and uint32 data types 32479 to doc string. 32480 32481Wed Mar 3 11:55:17 1999 John W. Eaton <jwe@bevo.che.wisc.edu> 32482 32483 * lex.l (handle_string): Allow "" to pass through unchanged if 32484 working on a gset command. 32485 32486Tue Mar 2 01:36:29 1999 John W. Eaton <jwe@bevo.che.wisc.edu> 32487 32488 * variables.cc (Fexist): If a variable isn't defined, only go on 32489 to look for a global by the same name if we are at the top level. 32490 32491Fri Jan 29 02:18:36 1999 John W. Eaton <jwe@bevo.che.wisc.edu> 32492 32493 * version.h (OCTAVE_NAME_AND_VERSION): Say `GNU Octave', not just 32494 Octave. 32495 32496Thu Jan 28 21:29:16 1999 John W. Eaton <jwe@bevo.che.wisc.edu> 32497 32498 * toplev.cc (Fcomputer): Use CANONICAL_HOST_TYPE, not TARGET_HOST_TYPE. 32499 (octave_config_info): Likewise. 32500 * version.h: Ditto. 32501 32502 * sysdep.cc (Fpause): Flush output before getting user input. 32503 32504Wed Jan 27 14:18:29 1999 John W. Eaton <jwe@bevo.che.wisc.edu> 32505 32506 * Makefile.in (DEFFUN_PATTERN, DEFVAR_PATTERN): Use egrep again. 32507 Make the patterns work with stupid egreps that don't like empty 32508 elements in alternation patterns. 32509 32510Fri Jan 22 04:41:48 1999 John W. Eaton <jwe@bevo.che.wisc.edu> 32511 32512 * load-save.cc (save_ascii_data): Check for string type first, 32513 then range, then the rest. 32514 (save_binary_data): Ditto. 32515 32516 * pager.cc (more_than_a_screenful): Accept length as second arg. 32517 Handle long lines properly, assuming the terminal wraps long lines. 32518 (octave_pager_buf::do_sync): Accept length of data as second arg. 32519 Use write instead of << to put characters on output stream. 32520 (octave_pager_buf::sync): Don't assume data ends at first NUL. 32521 (octave_diary_buf::sync): Ditto. 32522 32523Thu Jan 21 22:15:23 1999 John W. Eaton <jwe@bevo.che.wisc.edu> 32524 32525 * load-save.cc (save_mat_binary_data): Check for string type 32526 first, then range, then the rest. 32527 32528Wed Jan 20 12:01:14 1999 John W. Eaton <jwe@bevo.che.wisc.edu> 32529 32530 * oct-stream.cc (octave_base_stream::do_scanf): Handle short and 32531 long ints correctly. 32532 32533Fri Jan 15 13:04:58 1999 John W. Eaton <jwe@bevo.che.wisc.edu> 32534 32535 * parse.y (end_error): Handle case of endswitch too. 32536 32537 * Makefile.in: Use basic regular expressions and grep instead of 32538 egrep to find files that contain DEFVAR, DEFCONST, or DEFUN. 32539 32540Wed Dec 9 14:14:11 1998 John W. Eaton <jwe@bevo.che.wisc.edu> 32541 32542 * Makefile.in (octave): Add $(RDYNAMIC_FLAG) to link command. 32543 32544Fri Dec 4 20:26:33 1998 John W. Eaton <jwe@bevo.che.wisc.edu> 32545 32546 * DLD-FUNCTIONS/time.cc (Fstrftime): Make it work even when not 32547 using the GNU version of strftime, which allows passing NULL for 32548 the buffer to determine the required size of the buffer. 32549 32550Wed Dec 2 22:38:40 1998 John W. Eaton <jwe@bevo.che.wisc.edu> 32551 32552 * utils.cc (file_in_loadpath): Expect argc == 2, not 3. 32553 32554Tue Nov 24 23:38:19 1998 Eric Norum <eric@skatter.USask.Ca> 32555 32556 * mkbuiltins: Also strip off leading `./' from file names. 32557 * mkops: Ditto. 32558 32559Tue Nov 24 23:24:26 1998 John W. Eaton <jwe@bevo.che.wisc.edu> 32560 32561 * strftime.c: Surround everything with #ifdef HAVE_STRFTIME / #endif. 32562 32563 * lex.h (YY_FATAL_ERROR): Call yy_falta_error after 32564 jump_to_top_level to avoid gcc warning. 32565 32566Fri Nov 20 13:34:47 1998 John W. Eaton <jwe@bevo.che.wisc.edu> 32567 32568 * ov-bool.h, ov-bool.cc (class octave_bool): Derive from 32569 octave_base_scalar and get common functions via derivation. 32570 * ov-scalar.h, ov-scalar.cc (class octave_scalar): Ditto. 32571 * ov-complex.h, ov-complex.cc (class octave_complex): Ditto. 32572 32573 * ov-base-scalar.h, ov-base-scalar.cc (class octave_base_scalar): 32574 New files for new class definition. Put common scalar data type 32575 stuff here. 32576 * Makefile.in (OV_INCLUDES, OV_SRC): Add them to the lists. 32577 32578Thu Nov 19 14:30:25 1998 John W. Eaton <jwe@bevo.che.wisc.edu> 32579 32580 * dynamic-ld.cc (octave_dynamic_loader::mangle_name): 32581 Prepend underscore here. 32582 (octave_dynamic_loader::load_fcn_from_dot_oct_file): Not here. 32583 32584 * ov-re-mat.h (octave_matrix_value): Delete experimental code for 32585 handling structure references for things like .rows, .cols, etc. 32586 32587Wed Nov 18 01:18:46 1998 John W. Eaton <jwe@bevo.che.wisc.edu> 32588 32589 * Makefile.in (VAR_FILES): Be more careful about matching. 32590 (DEF_FILES): Likewise. 32591 32592 * ov-base-mat.h, ov-base-mat.cc, ov-bool-mat.h, ov-bool-mat.cc, 32593 ov-ch-mat.h, ov-ch-mat.cc, ov-cx-mat.h, ov-cx-mat.cc, 32594 ov-re-mat.h, ov-re-mat.cc: Move default definition of all, any, 32595 is_matrix_type, is_numeric_type, valid_as_zero_index, and 32596 do_index_op to base class. 32597 Provide definitions that override the defaults where necessary. 32598 32599 * mappers.cc: Don't include lo-specfun.h. 32600 32601Tue Nov 17 14:35:56 1998 John W. Eaton <jwe@bevo.che.wisc.edu> 32602 32603 * besselj.cc (Fbesselh, Fairy); New functions. 32604 (Fbesselj, Fbessely, Fbesselk, Fbesseli): Update doc strings. 32605 (do_bessel): Handle additional args. 32606 32607Fri Nov 13 14:47:11 1998 John W. Eaton <jwe@bevo.che.wisc.edu> 32608 32609 * lex.l (NUMBER): Allow hexadecimal constants. 32610 (looks_like_hex): New function. 32611 (handle_number): Check for hexadecimal constants and convert them 32612 to unsigned integer values. 32613 32614Thu Nov 12 11:13:24 1998 John W. Eaton <jwe@bevo.che.wisc.edu> 32615 32616 * input.cc (gnu_readline): Check for EOF from command_editor::readline. 32617 32618 * ov-str-mat.h, ov-str-mat.cc (class octave_char_matrix_str): 32619 Get common functions via new derivation scheme. 32620 32621 * ov-bool-mat.h, ov-bool-mat.cc (class octave_bool_matrix): 32622 Derive from octave_base_matrix and get common functions via derivation. 32623 * ov-ch-mat.h, ov-ch-mat.cc (class octave_char_matrix): Ditto. 32624 * ov-cx-mat.h, ov-cx-mat.cc (class octave_complex_matrix): Ditto. 32625 * ov-re-mat.h, ov-re-mat.cc (class octave_real_matrix): Ditto. 32626 32627 * ov-base-mat.h, ov-base-mat.cc (class octave_base_matrix): New 32628 files for new class definition. Put common matrix data type 32629 stuff here. 32630 32631 * ov-list.cc (Fnth): New function. 32632 32633 * ov-list.cc (octave_list::do_index_op): Allow more complex indexing. 32634 32635 * oct-obj.cc (octave_value_list::index): New function. 32636 (octave_value_list::octve_value_list (Array<octave_value>)): 32637 New private constructor. 32638 32639 * ov-list.cc (Fsplice): Fix docstring to match. 32640 * oct-obj.cc (octave_value_list::splice): Allow special case 32641 splice (x, length(x)+1, 0, y) to be equivalent to append (x, y). 32642 32643 * ov-list.cc (Fappend): If an arg is a list, concatenate the lists 32644 instead of appending arg as a single element. 32645 32646Wed Nov 11 14:07:27 1998 John W. Eaton <jwe@bevo.che.wisc.edu> 32647 32648 * load-save.cc (get_mat_data_input_line): New function. 32649 (get_lines_and_columns): Use it here. 32650 (read_mat_ascii_data): And here and do our own reading instead of 32651 using Matrix::operator<<. 32652 32653Tue Nov 10 16:12:25 1998 John W. Eaton <jwe@bevo.che.wisc.edu> 32654 32655 * parse.y (make_constant): Initialize retval to 0. 32656 32657 * toplev.h (clean_up_and_exit (void)): Delete declaration. 32658 * toplev.cc (do_octave_atexit): Move guts of clean_up_for_exit 32659 here, but ensure that the actions are only executed once. 32660 * octave.cc (main): Don't register cleanup_tmp_files with atexit. 32661 32662 * ov.h, ov.cc (class octave_value): Use DECLARE_OCTAVE_ALLOCATOR 32663 and DEFINE_OCTAVE_ALLOCATOR for uniform declaration and definition 32664 of allocator functions. Use DECLARE_OV_TYPEID_FUNCTIONS_AND_DATA 32665 and DEFINE_OV_TYPEID_FUNCTIONS_AND_DATA for uniform declaration 32666 and definition of type id functions and data. 32667 * ov-usr-fcn.h, ov-usr-fcn.cc (class octave_user_function): Ditto. 32668 * ov-scalar.h, ov-scalar.cc (class octave_scalar): Ditto. 32669 * ov-re-mat.h ov-re-mat.cc (class octave_matrix): Ditto. 32670 * ov-range.h, ov-range.cc (class octave_range): Ditto. 32671 * ov-mapper.h, ov-mapper.cc (class octave_mapper): Ditto. 32672 * ov-list.h, ov-list.cc (class octave_list): Ditto. 32673 * ov-file.h, ov-file.cc (class octave_file): Ditto. 32674 * ov-fcn.h, ov-fcn.cc (class octave_function): Ditto. 32675 * ov-cx-mat.h, ov-cx-mat.cc (class octave_complex_matrix): Ditto. 32676 * ov-complex.h, ov-complex.cc (class octave_complex): Ditto. 32677 * ov-ch-mat.h, ov-ch-mat.cc (octave_char_matrix): Ditto. 32678 * ov-builtin.h, ov-builtin.cc (class octave_builtin): Ditto. 32679 * ov-bool.h, ov-bool.cc (class octave_bool): Ditto. 32680 * ov-bool-mat.h, ov-bool-mat.cc (octave_bool_matrix): Ditto. 32681 32682 * ov.h (DECLARE_OV_TYPEID_FUNCTIONS_AND_DATA): New macro. 32683 (DEFINE_OV_TYPEID_FUNCTIONS_AND_DATA): Ditto. 32684 32685Mon Nov 9 16:12:37 1998 John W. Eaton <jwe@bevo.che.wisc.edu> 32686 32687 * pr-output.cc (octave_print_internal): Reorder default args for 32688 charMatrix version. 32689 (octave_print_internal): New function for boolMatrix. 32690 32691 * version.h (OCTAVE_STARTUP_MESSAGE): Note that this is a 32692 development release. 32693 32694 * toplev.cc (do_octave_atexit): Call flush_octave_stdout here. 32695 (clean_up_for_exit): And here. 32696 32697Mon Nov 9 15:20:53 1998 John W. Eaton <jwe@bevo.che.wisc.edu> 32698 32699 * input.cc (get_user_input): Check retval.length(), not retval.length. 32700 32701Sun Nov 8 19:30:33 1998 John W. Eaton <jwe@bevo.che.wisc.edu> 32702 32703 * pt-assign.cc (tree_simple_assignment::rvalue): If etype is 32704 asn_eq, don't evaluate ult again because retval is just rhs value. 32705 (tree_multi_assignment::rvalue): Likewise. 32706 32707Fri Nov 6 12:14:29 1998 John W. Eaton <jwe@bevo.che.wisc.edu> 32708 32709 * pt-loop.cc (tree_for_command::eval): Move code for string RHS 32710 outside if clause for matrix types. 32711 32712 * pt-idx.cc: Don't forget to define arg_nm. 32713 Move contstructor here. 32714 * pt-idx.h: From here. 32715 32716 * data.cc (Fisempty): Also return true for empty strings. 32717 32718Wed Nov 4 17:21:41 1998 John W. Eaton <jwe@bevo.che.wisc.edu> 32719 32720 * ov-base.cc (octave_base_value::rows, octave_base_value::columns, 32721 octave_base_value::length): Delete. 32722 * ov-base.h (octave_base_value::rows, octave_base_value::columns, 32723 octave_base_value::length): Define here. All return -1 if not 32724 defined in a derived class. 32725 32726 * data.cc (Fis_matrix): Also return true if the arg is a range. 32727 32728Tue Nov 3 09:40:24 1998 John W. Eaton <jwe@bevo.che.wisc.edu> 32729 32730 * data.cc (Fis_bool): New function. 32731 Also add alias for islogical. 32732 32733 * ov.h (octave_value::is_bool_type): New function. 32734 * ov-base.h (octave_base_value::is_bool_type): Likewise. 32735 * ov-bool.h (octave_bool::is_bool_type): Likewise. 32736 * ov-bool-mat.h (octave_bool_matrix::is_bool_type): Likewise. 32737 32738Mon Nov 2 13:36:04 1998 John W. Eaton <jwe@bevo.che.wisc.edu> 32739 32740 * lex.l (handle_close_brace): Also handle case of ']' followed by 32741 other assignment ops (+=, -=, ...). 32742 32743 * pt-assign.cc (tree_simple_assignment::rvalue): Correctly handle 32744 return value and printing for operators other than `='. 32745 (tree_multi_assignment::rvalue): Likewise. 32746 32747 * pt-assign.h (tree_multi_assignment::etype): New data member. 32748 * pt-assign.cc (tree_multi_assignment::rvalue): Use it instead of 32749 assuming `='. 32750 (tree_multi_assignment::oper): New function. 32751 * pt-pr-code.cc (tree_print_code::visit_multi_assignment): Use 32752 it instead of always printing `='. 32753 * parse.y (make_assign_op): Pass expression type to 32754 tree_multi_assignment constructor. 32755 32756 * Makefile.in (stmp-pic): New target. 32757 ($(PICOBJ)): Depend on stmp-pic, not pic. 32758 (clean): Delete stmp-pic. 32759 32760Sun Nov 1 23:24:55 1998 John W. Eaton <jwe@bevo.che.wisc.edu> 32761 32762 * mappers.cc (install_mapper_functions): Add alias for isfinite. 32763 32764Sat Oct 31 08:46:55 1998 John W. Eaton <jwe@bevo.che.wisc.edu> 32765 32766 * data.cc (Fisnumeric): New function. 32767 32768Fri Oct 30 08:39:30 1998 John W. Eaton <jwe@bevo.che.wisc.edu> 32769 32770 * oct-lvalue.cc (octave_lvalue::do_unary_op): Make it work for 32771 indexed ops too. 32772 * ov.cc (octave_value::unary_op_to_assign_op): New function. 32773 (octave_value::do_non_const_unary_op): New function for indexed ops. 32774 32775 * parse.y (LEFTDIV_EQ, ELEFTDIV_EQ): New tokens. 32776 (assign_expr): Add rules for them. 32777 (make_assign_op): Handle them here too. 32778 * lex.l: Recognize them. 32779 * ov.h (octave_value::assign_op): Add ldiv_eq and el_ldiv_eq. 32780 * ov.cc (octave_value::assign_op_as_string): Ditto. 32781 (octave_value::op_eq_to_binary_op): Ditto. 32782 (octave_value::assign): Handle OP= style operators with brute force. 32783 (octave_value::simple_assign): New function. 32784 32785 * parse.y (matrix): Dont' forget to reset 32786 lexer_flags.looking_at_matrix_or_assign_lhs. 32787 32788 * oct-lvalue.cc (octave_lvalue::assign): Don't call change 32789 function if error occurs. 32790 (octave_lvalue::do_unary_op): If we have an index, fail with message. 32791 32792Thu Oct 29 09:27:04 1998 John W. Eaton <jwe@bevo.che.wisc.edu> 32793 32794 * ov.cc (do_binary_op): Protect against invalid type conversions. 32795 (try_assignment_with_conversion): Likewise. 32796 (do_unary_op): Likewise. 32797 32798 * ov.h (OV_UNOP_FN, OV_UNOP_OP, OV_UNOP_FN_OP): New macros. 32799 Use them to define not, uminus, transpose, hermitian functions 32800 and operators ! and -. 32801 (OV_BINOP_FN, OV_BINOP_OP, OV_BINOP_FN_OP): New macros. 32802 Use them to define add, sub, mul, div, pow, ldiv, lshift, rshift, 32803 lt, le, eq, ge, gt, ne, el_mul, el_div, el_pow, el_ldiv, el_and, 32804 el_or, struct_ref, functions and operators <, <=, ==, >=, >, !=, 32805 +, -, *, and /. 32806 32807 * ops.h (CONVDECLX): New macro. 32808 * ov-base.cc (matrix_conv, complex_matrix_conv, string_conv): 32809 Use it to declare these functions. 32810 32811 * ops.h (CONVDECL, INSTALL_WIDENOP): 32812 Prefix function name with `oct_conv_'. 32813 (INSTALL_BINOP, BINOPDECL): Prefix function name with `oct_binop_'. 32814 (INSTALL_ASSIGNOP, INSTALL_ASSIGNANYOP, ASSIGNOPDECL): 32815 Prefix function name with `oct_assignop_'. 32816 (UNOPDECL, DEFNCUNOP_METHOD, INSTALL_UNOP, INSTALL_NCUNOP): 32817 Prefix function name with `oct_unop_'. 32818 32819 * ov-str-mat.cc (default_numeric_conversion_function): 32820 Return 0 if conversion fails. 32821 32822 * parse.y (make_prefix_op, make_postfix_op): Use 32823 octave_value::unary_op enum. 32824 32825 * pt-unop.cc (tree_prefix_expression::rvalue): Use new unary_op 32826 functions from octave_value and octave_lvalue classes. 32827 (tree_prefix_expression::rvalue): Likewise. 32828 32829 * pt-unop.cc (tree_unary_expression::oper): Move here. 32830 (tree_prefix_expression::oper, tree_postfix_expression): From here. 32831 32832 * pt-unop.h (tree_prefix_expression, tree_postfix_expression): 32833 Delete enums. 32834 (tree_unary_expression): Use octave_value::unary_op enum. 32835 * parse.y (make_prefix_op, make_postfix_op): Likewise. 32836 32837 * oct-lvalue.h (octave_lvalue::do_unary_op): New function. 32838 (octave_lvalue::increment, octave_lvalue::decrement): Delete. 32839 32840 * ov-typeinfo.h (octave_value_typeinfo::non_const_unary_ops): 32841 New data member. 32842 * ov-typeinfo.h (octave_value_typeinfo::lookup_non_const_unary_op): 32843 New function. 32844 * ov-typeinfo.cc (octave_value_typeinfo::register_non_const_unary_op): 32845 New function. 32846 (octave_value_typeinfo::do_register_non_const_unary_op): Ditto. 32847 (octave_value_typeinfo::do_lookup_non_const_unary_op): Ditto. 32848 32849 * ov.cc (octave_value::do_non_const_unary_op): New function. 32850 32851 * Makefile.in (OP_XSRC): Add op-chm.cc and op-range.cc to the list. 32852 32853 * OPERATORS/op-str-str.cc: Define string matrix unary operators here. 32854 (install_str_str_ops): Install them here. 32855 * ov-bool-mat.h (octave_bool_matrix::transpose, 32856 octave_bool_matrix_value::hermitian): Delete. 32857 32858 * OPERATORS/op-chm.cc: New file. Define char matrix unary operators. 32859 (install_chm_ops): Install them here. 32860 * ov-ch-mat.h (octave_char_matrix::transpose, 32861 octave_char_matrix_value::hermitian): Delete. 32862 * ops.cc (install_ops): Call install_chm_ops. 32863 32864 * OPERATORS/op-bm-bm.cc: Define bool matrix unary operators here. 32865 (install_bm_bm_ops): Install them here. 32866 * ov-bool-mat.h (octave_bool_matrix::transpose, 32867 octave_bool_matrix_value::hermitian): Delete. 32868 32869 * ov-bool.h (octave_bool::not, octave_bool::uminus, 32870 octave_bool::transpose, octave_bool::hermitian): Delete. 32871 32872 * OPERATORS/op-cs-cs.cc: Define complex scalar unary operators here. 32873 (install_cs_cs_ops): Install them here. 32874 * ov-complex.h (octave_complex::not, octave_complex::uminus, 32875 octave_complex::transpose, octave_complex::hermitian): Delete. 32876 32877 * OPERATORS/op-cm-cm.cc: Define complex matrix unary operators here. 32878 (install_cm_cm_ops): Install them here. 32879 * ov-cx-mat.h (octave_complex_matrix::not, 32880 octave_complex_matrix::uminus, octave_complex_matrix::transpose, 32881 octave_complex_matrix::hermitian): Delete. 32882 32883 * OPERATORS/op-m-m.cc: Define matrix unary operators here. 32884 (install_m_m_ops): Install them here. 32885 * ov-re-mat.h (octave_matrix::not, octave_matrix::uminus, 32886 octave_matrix::transpose, octave_matrix::hermitian): Delete. 32887 32888 * OPERATORS/op-range.cc: New file. Define range unary operators. 32889 (install_range_ops): Install them here. 32890 * ov-range.h (octave_range::not, octave_range::uminus, 32891 octave_range::transpose, octave_range::hermitian): Delete. 32892 * ops.cc (install_ops): Call install_range_ops. 32893 32894 * OPERATORS/op-s-s.cc: Define scalar unary operators here. 32895 (install_s_s_ops): Install them here. 32896 * ov-scalar.h (octave_scalar::not, octave_scalar::uminus, 32897 octave_scalar::transpose, octave_scalar::hermitian): Delete. 32898 32899 * ops.h (INSTALL_UNOP, CAST_UNOP_ARG, UNOPDECL, DEFUNOPX, DEFUNOP, 32900 DEFUNOP_OP, DEFUNOP_FN): New macros. 32901 32902 * ov.h (unary_op_fcn): New typedef. 32903 (octave_value::unary_op): New enum. 32904 * ov.cc (octave_value::octave_value): New function. 32905 32906 * ov.h (octave_value::not, octave_value::uminus, 32907 octave_value::transpose, octave_value::hermitian, 32908 octave_value::increment, octave_value::decrement): Delete. 32909 32910 * ov-base.cc (octave_base_value::not, octave_base_value::uminus, 32911 octave_base_value::transpose, octave_base_value::hermitian, 32912 octave_base_value::increment, octave_base_value::decrement): Delete. 32913 32914 * ov.cc (gripe_unary_op): New function. 32915 (do_unary_op): New function. 32916 * ov-typeinfo.h (octave_value_typeinfo::unary_ops): 32917 New data member. 32918 * ov-typeinfo.cc (octave_value_info::register_unary_op, 32919 octave_value_info::do_register_unary_op, 32920 octave_value_info::lookup_unary_op, 32921 octave_value_info::do_lookup_unary_op): 32922 New functions. 32923 32924 * ov-list.cc (Fsplice): Use new octave_value::int_value function here. 32925 (octave_list::do_index_op): Likewise. 32926 (octave_list::assign): Likewise. 32927 * toplev.cc (Fquit): Likewise. 32928 * syscalls.cc (Fwaitpid): Likewise. 32929 (Ffcntl): Likewise. 32930 * file-io.cc (do_fread): Likewise. 32931 (do_fwrite): Likewise. 32932 * data.cc (make_diag): Likewise. 32933 (Fsize): Likewise. 32934 (get_dimensions): Likewise. 32935 (Flinspace): 32936 32937 * ov-base.cc (octave_base_value::int_value): New function. 32938 (octave_base_value::nint_value): Ditto. 32939 * ov.h (octave_value::int_value): Ditto. 32940 (octave_value::nint_value): Ditto. 32941 32942 * ov-list.cc (octave_list::assign): Fix off-by-one error. 32943 32944Wed Oct 28 11:01:37 1998 John W. Eaton <jwe@bevo.che.wisc.edu> 32945 32946 * load-save.cc (read_mat_ascii_data): Try harder to convert file 32947 name to valid variable name. 32948 32949 * data.cc (Fisempty, Fis_matrix): New functions. 32950 32951 * ov-str-mat.h (octave_char_matrix_str::is_matrix_type): New function. 32952 32953 * OPERATORS/op-list.cc: New file. 32954 * Makefile.in (OP_XSRC): Add it to the list. 32955 32956 * ov-list.cc (octave_list::assign): New function. 32957 32958 * ov-typeinfo.h (octave_value_typeinfo::assignany_ops): 32959 New data member. 32960 * ov-typeinfo.cc (octave_value_info::register_assignany_op, 32961 octave_value_info::do_register_assignany_op, 32962 octave_value_info::lookup_assignany_op, 32963 octave_value_info::do_lookup_assignany_op): 32964 New functions. 32965 * ov.cc (octave_value::try_assignment (octave_value::assign_op, 32966 const octave_value_list&, const octave_value&)): If no assignment 32967 operator for particular RHS type exists, try finding one for 32968 generic octave_value as RHS type. 32969 * ops.h (DEFASSIGNANYOP_FN): New macro. 32970 32971 * ov-list.cc (Fsplice): New function. 32972 * oct-obj.cc (octave_value_list::splice): New function. 32973 32974 * ov.cc (Vresize_on_range_error): No longer static. 32975 * ov.h (Vresize_on_range_error): Provide extern declaration. 32976 32977 * oct-procbuf.cc (symbols_of_oct_procbuf): Don't declare static. 32978 32979 * data.cc (Flength): New function. 32980 * ov.h (octave_value::length): New virtual function. 32981 * ov-base.cc (octave_base_value::length): New function. 32982 (octave_base_value::rows, octave_base_value::columns): Move 32983 definitions here, from ov-base.h. Don't return -1. Instead, 32984 gripe about wrong argument type. 32985 * ov-bool-mat.h (octave_bool_matrix::length): New function. 32986 * ov-bool.h (octave_bool::length): Ditto. 32987 * ov-ch-mat.h (octave_char_matrix::length): Ditto. 32988 * ov-complex.h (octave_complex::length): Ditto. 32989 * ov-cx-mat.h (octave_complex_matrix::length): Ditto. 32990 * ov-list.h (octave_list::length): Ditto. 32991 * ov-range.h (octave_range::length): Ditto. 32992 * ov-re-mat.h (octave_matrix::length): Ditto. 32993 * ov-scalar.h (octave_scalar::length): Ditto. 32994 32995Tue Oct 27 22:19:24 1998 John W. Eaton <jwe@bevo.che.wisc.edu> 32996 32997 * ov-list.cc (octave_list::print_raw): Handle case of empty list. 32998 (octave_list::print_name_tag): Likewise. 32999 33000 * octave.cc (intern_argv): Built-in variable argv is now a list of 33001 strings instead of a string vector. 33002 Always bind argv, making it an empty list if there are no args. 33003 33004Mon Oct 26 08:41:46 1998 John W. Eaton <jwe@bevo.che.wisc.edu> 33005 33006 * xdiv.cc (mx_leftdiv_conform): Explicitly declare args to be 33007 passed as references to const objects. Fix explicit instantiation 33008 requests to match. 33009 (mx_div_conform): Likewise. 33010 33011 * pt-unop.h (tree_prefix_expression): Reorder constructor args to 33012 put those with default values last. 33013 (tree_postfix_expression): Likewise. 33014 * parse.y: Change all callers. 33015 33016Fri Oct 23 12:07:32 1998 John W. Eaton <jwe@bevo.che.wisc.edu> 33017 33018 * utils.cc (Ffile_in_loadpath): New function. 33019 33020 * defaults.cc (Vload_path, Vdefault_load_path): Now static. 33021 33022 * help.cc (simple_help): Use Vload_path_dir_path here instead of 33023 trying to reconstruct it from Vload_path. 33024 * fn-cache.cc (octave_fcn_file_name_cache::do_list): Likewise. 33025 (octave_fcn_file_name_cache::update): Likewise. 33026 33027 * defaults.cc (octave_loadpath): Construct Vload_path_dir_path 33028 using Vdefault_load_path. 33029 (set_default_path): Likewise. 33030 33031 * defaults.h, defaults.cc (maybe_add_default_load_path): Delete. 33032 33033 * defaults.cc (Vdefault_load_path): New static variable. 33034 (set_default_path): Set it. 33035 (maybe_add_default_load_path): Use it. 33036 (symbols_of_defaults): Add DEFCONST for DEFAULT_LOADPATH. 33037 Thanks to Rafael Laboissiere <rafael@icp.inpg.fr>. 33038 33039 * defaults.cc (set_default_path): If OCTAVE_PATH is set in the 33040 environment, call maybe_add_default_load_path on it. 33041 33042Tue Oct 20 20:58:04 1998 John W. Eaton <jwe@bevo.che.wisc.edu> 33043 33044 * defaults.cc (maybe_add_default_load_path): If LOADPATH contains 33045 an embedded "::", insert the default path there too. 33046 33047Fri Oct 16 00:52:15 1998 John W. Eaton <jwe@bevo.che.wisc.edu> 33048 33049 * parse.y (in_matrix_or_assign_lhs): New subroutine for lexical 33050 feedback. 33051 (matrix): Use it. 33052 (assign_lhs): Ditto. 33053 * lex.h (lexical_feedback::looking_at_matrix_or_assign_lhs): New 33054 data member. 33055 * lex.l (handle_identifier): Use it to handle keywords like `cd' 33056 as variables in contexts like [ab, cd] = foo (). 33057 33058 * ov-str-mat.h 33059 (octave_char_matrix_str::octave_char_matrix_str (char c)): 33060 New constructor. 33061 * ov-ch-mat.h (octave_char_matrix::octave_char_matrix (char c)): 33062 New constructor. 33063 * ov.cc (octave_value::octave_value (char c): New constructor. 33064 33065 * pt-loop.cc (tree_simple_for_command::eval): Handle case of RHS 33066 as string. 33067 33068Thu Oct 15 00:56:47 1998 John W. Eaton <jwe@bevo.che.wisc.edu> 33069 33070 * DLD-FUNCTIONS/rand.cc: Declare Fortran subroutines as returning 33071 int, not int*. 33072 33073Wed Oct 14 23:51:31 1998 Georg Thimm <thimm@idiap.ch> 33074 33075 * load-save.cc (Vcrash_dumps_octave_core): New static variable. 33076 (save_user_variables): Only save variables if 33077 Vcrash_dumps_octave_core is true. 33078 (symbols_of_load_save): Add DEFVAR for it here. 33079 (crash_dumps_octave_core): New function. 33080 * octave.cc (maximum_braindamage): Bind crash_dumps_octave_core to 33081 0.0 here. 33082 33083Tue Oct 13 22:05:55 1998 John W. Eaton <jwe@bevo.che.wisc.edu> 33084 33085 * input.cc (read_readline_init_file): New function. 33086 33087Thu Oct 8 13:47:55 1998 John W. Eaton <jwe@bevo.che.wisc.edu> 33088 33089 * oct-procbuf.h (octave_procbuf::wstatus): New data member. 33090 Initialize in constructors. 33091 (octave_procbuf::wait_status): New member function. 33092 * oct-procbuf.cc (octave_procbuf::sys_close): Use class data 33093 member wstatus, not local variable. 33094 * procstream.cc (procstreambase::close): Don't call sys_close directly. 33095 Get subprocess exit status by calling wait_status for our procbuf. 33096 * pt-plot.cc (close_plot_stream): Send "quit" command to gnuplot 33097 before deleting plot_stream. 33098 33099Thu Oct 1 22:39:44 1998 John W. Eaton <jwe@bevo.che.wisc.edu> 33100 33101 * data.cc (Fis_complex): New function. 33102 33103Fri Sep 25 11:50:44 1998 John W. Eaton <jwe@bevo.che.wisc.edu> 33104 33105 * load-save.cc (write_header): Rename from write_binary_header. 33106 Also write header for Octave ASCII files. 33107 33108 * load-save.cc (Fsave): Implement -append option. 33109 33110 * defaults.cc (Frehash): New function. 33111 33112Fri Sep 25 11:50:44 1998 John W. Eaton <jwe@bevo.che.wisc.edu> 33113 33114 * help.cc (help_from_info): Improve error message in case that 33115 info doesn't work. 33116 33117Thu Sep 24 10:48:12 1998 John W. Eaton <jwe@bevo.che.wisc.edu> 33118 33119 * Makefile.in (DLD_XSRC): Replace qzval.cc with qz.cc 33120 33121 * DLD-FUNCTIONS/balance.cc: Update from A. S. Hodel 33122 <scotte@eng.auburn.edu>. 33123 33124 * DLD-FUNCTIONS/qz.cc: New file. 33125 33126 * DLD-FUNCTIONS/qzval.cc: Delete. 33127 33128 * parse.y (plot_command1): Don't allow it to be empty. 33129 (plot_command): Handle simple `PLOT' and `PLOT ranges' as special 33130 cases here. 33131 33132Wed Sep 23 21:10:08 1998 John W. Eaton <jwe@bevo.che.wisc.edu> 33133 33134 * lex.l: Change <MATRIX>{SNLCMT}*\n{SNLCMT}* pattern 33135 to <MATRIX>{S}*{COMMENT}{SNLCMT}* | <MATRIX>{S}*{NL}{SNLCMT}*. 33136 33137Fri Sep 4 10:50:00 1998 John W. Eaton <jwe@bevo.che.wisc.edu> 33138 33139 * file-io.cc (Ffwrite): Fix doc string. 33140 33141Wed Sep 2 16:22:23 1998 John W. Eaton <jwe@bevo.che.wisc.edu> 33142 33143 * input.cc (match_sans_spaces): Make it work. 33144 33145 * toplev.cc (quit): Require nargout == 0. 33146 33147 * input.cc (get_user_input): Only try matching "exit", "quit", and 33148 "return" if debugging. 33149 33150Tue Sep 1 12:50:24 1998 John W. Eaton <jwe@bevo.che.wisc.edu> 33151 33152 * octave.cc: Use -H as single character equivalent of --no-history. 33153 33154Sat Aug 29 12:23:12 1998 John W. Eaton <jwe@bevo.che.wisc.edu> 33155 33156 * oct-obj.cc (octave_value_list::make_argv): If some values are 33157 string vectors, insert all the elements, not just the first. 33158 33159Tue Aug 18 16:39:50 1998 John W. Eaton <jwe@bevo.che.wisc.edu> 33160 33161 * oct-stream.cc (octave_base_stream::do_gets): Accept last line of 33162 file even if it doesn't end in a newline character. 33163 33164Tue Aug 18 16:25:49 1998 Mumit Khan <khan@xraylith.wisc.edu> 33165 33166 * xdiv.cc (mx_leftdiv_conform, mx_div_conform): Instantiate correct 33167 templates. 33168 33169Thu Jul 30 00:37:43 1998 John W. Eaton <jwe@bevo.che.wisc.edu> 33170 33171 * pt-loop.cc (tree_for_command::eval): Check for range first. 33172 If error occurs when extracting matrix value, return early. 33173 Don't bother to check for string type. 33174 33175 * ov-ch-mat.h (octave_char_matrix::is_real_matrix): New function. 33176 33177Tue Jun 23 15:09:54 1998 John W. Eaton <jwe@bevo.che.wisc.edu> 33178 33179 * parse.y (clear_current_script_file_name): New function. 33180 (parse_fcn_file): Bind current_script_file_name while script is 33181 executing. Use unwind_protect to clear it once the script is 33182 finished. 33183 33184 * pt-plot.cc (Fgraw): New function. 33185 33186Mon Jun 22 22:13:38 1998 John W. Eaton <jwe@bevo.che.wisc.edu> 33187 33188 * variables.cc (is_valid_function): Provide version that takes 33189 function name as string. 33190 33191 * parse.y (binary_expr): Fix thinko that resulted in incorrect 33192 evaluation of -x^y. Thanks to Richard Allan Holcombe 33193 <raholcom@unity.ncsu.edu>. 33194 (feval): Don't attempt to copy nonexistent arg names. 33195 33196Mon Jun 22 21:35:50 1998 Richard Allan Holcombe <raholcom@unity.ncsu.edu> 33197 33198 * xpow.cc (xpow): Improve efficiency for matrix^(scalar int) case. 33199 33200Thu Jun 4 12:42:46 1998 John W. Eaton <jwe@bevo.che.wisc.edu> 33201 33202 * ov-usr-fcn.cc (octave_user_function::octave_all_va_args): 33203 If num_args_passed < num_named_args, create zero length list. 33204 33205Thu May 14 16:23:15 1998 John W. Eaton <jwe@bevo.che.wisc.edu> 33206 33207 * DLD-FUNCTIONS/getrusage.cc: Include sys/types.h too. 33208 33209Mon May 11 00:38:45 1998 John W. Eaton <jwe@bevo.che.wisc.edu> 33210 33211 * pager.cc (Fdiary): Don't forget to set write_to_diary file if 33212 just given a file name. 33213 33214 * input.cc (octave_gets): Only send new line character to 33215 octave_diary if current_input_line is empty or doesn't already end 33216 with a new line character.. 33217 Don't send input from function files or scripts to octave_diary. 33218 33219Sun May 3 19:54:38 1998 John W. Eaton <jwe@bevo.che.wisc.edu> 33220 33221 * lex.l (reset_parser): Also call yyrestart if forced_interactive 33222 is true, but not if input_from_startup_file is true. 33223 33224Tue Apr 28 14:06:20 1998 John W. Eaton <jwe@bevo.che.wisc.edu> 33225 33226 * oct-procbuf.cc (Vkluge_procbuf_delay): New static variable. 33227 (kluge_procbuf_delay): New function. 33228 (symbols_of_oct_procbuf): New function. 33229 (octave_procbuf::open): Delay Vkluge_procbuf_delay microseconds 33230 after forking. 33231 33232Thu Apr 23 15:41:08 1998 John W. Eaton <jwe@bevo.che.wisc.edu> 33233 33234 * defaults.cc (Vload_path_dir_path): New variable. 33235 * utils.cc (file_in_path): Use it. 33236 33237 * utils.cc (search_path_for_file): Undo previous change. 33238 (file_in_path): Undo previous change. 33239 * defaults.cc (loadpath): Undo previous change. Tilde expansion 33240 is once again handled correctly by the code in 33241 liboctave/pathsearch.cc. 33242 33243Mon Apr 20 21:50:34 1998 John W. Eaton <jwe@bevo.che.wisc.edu> 33244 33245 * data.cc (get_dimensions): Allow zeros ([], 3) to work, for 33246 compatibility with Matlab. 33247 33248 * dynamic-ld.cc [WITH_DL && ! HAVE_DLFCN_H]: Add declarations for 33249 dlopen, dlerror, dlsym, and dlclose. 33250 33251 * octave.gperf: Handle __FILE__ and __LINE__. 33252 * lex.l (is_keyword): Likewise. 33253 * Makefile.in (oct-gperf.h): Pass -D option to gperf. 33254 Postprocess output of gperf to convert name of static variable 33255 from lookup to gperf_lookup, to avoid conflict with our function 33256 of the same name defined in variables.cc. 33257 33258Sat Apr 18 20:17:10 1998 John W. Eaton <jwe@bevo.che.wisc.edu> 33259 33260 * help.cc (USE_GNU_INFO): Delete uses of this macro. 33261 33262Thu Apr 16 01:00:12 1998 John W. Eaton <jwe@bevo.che.wisc.edu> 33263 33264 * dynamic-ld.cc: Only include dlfcn.h if HAVE_DLFCN_H. 33265 33266Wed Apr 15 01:03:05 1998 John W. Eaton <jwe@bevo.che.wisc.edu> 33267 33268 * input.cc (Vlast_prompt_time): New global variable. 33269 (octave_gets): Set it. 33270 * ov-fcn.h (octave_function::time_checked): New virtual function 33271 (octave_function::mark_fcn_file_up_to_date): Ditto. 33272 * ov-usr-fcn.h (octave_user_function::time_checked): New function. 33273 (octave_user_function::mark_fcn_file_up_to_date): Ditto. 33274 (octave_user_function::t_checked): New data member. 33275 * variables.cc (symbol_out_of_date): Only check file time stamp if 33276 a prompt has been printed since the last time check. 33277 33278 * pt-plot.h, pt-plot.cc (subplot_axes): New class. 33279 (subplot): Handle axes. 33280 (Vgnuplot_command_axes): New static variable. 33281 (gnuplot_command_axes): New function. 33282 (symbols_of_pt_plot): DEFVAR gnuplot_command_axes. 33283 * pt-walk.h (tree_walker::visit_subplot_axes): New virtual function. 33284 * parse.y (plot_options): Handle axes. 33285 * lex.l (plot_axes_token): New function. 33286 (is_keyword): Use it. 33287 (is_plot_keyword): Recognize "axes" and "axis". 33288 * lex.h (class lexical_feedback): New field, in_plot_axes. 33289 (lexical_feedback::init): Reset it. 33290 33291Tue Apr 14 23:32:27 1998 John W. Eaton <jwe@bevo.che.wisc.edu> 33292 33293 * parse.y (parse_fcn_file): New arg, force_script. Change callers. 33294 33295Fri Apr 10 11:01:27 1998 John W. Eaton <jwe@bevo.che.wisc.edu> 33296 33297 * help.cc (type): Also print values of variables. 33298 33299Wed Apr 8 01:00:58 1998 John W. Eaton <jwe@bevo.che.wisc.edu> 33300 33301 * pr-output.cc (set_format): Set scale to 1.0 if all elements are 33302 int or inf or nan. 33303 33304 * parse.y (Vwarn_future_time_stamp): New variable. 33305 (symbols_of_parse): Add DEFVAR for it. 33306 (warn_future_time_stamp): New function. 33307 (frob_function_def): Maybe warn about files with future time stamps. 33308 33309Thu Apr 2 20:43:45 1998 John W. Eaton <jwe@bevo.che.wisc.edu> 33310 33311 * pt-arg-list.cc (tree_argument_list::convert_to_const_vector): In 33312 error messages, print element numbers starting with 1, not 0. 33313 33314Sat Mar 28 15:25:44 1998 John W. Eaton <jwe@bevo.che.wisc.edu> 33315 33316 * toplev.cc (clean_up_for_exit): New function. 33317 (clean_up_and_exit): Use it. 33318 * sighandlers.cc (my_friendly_exit): Call it instead of 33319 clean_up_and_exit, then do default action for signal. 33320 33321 * sighandlers.cc (octave_new_handler): Call my_friendly_exit with 33322 signal set to SIGABRT if it is defined, or -1 otherwise. 33323 33324 * error.cc (verror): Fix thinko in attempt to skip `error: ' tag 33325 when buffering error messages. 33326 * pt-except.cc (tree_try_catch::eval): Reset buffer_error_messages 33327 here if just discarding unwind_protect frame. 33328 33329Wed Mar 18 12:35:18 1998 John W. Eaton <jwe@bevo.che.wisc.edu> 33330 33331 * xpow.cc (elem_xpow): For real-scalar .^ matrix case, result is 33332 complex only if real-scalar is negative and matrix has some 33333 non-integer values. 33334 33335Tue Mar 17 17:47:50 1998 John W. Eaton <jwe@bevo.che.wisc.edu> 33336 33337 * pt-plot.cc (Vgnuplot_command_plot, Vgnuplot_command_replot, 33338 Vgnuplot_command_splot, Vgnuplot_command_using, 33339 Vgnuplot_command_with, Vgnuplot_command_title, 33340 Vgnuplot_command_end): New static variables. 33341 (symbols_of_pt_plot): DEFVAR them. 33342 (gnuplot_command_plot, gnuplot_command_replot, 33343 gnuplot_command_splot, gnuplot_command_using, 33344 gnuplot_command_with, gnuplot_command_title, 33345 gnuplot_command_end): New functions. 33346 (open_plot_stream, send_to_plot_stream, tree_plot_command::eval, 33347 subplot_using::print, subplot_style::print, subplot::print, 33348 do_external_plotter_cd, Fgset, Fgshow): Use them instead of the 33349 GPLOT_CMD_PLOT, GPLOT_CMD_REPLOT, GPLOT_CMD_SPLOT, 33350 GPLOT_CMD_USING, GPLOT_CMD_WITH, GPLOT_CMD_TITLE, and 33351 GPLOT_CMD_END macros. 33352 33353Fri Feb 27 12:25:27 1998 John W. Eaton <jwe@bevo.che.wisc.edu> 33354 33355 * help.cc (additional_help_message): Fix www address. 33356 33357Tue Feb 24 00:42:59 1998 John W. Eaton <jwe@bevo.che.wisc.edu> 33358 33359 * help.cc (simple_help): Put additional help message first. 33360 (additional_help_message): Add information about web site and 33361 mailing list. 33362 33363Fri Feb 20 00:41:06 1998 John W. Eaton <jwe@bevo.che.wisc.edu> 33364 33365 * pt-plot.cc (GPLOT_CMD_REPLOT): Clear before replot. 33366 33367 * Makefile.in: Better handling of lib flags for linking. 33368 33369Thu Feb 19 21:14:30 1998 John W. Eaton <jwe@bevo.che.wisc.edu> 33370 33371 * pt-decl.cc (Vinitialize_global_values): New static variable. 33372 (initialize_global_variables): New function. 33373 (symbols_of_pt_decl): New function. 33374 DEFVAR Vinitialize_global_values and initialize_global_variables. 33375 (tree_global_command::do_init): If initialize_global_variables is 33376 not true and the variable doesn't have an explicit initializer, don't 33377 initialize it. If we are giving it a default value, use the value 33378 of the variable defualt_global_variable_value. 33379 * octave.cc (maximum_braindamage): Set default_global_variable_value 33380 and initialize_global_variables to Matlab-compatible values. 33381 33382Wed Feb 18 04:35:31 1998 John W. Eaton <jwe@bevo.che.wisc.edu> 33383 33384 * DLD-FUNCTIONS/besselj.cc: Rename from bessel.cc. 33385 * Makefile.in (DLD_XSRC): Likewise. 33386 33387 * syscalls.cc (Fvfork): Delete. 33388 33389 * oct-procbuf.cc: Just use fork. 33390 33391 * parse.y (feval): Provide version that takes function name 33392 separate from other args. 33393 * parse.h: Declare it. 33394 33395 * oct-procbuf.cc (octave_procbuf::open): Move declaration of 33396 child_std_end outside of child scope and declare volatile. 33397 33398Mon Feb 16 15:04:28 1998 John W. Eaton <jwe@bevo.che.wisc.edu> 33399 33400 * parse.y: Include cstdio, for SEEK_SET. 33401 33402Thu Feb 12 22:07:00 1998 John W. Eaton <jwe@bevo.che.wisc.edu> 33403 33404 * system.c: New file. 33405 * Makefile.in (SOURCES): Add it to the list. 33406 33407Fri Feb 6 01:23:18 1998 John W. Eaton <jwe@bevo.che.wisc.edu> 33408 33409 * oct-stream.cc (octave_base_stream::file_number): Rename from fileno. 33410 Change all uses. 33411 33412 * fsolve.cc (fsolve_option_table): Add missing & to function names. 33413 33414Thu Feb 5 02:27:18 1998 John W. Eaton <jwe@bevo.che.wisc.edu> 33415 33416 * dirfns.cc (Fls): If first attempt at reading process output 33417 fails, sleep once and try again. 33418 * toplev.cc (run_command_and_return_output): Likewise. 33419 33420 * oct-procbuf.cc (octave_procbuf::open): Use vfork if it is available. 33421 33422 * syscalls.cc (Fvfork): New function. 33423 33424 * ov-bool-mat.cc: Only declare assign function if 33425 CXX_NEW_FRIEND_TEMPLATE_DECL is not defined. 33426 33427 * ov-base.h, ov-bool-mat.h, ov-bool.h, ov-ch-mat.h, ov-complex.h, 33428 ov-cx-mat.h, ov-range.h, ov-re-mat.h, ov-scalar.h: Handle default 33429 args for *_value functions consistently. 33430 33431 * symtab.cc (maybe_list_cmp_fcn): Declare args as void*, not 33432 void**, then use X_CAST. 33433 33434 * OPERATORS/op-s-cm.cc: Include mx-cm-s.h. 33435 33436 * defun-int.h: Include ov-builtin.h, ov-mapper.h, and symtab.h. 33437 (install_builtin_mapper, install_builtin_function, 33438 install_builtin_variable) Use specific types rather than void * in 33439 declaration. 33440 * defun.cc (install_builtin_mapper, install_builtin_function, 33441 install_builtin_variable): Likewise. Eliminate casts. 33442 33443 * load-save.cc (read_binary_data, read_mat_file_header, 33444 save_binary_data): Use X_CAST, not static_cast. 33445 * unwind-prot.h (unwind_protect::save_ptr): Likewise. 33446 * Map.cc (goodCHptr, index_to_CHptr, CHptr_to_index): Likewise. 33447 * dynamic-ld.cc (octave_dlopen_dynamic_loder::resolve_reference): 33448 Likewise. 33449 33450 * pt-mat.cc (tm_const::operator bool ()): 33451 (tm_row_const::operator bool ()): Likewise. 33452 * oct-stream.cc (printf_value_cache::operator bool ()): Likewise. 33453 (scanf_format_list::operator bool ()): Likewise. 33454 (printf_format_list::operator bool ()): Likewise. 33455 (octave_stream::operator bool ()): Likewise. 33456 33457Wed Feb 4 13:08:29 1998 John W. Eaton <jwe@bevo.che.wisc.edu> 33458 33459 * DLD-FUNCTIONS/minmax.cc: Include cmath, not oct-math.h. 33460 33461 * syscalls.cc (Fdup2): Convert stream to actual system file id. 33462 33463 * oct-stream.cc (octave_base_stream::fileno, octave_stream::fileno): 33464 New functions. 33465 33466Tue Feb 3 00:24:44 1998 John W. Eaton <jwe@bevo.che.wisc.edu> 33467 33468 * defaults.cc (exec_path): Append Vbin_dir to std_path. 33469 33470 * octave.cc (initialize_pathsearch): Set TEXMFDBS, not TEXMF. 33471 Look for OCTAVE_DB_PATH in environment. 33472 Simplify using Vdata_dir and Vlibexec_dir. 33473 33474 * defaults.h.in (Vdata_dir, Vlibexecdir): Declare new vars. 33475 defaults.cc: Define them. 33476 (set_default_data_dir, set_default_libexecdir): New functions. 33477 (install_defaults): Call them. 33478 33479 * defaults.h.in (OCTAVE_LIBEXECDIR): Define. 33480 33481Mon Feb 2 02:43:16 1998 John W. Eaton <jwe@bevo.che.wisc.edu> 33482 33483 * Makefile.in (install, uninstall): Use $(octlibdir), not $(libdir). 33484 Use mk-libdir-link. 33485 33486 * defaults.h.in (OCTAVE_OCTLIBDIR): Substitute value. 33487 (Vlib_dir): Delete declaration. 33488 * defaults.cc (Vlib_dir): Delete. 33489 (set_default_lib_dir): Delete. 33490 (install_defaults): Don't call set_default_lib_dir. 33491 (set_default_info_prog): If oct_info_prog is empty, set default to 33492 "info" -- we expect it to be somewhere in the user's path. 33493 33494 * defun.h (DEFCONST, DEFCONSTX): Eliminate inst_as_fcn and chg_fcn 33495 args. Always pass true for inst_as_fcn and 0 for chg_fcn to 33496 DEFVAR when creating built-in values like `e' or `stderr' that can 33497 be redefined. Change all uses. 33498 33499 * help.cc (Ftype): Handle script files too. 33500 (Fwhich): Likewise. 33501 33502Sat Jan 31 00:00:26 1998 John W. Eaton <jwe@bevo.che.wisc.edu> 33503 33504 * ov-ch-mat.cc (octave_char_matrix::is_true): Make it work. 33505 * ov-str-mat.h, ov-str-mat.cc (octave_char_matrix_str::is_true): 33506 Delete. 33507 33508 * load-save.cc (read_ascii_data): Allow strings of length 0. 33509 If we don't find data on the first call, fail with error message. 33510 (do_load): Pass count of items read to read_ascii_data. 33511 Allow `load foo xyz' to work when foo contains only numbers. 33512 33513Fri Jan 30 23:46:42 1998 John W. Eaton <jwe@bevo.che.wisc.edu> 33514 33515 * ov-str-mat.h (octave_char_matrix_str::all): Delete. 33516 (octave_char_matrix_str::any): Delete. 33517 * ov-ch-mat.h (octave_char_matrix::all, octave_char_matrix::any): 33518 Call charMatrix::all, charMatrix::any. 33519 33520Thu Jan 29 16:25:46 1998 John W. Eaton <jwe@bevo.che.wisc.edu> 33521 33522 * load-save.cc (read_mat_binary_data): Handle third digit of MOPT 33523 as flag indicating row or column major ordering. 33524 33525Wed Jan 28 00:18:17 1998 John W. Eaton <jwe@bevo.che.wisc.edu> 33526 33527 * DLD-FUNCTIONS/dassl.cc (lsode_option_table): 33528 Add missing & to function names. 33529 * DLD-FUNCTIONS/lsode.cc (lsode_option_table): Likewise. 33530 * DLD-FUNCTIONS/quad.cc (quad_option_table): Likewise. 33531 33532 * Makefile.in (oct-gperf.h): Add -G option to gperf. 33533 33534 * load-save.cc (get_save_type): Add `UL' and `L' suffixes to large 33535 constant values. For LS_INT, use <= and >= for comparison. 33536 33537Mon Jan 26 13:17:59 1998 John W. Eaton <jwe@bevo.che.wisc.edu> 33538 33539 * ov-usr-fcn.cc (Vmax_recursion_depth): New static variable. 33540 (max_recursion_depth): New fucnction 33541 (symbols_of_ov_usr_fcn): DEFVAR max_recursion_depth. 33542 (octave_user_function::do_index_op): Check Vmax_recursion_depth. 33543 33544Thu Jan 22 13:45:26 1998 John W. Eaton <jwe@bevo.che.wisc.edu> 33545 33546 * dynamic-ld.cc (make_dynamic_loader): Fix typo. 33547 33548Tue Jan 20 17:02:19 1998 John W. Eaton <jwe@bevo.che.wisc.edu> 33549 33550 * variables.cc (Fexist): If local symbol is undefined, check 33551 global table. 33552 33553 * pr-output.cc (pr_max_internal): Initial value for result is 33554 -DBL_MAX, not DBL_MIN. 33555 33556Thu Jan 8 11:54:33 1998 John W. Eaton <jwe@bevo.che.wisc.edu> 33557 33558 * xpow.cc (elem_xpow): If second arg of pow is complex, make sure 33559 first arg is also complex. 33560 33561 * symtab.cc (symbol_table::rename): Properly insert new item at 33562 the front of the list to avoid losing the rest of the items. 33563 33564Thu Dec 11 23:30:03 1997 John W. Eaton <jwe@bevo.che.wisc.edu> 33565 33566 * variables.cc (Fclear): Increment index to skip -x arg. 33567 33568Tue Dec 9 02:45:35 1997 John W. Eaton <jwe@bevo.che.wisc.edu> 33569 33570 * Makefile.in (INCLUDES): Don't forget Pix.h. 33571 33572 * BaseSLList.cc: Don't include nonstandard libg++ header files. 33573 33574Sun Nov 30 14:58:56 1997 John W. Eaton <jwe@bevo.che.wisc.edu> 33575 33576 * pr-output.cc: Include cmath, not oct-math. 33577 * sysdep.cc: Likewise. 33578 33579 * DLD-FUNCTIONS/bessel.cc: New file. 33580 * Makefile.in (DLD_XSRC): Add it to the list. 33581 33582Thu Nov 27 23:28:59 1997 John W. Eaton <jwe@bevo.che.wisc.edu> 33583 33584 * lex.l (handle_string): Constructor for string class takes 33585 (size_t, char) args, not (char, size_t). 33586 33587Wed Nov 26 00:39:34 1997 John W. Eaton <jwe@bevo.che.wisc.edu> 33588 33589 * Makefile.in (OCTAVE_LIBS): Include $(SPECIAL_MATH_LIB) just 33590 ahead of -lcruft. 33591 33592Thu Nov 20 15:16:22 1997 John W. Eaton <jwe@bevo.che.wisc.edu> 33593 33594 * octave.cc (maximum_braindamage): Bind implicit_num_to_str_ok to 1. 33595 * pt-mat.cc (Vimplicit_num_to_str_ok): New static variable. 33596 (implicit_num_to_str_ok): New function. 33597 (symbols_of_pt_mat): DEFVAR implicit_num_to_str_ok. 33598 (tm_row_const::some_str): New data member. 33599 (tm_row_const::some_strings_p): New function. 33600 (tm_row_const::init): Set some_str. 33601 (tm_const::some_str): New data member. 33602 (tm_const::some_strings_p): New function. 33603 (tm_const::init): Set some_str. 33604 (tree_matrix::eval): If Vimplicit_num_to_str_ok is true and some 33605 of the elements are strings, force a string conversion before 33606 returning. 33607 33608 * parse.y (fold, finish_colon_expression, finish_matrix): 33609 If an error occurs, return the original expression. 33610 Use unwind_protect to restore error_state. 33611 33612 * ov-ch-mat.h (octave_char_matrix::convert_to_str): Result is 33613 char_matrix_str, not just char_matrix. 33614 33615Wed Nov 19 02:05:40 1997 Mumit Khan <khan@dhaka.xraylith.wisc.edu> 33616 33617 * DLD-FUNCTIONS/filter.cc: Don't include extern template decls if 33618 CXX_NEW_FRIEND_TEMPLATE_DECL is defined. 33619 * ov-cx-mat.cc: Likewise. 33620 * ov-re-mat.cc: Likewise. 33621 * ov-str-mat.cc: Likewise. 33622 33623 * ov-cx-mat.h (octave_complex_matrix::decrement, 33624 octave_complex_matrix): Use explicit Complex constructor. 33625 33626Wed Nov 19 00:08:13 1997 John W. Eaton <jwe@bevo.che.wisc.edu> 33627 33628 * pt-decl.cc (tree_global_command::do_init): Initialize global 33629 values to `[]'. Only perform explicit initialization once. 33630 33631Tue Nov 18 04:27:55 1997 John W. Eaton <jwe@bevo.che.wisc.edu> 33632 33633 * pr-output.cc (Vfixed_point_format): New variable. 33634 (fixed_point_format): New fucntion. 33635 (symbols_of_pr_output): Add DEFVAR for fixed_point_format. 33636 (set_real_matrix_format): Handle fixed point format 33637 (set_complex_matrix_format): Handle fixed point format 33638 (set_format): New arg, scale in Matrix, ComplexMatrix, Range versions. 33639 (pr_scale_header): New function. 33640 (octave_print_internal): Handle fixed point format in Matrix, 33641 ComplexMatrix, and Range versions. 33642 * octave.cc (maximum_braindamage): Set fixed_point_format to 1.0. 33643 33644 * utils.cc (do_string_escapes): Move here, from lex.l. 33645 Arg is now const string& instead of char*. 33646 Return new string object instead of modifying arg in place. 33647 (Fdo_string_escapes): New function. 33648 * lex.l (handle_string): Use new version of do_string_escapes. 33649 33650 * lex.l (Vbackslash_escapes): Delete. 33651 (backslash_escapes): Delete. 33652 (do_string_escapes): Undo previous change. 33653 (eat_whitespace, eat_continuation): Undo previous change. 33654 (handle_string): Undo previous change. 33655 (symbols_of_lex): Undo previous change. 33656 * octave.cc (maximum_braindamage): Undo previous change. 33657 33658Fri Nov 14 01:53:13 1997 John W. Eaton <jwe@bevo.che.wisc.edu> 33659 33660 * parse.y (eval_string (const string&, bool, int&, int)): No 33661 longer static. 33662 * parse.h: Provide declaration. 33663 * input.cc (get_user_input (const octave_value_list&, bool, int)): 33664 New arg, nargout. Pass it to eval_string. 33665 (keyboard): Pass nargout = 0 to get_user_input. 33666 (input): Pass nargout to get_user_input. 33667 33668 * input.cc (get_user_input (const octave_value_list&, bool)): 33669 Return octave_value_list() if user enters `quit', `exit', or `return'. 33670 If debugging, let eval_string handle the printing chores and 33671 reset error_state before asking for more input. 33672 33673 * input.cc (Fkeyboard): Unconditionally turn on history here. 33674 33675 * lex.l (have_continuation, have_ellipsis_continuation): Declare 33676 arg as bool, not int. Change callers. 33677 33678 * lex.l (Vbackslash_escapes): New static variable. 33679 (backslash_escapes): New function. 33680 (do_string_escapes): Return immediately if ! Vbackslash_escapes. 33681 (eat_whitespace, eat_continuation): Only call have_continuation if 33682 Vbackslash_escapes. 33683 (handle_string): Backslash is only special if Vbackslash_escapes. 33684 (symbols_of_lex): Add DEFVAR for backslash_escapes. 33685 * octave.cc (maximum_braindamage): Set backslash_escapes to 0. 33686 33687Thu Nov 13 16:20:40 1997 John W. Eaton <jwe@bevo.che.wisc.edu> 33688 33689 * variables.cc (Fexist): Also return 2 if NAME is a regular file 33690 somewhere in the LOADPATH. 33691 33692 * data.cc (sumsq): Fix doc string. 33693 33694 * parse.y (Fsource): Call parse_fcn_file, not parse_and_execute. 33695 33696Tue Oct 7 16:51:01 1997 John W. Eaton <jwe@bevo.che.wisc.edu> 33697 33698 * defun-int.h (DEFINE_FUN_INSTALLER_FUN): Set installed to true 33699 after installing the function. 33700 33701Thu Sep 25 10:17:26 1997 John W. Eaton <jwe@bevo.che.wisc.edu> 33702 33703 * DLD-FUNCTIONS/filter.cc (Ffilter): Return second output value 33704 even when called with only 3 arguments. 33705 33706Mon Sep 22 16:44:27 1997 John W. Eaton <jwe@bevo.che.wisc.edu> 33707 33708 * DLD-FUNCTIONS/rand.cc (do_rand): Print error if first of two 33709 args is a string but doesn't match "seed". 33710 (Frand, Frandn): Fix doc string. 33711 33712Mon Aug 25 10:42:07 1997 John W. Eaton <jwe@bevo.che.wisc.edu> 33713 33714 * input.cc (get_user_input): Return an empty string if the user 33715 just types RET. 33716 33717Thu Jul 31 22:59:04 1997 John W. Eaton <jwe@bevo.che.wisc.edu> 33718 33719 * lex.l <TEXT_FCN>: Ensure that we handle words that begin with 33720 single or double quotes as strings. 33721 33722Thu Jul 17 13:06:48 1997 Klaus Gebhardt <gebhardt@crunch.ikp.physik.th-darmstadt.de> 33723 33724 * DLD-FUNCTIONS/rand.cc (Frand): Use F77_XFCN to call getsd, 33725 setsd, setall, setcgn, dgenunf, and dgennor since they can call 33726 XSTOPX. 33727 33728Mon Jul 14 12:54:23 1997 John W. Eaton <jwe@bevo.che.wisc.edu> 33729 33730 * dynamic-ld.cc (octave_dynamic_loader::load_fcn_from_dot_oct_file): 33731 If first attempt to load function fails, prepend and underscore 33732 and try again. 33733 33734 * Makefile.in (install-inc): If defaults.h, oct-conf.h, or 33735 oct-gperf.h don't exist in the current directory, look in $(srcdir). 33736 33737Mon Jul 7 21:14:07 1997 John W. Eaton <jwe@bevo.che.wisc.edu> 33738 33739 * DLD-FUNCTIONS/qr.cc (Fqr): Correctly handle nargout == 0. 33740 33741Wed Jul 2 16:47:09 1997 John W. Eaton <jwe@bevo.che.wisc.edu> 33742 33743 * matherr.c: New file. Move matherr function here. 33744 * sysdep.cc: From here. 33745 * Makefile.in (DIST_SRC): Add matherr.c to the list. 33746 33747 * error.cc (handle_message): Avoid bug in g++ snapshot. 33748 33749Thu Jun 26 22:04:09 1997 John W. Eaton <jwe@bevo.che.wisc.edu> 33750 33751 * utils.cc (file_in_path): Add default load path to PATH arg if 33752 it begins or ends with a colon. 33753 33754Wed Jun 25 13:31:06 1997 John W. Eaton <jwe@bevo.che.wisc.edu> 33755 33756 * oct-lvalue.h (octave_lvalue::struct_elt_ref): Ensure val is unique. 33757 33758Fri Jun 20 12:33:35 1997 John W. Eaton <jwe@bevo.che.wisc.edu> 33759 33760 * toplev.cc (cmd_death_handler): New function. 33761 (run_command_and_return_output): Insert pid of command in 33762 octave_child_list along with pointer to cmd_death_handler so we 33763 can get the exit status without having to block SIGCHLD. 33764 (cleanup_iprocstream): Remove pid of command from octave_child_list. 33765 33766Sun Jun 15 16:11:13 1997 John W. Eaton <jwe@bevo.che.wisc.edu> 33767 33768 * OPERATORS/op-cs-s.cc (ldiv): Doh, v1 is complex, v2 is real. 33769 33770 * Makefile.in (DISTFILES): Add mkops to the list. 33771 (dist): Correctly link files in DLD-FUNCTIONS, OPERATORS, and 33772 TEMPLATE-INST subdirectories. 33773 33774Fri Jun 6 04:30:57 1997 John W. Eaton <jwe@bevo.che.wisc.edu> 33775 33776 * DLD-FUNCTIONS/npsol.cc, DLD-FUNCTIONS/qpsol.cc, 33777 DLD-FUNCTIONS/fsqp.cc: Delete. 33778 * Makefile.in (DLD_XSRC): Remove them from the list. 33779 33780 * utils.cc (search_path_for_file): New arg, do_tilde_expansion. 33781 If TRUE, perform tilde expansion on path before searching. 33782 (file_in_path): Call search_path_for_file with do_tilde_expansion 33783 set to false, since we've already performed tilde expansion on the 33784 load path. 33785 33786 * defaults.cc (loadpath): Perform tilde expansion here. 33787 33788Thu Jun 5 01:42:39 1997 John W. Eaton <jwe@bevo.che.wisc.edu> 33789 33790 * Makefile.in: Make building of static library optional. 33791 (liboctave.$(SHLEXT_VER)): Add $(SONAME_FLAGS) to command. 33792 33793 * dynamic-ld.cc (octave_shl_load_dynamic_loader::resolve_reference): 33794 Call shl_findsym with type set to TYPE_UNDEFINED. 33795 33796 * Makefile.in (stamp-picdir): Delete. 33797 (pic): New target. Don't worry so much about creating pic 33798 directory only when it is really needed. 33799 (stamp-interp): Delete. 33800 (libraries): New target. Depend on shared library directly. 33801 33802Wed Jun 4 00:09:42 1997 John W. Eaton <jwe@bevo.che.wisc.edu> 33803 33804 * octave.cc (main): Call dir_path::set_program_name here. 33805 33806Tue Jun 3 16:47:34 1997 John W. Eaton <jwe@bevo.che.wisc.edu> 33807 33808 * variables.cc (symbol_out_of_date): Make it work again. 33809 33810 * parse.y (parse_and_execute): Move here from toplev.cc 33811 (default_eval_print_flag): Likewise. 33812 (safe_fclose): Likewise. 33813 (eval_string): Likewise. 33814 (Fsource): Likewise. 33815 (Ffeval): Likewise. 33816 (feval): Likewise. 33817 (Feval): Likewise. 33818 (symbols_of_parse): Define default_eval_print_flag here instead of 33819 in variables.cc. 33820 (looks_like_octave_copyright): Move here from variables.cc 33821 (gobble_leading_whitespace): Likeiwse. 33822 (is_function_file): Likewise. 33823 (restore_input_stream): Likewise. 33824 (parse_fcn_file): Likewise. 33825 (load_fcn_from_file): Likewise. 33826 (get_help_from_file): Likewise. 33827 33828 * toplev.cc (syms_of_toplev): Define argv, program_name, and 33829 program_invocation_name here instead of in variables.cc. 33830 33831 * parse.h (line_editing): Move here from toplev.h. Now bool, not int. 33832 (reading_startup_message_printed) Likewise. 33833 (input_from_startup_file): Likewise. 33834 (input_from_command_line_file): Likewise. 33835 33836 * load-save.cc: Use bool instead of int where appropriate. 33837 33838 * input.h (enum echo_state): Move here from variables.h. 33839 (Vecho_executing_commands): Likewise. Now bool, not int. 33840 * input.cc (echo_executing_commands): Move here from variables.cc. 33841 (symbols_of_input): Define echo_executing_commands here instead of 33842 in variables.cc. 33843 33844 * octave.cc (program_invocation_name): Don't define. 33845 (intern_argv): Don't set program_invocation_name here. 33846 (main): Call octave_env::set_program_name here, not in intern_argv. 33847 33848 * toplev.cc (quitting_gracefully): Move here from octave.h and 33849 make static bool instead of extern int. 33850 33851 * error.cc (bind_global_error_variable, clear_global_error_variable): 33852 Move here from variables.cc. 33853 (symbols_of_error): Define error_text here instead of in variables.cc. 33854 33855 * pager.cc (write_to_diary_file): Now bool, not int. 33856 (really_flush_to_pager): Likewise. 33857 (flushing_to_pager): Likewise. 33858 * sighandlers.h (can_interrupt): Likewise. 33859 * error.h (buffer_error_messages): Likewise. 33860 * oct-hist.h (input_from_tmp_history_file, Vsaving_history): Likewise. 33861 * input.h (forced_interactive): Likewise. 33862 (get_input_from_eval_string): Likeiwse. 33863 (reading_script_file): Likeiwse. 33864 (reading_fcn_file): Likeiwse. 33865 (interactive): Likewise. 33866 33867 * unwind-prot.cc (saved_variable::saved_variable (bool *, bool)): 33868 Set type_tag to boolean, not int. 33869 33870Mon Jun 2 00:40:10 1997 John W. Eaton <jwe@bevo.che.wisc.edu> 33871 33872 * variables.h (Octave_builtin_fcn): Delete typedef. 33873 33874 * help.cc (make_name_list): Move here from variables.cc. 33875 (keyword_help, names): Now static. 33876 (struct help_list): Move declaration here from help.h. 33877 33878 * oct-hist.cc (Vhistory_file, Vhistory_size, Vsaving_history): 33879 Move here from variables.cc. 33880 (symbols_of_oct_hist): New function. 33881 33882 * version.h: Protect against multiple inclusion. 33883 33884 * defun.cc (check_version): New function. 33885 * defun-int.h (DEFINE_FUN_INSTALLER_FUN): Use it. 33886 33887 * help.h, help.cc (additional_help_message): Now extern. 33888 (operator_help): Now static. 33889 33890 * defun.cc (print_usage): Move here from help.cc 33891 * DLD-FUNCTIONS/*.cc, data.cc, dirfns.cc, file-io.cc, input.cc, 33892 load-save.cc, octave.cc, ov-list.cc, ov-typeinfo.cc, 33893 ov-usr-fcn.cc, pager.cc, pr-output.cc, pt-plot.cc, strfns.cc, 33894 syscalls.cc, sysdep.cc, utils.cc, toplev.cc: 33895 Don't include help.h. 33896 33897 * TEMPLATE-INST/Array-sym.cc: New file. 33898 33899 * load-save.cc (do_load): Don't use ostream::form. 33900 * pr-output.cc: Likewise, at least where it is easy to do so. 33901 * oct-stream.cc: Ditto. 33902 33903 * symtab.h (symbol_record::symbol_def::rows): New function. 33904 (symbol_record::symbol_def::columns): Ditto. 33905 (symbol_record::symbol_def::type_name): Ditto. 33906 (symbol_record::rows): Ditto 33907 (symbol_record::columns): Ditto 33908 (symbol_record::type_name): Ditto 33909 33910 * symtab.h, symtab.cc (symbol_record::hides_fcn): New function. 33911 (symbol_record::hides_builtin): Ditto. 33912 (symbol_record::print_symbol_info_line): Ditto. 33913 (symbol_table::long_list): Delete. 33914 (symbol_table::symbol_list): New function. 33915 (symbol_table::maybe_list): Delete argc arg. 33916 (symbol_table::name_list): Rename from symbol_table::list. 33917 Change all callers. 33918 33919 * symtab.h, symtab.cc (class symbol_record_info): Delete. 33920 33921 * symtab.cc (matches_patterns): Use vector form of glob_match. 33922 33923Sun Jun 1 14:04:26 1997 John W. Eaton <jwe@bevo.che.wisc.edu> 33924 33925 * pt-check.h, pt-check.cc: New files, for semantic checking of 33926 parse trees. 33927 33928 * symtab.h (class symbol_def): Now nested in symbol_record class. 33929 (enum TYPE): Move from symbol_def to symbol record class. Change 33930 all uses. 33931 33932 * symtab.h, symtab.cc (symbol_table::maybe_list): New function, 33933 from variables.cc. Change all uses. 33934 33935 * pt-idx.h (tree_identifier::lvalue_ok): New function. 33936 * pt-id.h (tree_index_expression::lvalue_ok): Likewise. 33937 * pt-indir.h (tree_indirect_ref::lvalue_ok): Likewise. 33938 33939 * pt-pr-code.h, pt-pr-code.cc (tree_print_code::visit_oct_obj): Delete. 33940 * pt-walk.h (tree_walker::visit_oct_obj): Delete declaration. 33941 33942 * lex.h (class lexical_feedback): Delete maybe_screwed_again. 33943 * lex.l (lexical_feedback::init): Don't set it. 33944 33945Fri May 30 16:07:22 1997 John W. Eaton <jwe@bevo.che.wisc.edu> 33946 33947 * mappers.cc: Include <cfloat> here. 33948 33949Tue May 27 10:08:43 1997 John W. Eaton <jwe@bevo.che.wisc.edu> 33950 33951 * toplev.cc (eval_string): Don't index tmp if it is empty. 33952 33953Sat May 24 00:18:41 1997 John W. Eaton <jwe@bevo.che.wisc.edu> 33954 33955 * load-save.cc (valid_identifier): Move here and make static. 33956 * symtab.h, symtab.cc (valid_identifier): Delete declaration and 33957 definition. 33958 33959Fri May 23 22:54:28 1997 John W. Eaton <jwe@bevo.che.wisc.edu> 33960 33961 * symtab.h (symbol_def::symbol_def): Use initializer list instead 33962 of calling init_state. 33963 (symbol_def::init_state): Delete. 33964 33965 * symtab.cc (symbol_table::print_stats): New function. 33966 * variables.cc (F__dump_symtab_info__): New function. 33967 33968 * symtab.h, symtab.cc (symbol_table::hash): Return masked value. 33969 (symbol_table::table_size): New data member. 33970 (symbol_table::symbol_table): Set size of table in constructor. 33971 (HASH_TABLE_SIZE): Replace uses with table_size. 33972 (HASH_MASK): Delete. 33973 * variables.cc (initialize_symbol_tables): Set top-level and 33974 global symbol table sizes here. 33975 33976Thu May 22 13:32:55 1997 John W. Eaton <jwe@bevo.che.wisc.edu> 33977 33978 * dynamic-ld.cc (octave_shl_load_dynamic_loader::resolve_reference): 33979 Call shl_findsym with type set to TYPE_PROCEDURE. Pass the 33980 address of the pointer we want to define. 33981 33982Wed May 21 16:30:25 1997 John W. Eaton <jwe@bevo.che.wisc.edu> 33983 33984 * DLD-FUNCTIONS/time.cc (extract_tm): Avoid memory leak in dealing 33985 with time zone. 33986 33987 * Makefile.in (install-in): Use new mk-includedir-link macro. 33988 (install-lib): Install in $octlibdir. Use new mk-libdir-link macro. 33989 33990Tue May 20 01:24:11 1997 John W. Eaton <jwe@bevo.che.wisc.edu> 33991 33992 * ov-list.cc (Flist): Rename from Fmake_list. 33993 33994Mon May 19 14:45:58 1997 John W. Eaton <jwe@bevo.che.wisc.edu> 33995 33996 * octave.cc (maximum_braindamage): Set default_eval_print_flag to 0. 33997 33998Sat May 17 16:32:23 1997 John W. Eaton <jwe@bevo.che.wisc.edu> 33999 34000 * defaults.cc (set_default_editor): Default is now Emacs, not vi. 34001 34002Fri May 16 00:07:11 1997 John W. Eaton <jwe@bevo.che.wisc.edu> 34003 34004 * pt-idx.cc (tree_index_expression::name): New function. 34005 34006 * pt.cc (tree::str_print_code): New file, new convenience function. 34007 * pt-arg-list.cc (tree_argument_list::get_arg_names): Use it. 34008 * pt-assign.cc (tree_simple_assignment::rvalue): Likewise. 34009 (tree_multi_assignment::rvalue): Likewise. 34010 34011 * pt-colon.h (tree_colon_expression::save_base): New data memmber. 34012 (tree_colon_expression::preserve_base): New function. 34013 * parse.y (finish_colon_expression): When converting to a simple 34014 expression, be sure to delete the original colon expression but 34015 not the base value. 34016 34017 * pt-mat.cc (tree_matrix::~tree_matrix): Actually do something. 34018 34019 * pt-all.h: New file. 34020 * parse.y, lex.l, pt-pr-code.cc: Use it. 34021 34022 * pt.h: Rename from pt-base.h. 34023 34024 * All parse tree classes: Add private copy constructors and 34025 assignment operators to prevent copying. 34026 34027 * pt-base.cc: Delete. 34028 34029 * unwind-prot.h, unwind-prot.cc: Make a bit more object-oriented. 34030 Change all uses of unwind_protect stuff to match. 34031 34032 * pt-jump.h, pt-jump.cc (breaking, continuing, returning): 34033 Make these flags static members of the corresponding class. 34034 Change all uses. 34035 34036 * pt-assign.cc (tree_simple_assignment_expression::eval, 34037 tree_multi_assignment_expression::eval): Clear lvalue index here. 34038 34039 * oct-lvalue.cc (octave_lvalue::assign): Don't clear index here. 34040 * oct-lvalue.h (octave_lvalue::clear_index): New function. 34041 (octave_lvalue::set_index): Rename from octave_lvalue::index. 34042 Change all callers. 34043 34044Thu May 15 11:48:10 1997 John W. Eaton <jwe@bevo.che.wisc.edu> 34045 34046 * pt-select.h, pt-select.cc (class tree_if_command_list, 34047 class tree_if_clause, class tree_switch_case_list, 34048 class tree_switch_case): Move here from pt-misc.h, pt-misc.cc. 34049 * pt-decl.h, pt-decl.cc (class tree_decl_init_list, 34050 class tree_decl_elt): Move here from pt-mist.h, pt-misc.cc 34051 34052 * pt-arg-list.h, pt-stmt.h: New files, extracted from pt-misc.h. 34053 * pt-arg-list.cc, pt-stmt.cc: New files, extracted from pt-misc.cc. 34054 34055 * pt-decl.h, pt-except.h, pt-jump.h, pt-loop.h, pt-select.h: 34056 New files, extraced from pt-cmd.h. 34057 * pt-decl.cc, pt-except.cc, pt-jump.cc, pt-loop.cc, pt-select.cc: 34058 New files, extraced from pt-cmd.cc. 34059 34060 * pt-unop.h, pt-binop.h, pt-colon.h, pt-idx.h, pt-assign.h: 34061 New files, extracted from pt-exp.h 34062 * pt-unop.cc, pt-binop.cc, pt-colon.cc, pt-idx.cc, pt-assign.cc: 34063 New files, extracted from pt-exp.cc 34064 * pt-exp.h, pt-exp.cc: Rename from pt-exp-base.h, pt-exp-base.cc. 34065 34066 * oct-lvalue.h: Rename from oct-var-ref.h. Rename class from 34067 octave_variable_reference to octave_lvalue. Change all uses. 34068 * oct-lvalue.cc: Rename from oct-var-ref.cc. 34069 34070 * variables.cc (bind_ans): Only bind ans and print result if value 34071 is defined. 34072 34073 * defun.cc: New file. Move functions for installing objects in 34074 the symbol table here from variables.cc. 34075 34076 * oct-obj.h, oct-obj.cc: Add custom allocator, fwiw. 34077 34078 * toplev.cc (main_loop): Correctly increment command number. 34079 34080 * TEMPLATE-INST/SLList-tm.cc: Don't instantiate lists of pointers 34081 to tree_matrix_row objects. 34082 * TEMPLATE-INST/SLList-misc.cc: Do instantiate lists of pointers 34083 to tree_argument_list objects. 34084 34085 * DLD-FUNCTIONS/dassl.cc: Update to use new octave_function 34086 interface to user-supplied functions. 34087 * DLD-FUNCTIONS/fsolve.cc: Likewise. 34088 * DLD-FUNCTIONS/lsode.cc: Likewise. 34089 * DLD-FUNCTIONS/npsol.cc: Likewise. 34090 * DLD-FUNCTIONS/quad.cc: Likewise. 34091 34092 * dynamic-ld.h, dynamic-ld.cc (builtin_fcn_installer typedef): 34093 Rename from builtin_fcn. 34094 (octave_dynamic_loader::load_fcn_from_dot_oct_file): 34095 Simplify by using new installer function defined by DEFUN_DLD. 34096 34097 * defun-dld.h (DEFUN_DLD): Use DEFINE_FUN_INSTALLER_FUN instead of 34098 DEFINE_FUN_STRUCT_FUN. 34099 * defun.h (DEFUN_MAPPER): Use DEFUN_MAPPER_INTERNAL. 34100 * defun-int.h (DEFVAR_INTERNAL): Rename from DEFVAR_INT and move 34101 here from defun.h. Change all uses. 34102 (DEFUN_MAPPER_INTERNAL): New macro. 34103 (DEFINE_FUN_INSTALLER_FUN): New macro to define function that the 34104 dynamic loader calls to do all the work of installing a new function. 34105 (DEFINE_FUN_STRUCT_FUN): Delete. 34106 34107 * parse.y: Rewrite to handle more general expressions. 34108 * lex.l: Corresponding changes. 34109 34110 * pt-walk.h, pt-pr-code.h, pt-pr-code.cc: Cope with new parse tree 34111 object structure. 34112 34113 * pt-misc.cc (class tree_for_command): Split into 34114 tree_simple_for_command and tree_complex_for_command classes. 34115 34116 * pt-misc.h, pt-misc.cc (tree_statement::eval): Handle identifier 34117 lookup and printing and binding ans here. 34118 (tree_statement_list::eval): Simplify. 34119 (tree_argument_list::all_elements_are_constant): New function. 34120 (class tree_decl_elt): Now contains id and expr, not an assignment 34121 expression. 34122 34123 * pt-exp-base.h pt-exp.h pt-id.h pt-indir.h pt-mat.h pt-const.h, 34124 pt-exp-base.cc pt-exp.cc pt-id.cc pt-indir.cc pt-mat.cc pt-const.cc: 34125 Replace eval functions with rvalue and lvalue functions. 34126 Change all uses. 34127 (lvalue_ok, rvalue_ok): New functions, for future compile-time 34128 semantic checks. 34129 34130 * oct-var-ref.h (is_defined, is_map): New functions. 34131 34132 * pt-exp.h (class tree_oct_obj): Delete. 34133 34134 * variables.cc (extract_function, is_valid_function): Return 34135 pointer to octave_function, not octave_symbol. 34136 (link_to_global_variable): Rewrite. Handle errors in 34137 symbol_record::mark_as_linked_to_global. 34138 34139 * symtab.h, symtab.cc (class symbol_def, class symbol_record): 34140 Symbols are now stored as octave_value objects only. 34141 34142 * ov.cc (install_types): Register function types here. 34143 * ov-fcn.h, ov-fcn.cc, ov-builtin.h, ov-builtin.cc, ov-mapper.h, 34144 ov-mapper.cc, ov-usr-fcn.h, ov-usr-fcn.cc: New classes for 34145 functions as values. 34146 * ov.h (class octave_value): Don't derive from octave_symbol. 34147 * oct-fcn.h, oct-fcn.cc, oct-builtin.h, oct-builtin.cc, 34148 oct-mapper.h, oct-mapper.cc, oct-usr-fcn.h, oct-usr-fcn.cc, 34149 oct-sym.h, oct-sym.cc: Delete. 34150 34151Sun May 11 17:51:22 1997 John W. Eaton <jwe@bevo.che.wisc.edu> 34152 34153 * help.cc (Ftype): Make it work again for functions. 34154 34155 * pt-pr-code.cc (tree_print_code::print_parens): New function. 34156 Use it in other tree_print_code functions to handle printing all 34157 the parens that we found when parsing the expression, not just one 34158 pair. 34159 * pt-exp-base.h (tree_expression::paren_count): Rename from 34160 is_in_parens. 34161 * parse.y (maybe_warn_assign_as_truth_value): Use new name. 34162 34163 * parse.y (constant): New non-terminal. 34164 (simple_expr1): Use it. 34165 34166 * parse.y (make_unary_op): Delete. 34167 (simple_expr1): Where appropriate, use make_prefix_op and 34168 make_postfix_op instead of make_unary_op. Allow increment and 34169 decrement ops to work on expressions, not just identifiers. 34170 (make_prefix_op, make_postfix_op): Arg is expression, not identifier. 34171 Handle old unary_op cases too. 34172 (fold (tree_unary_expression *)): Delete. 34173 * pt-exp.h, pt-exp.cc (tree_prefix_expression::eval): Handle unary 34174 minus and not here. 34175 (tree_postfix_expression::eval): Likewise, for transpose and hermitian. 34176 (class tree_prefix_expression, class tree_postfix_expression): 34177 Derive from tree_unary_expression. Delete identifier member. 34178 Delete ident member function. 34179 (tree_unary_expression): Don't handle evaluation here. 34180 * pt-exp-base.h (mark_in_parens): No longer virtual. Return this. 34181 (reference): New virtual function. 34182 (class tree_expression): Don't handle expression type here. 34183 * pt-mvr-base.h (tree_multi_val_ret::tree_multi_val_ret): Likewise. 34184 * pt-mvr.h, pt-mvr.cc (tree_multi_assignment_expression): Likewise. 34185 * pt-walk.h (visit_unary_expression): Delete declaration. 34186 * pt-pr-code.h, pt-pr-code.cc (visit_unary_expression): Delete. 34187 (visit_prefix_expression): Use operand(), not ident(). 34188 new, visit_postfix_expression): 34189 * pt-id.h, pt-id.cc (increment, decrement): Delete. 34190 34191 * pt-misc.cc (tree_parameter_list::define_from_arg_vector): Get a 34192 reference to each element and use the assignment operator instead 34193 of tree_identifier::define. 34194 * pt-id.h, pt-id.cc (tree_identifier::define): Delete versions 34195 that take octave_value and octave_symbol args. 34196 34197Sat May 10 23:32:13 1997 John W. Eaton <jwe@bevo.che.wisc.edu> 34198 34199 * pt-indir.h, pt-indir.cc (tree_indirect_reference::value): Delete. 34200 34201 * oct-var-ref.cc (octave_variable_ref::assign): Clear idx after 34202 assignment. 34203 34204 * octave_value classes: Add is_constant, is_function, and 34205 function_value functions. 34206 34207 * ov.h, ov.cc (assign): Return void, not reference to octave_value. 34208 (do_index_op): Rename, from index. 34209 (do_struct_elt_index_op): Rename, from struct_elt_val. 34210 Add version that accepts index arg. 34211 Change all uses and derived classes to match. 34212 * pt-const.h (index): Delete. 34213 * oct-var-ref.h, oct-var-ref.cc (value): Handle indexed structure 34214 ops here too. 34215 34216Fri May 9 07:40:59 1997 John W. Eaton <jwe@bevo.che.wisc.edu> 34217 34218 * pt-exp.cc (print_rhs_assign_val, symbols_of_pt_exp): New functions. 34219 (Vprint_rhs_assign_val): New static variable. 34220 (tree_simple_assignment_expression::eval): Use it to optionally 34221 allow the rhs (which is the result) of an assignment to be printed 34222 instead of the left. 34223 34224 * pt-exp.cc (tree_simple_assignment_expression::eval): Use new 34225 octave_variabl_reference::index function to handle indexing. 34226 34227 * oct-var-ref.h, oct-var-ref.cc (idx): New data member. 34228 (octave_variable_reference::index): Set it. 34229 (octave_variable_reference::assign): Handle indexing here. 34230 Delete version of this function htat takes index arg. 34231 34232 * variables.h (struct builtin_variable): Delete. 34233 * variables.cc (install_builtin_variable): Take all elts of 34234 builtin_variable struct directly. 34235 * defun.h (DEFVAR_INT): Call install_builtin_variable directly. 34236 34237 * symtab.h, defun-int.h: Don't include variables.h. 34238 34239 * symtab.h (symbol_record::sv_function): Move typedef here. 34240 * variables.h: From here. 34241 34242 * oct-var-ref.h, oct-var-ref.cc: New files for 34243 octave_variable_reference class, extracted from variables.h and 34244 variables.cc 34245 * Makefile.in: Add them to the appropriate lists. 34246 34247 * oct-obj.h (octave_value_list::empty): New function. 34248 34249 * variables.h (class octave_variable_reference): Rewrite to work 34250 as a proxy class to store a pointer to octave_value and, 34251 optionally, the change function to call and the name of the 34252 structure element we are referencing. Handle assignment, 34253 increment, decrement, and value operations. 34254 34255Thu May 8 23:40:59 1997 John W. Eaton <jwe@bevo.che.wisc.edu> 34256 34257 * ov-re-mat.h, ov-re-mat.cc (struct_elt_ref, struct_elt_val, 34258 assign_struct_elt): Provide functions for looking up and setting 34259 matrix dimensions. 34260 34261 * symtab.cc (symbol_record::define): Don't call sv_fcn here. 34262 Don't save and restore value here. 34263 (symbol_record::define_builtin_var): Do call sv_fcn here. 34264 (symbol_record::variable_reference): Don't make value unique here. 34265 Return pointer to sv_fcn in octave_variable_reference. 34266 34267 * pt-misc.cc (tree_parameter_list::initialize_undefined_elements): 34268 Simplify. 34269 34270 * pt-id.h, pt-id.cc (tree_identifier::reference): Return 34271 octave_variable_reference, not octave_value&. 34272 * symtab.h, symtab.cc (symbol_record::variable_reference): Ditto. 34273 * pt-indir.h, pt-indir.cc (tree_indirect_ref::reference): Ditto. 34274 Simplify too. 34275 34276 * pt-const.h (tree_constant::reference, tree_constant::value, 34277 tree_constant::assign): Delete unnecessary functions. 34278 * pt-id.h, pt-id.cc (tree_identifier::assign): Ditto. 34279 34280 * pt-cmd.cc (tree_for_command::do_for_loop_once): Simplify. 34281 34282 * ov.h, ov.cc, ov-base.h, ov-base.cc, ov-struct.h, ov-struct.cc 34283 (struct_elt_ref): New arg, octave_value* parent. 34284 Allow deferred lookup. Return octave_variable_reference, not 34285 octave_value&. 34286 34287 * ov.h, ov.cc, ov-re-mat.h, ov-re-mat.cc (assign_struct_elt): 34288 New virtual functions. 34289 34290 * ov.h, ov.cc (Vresize_on_range_error): Now static. 34291 34292 * pt-mvr.cc (tree_index_expression::eval): Delete redundant check 34293 of error_state. 34294 34295Wed May 7 21:17:00 1997 John W. Eaton <jwe@bevo.che.wisc.edu> 34296 34297 * input.cc (generate_completion): Rename from command_generator. 34298 Use string objects instead of char*. 34299 (generate_possible_completions): Let qsort also make matches unique. 34300 (initialize_command_input): Register generate_completion with the 34301 command_editor class. 34302 (completion_matches): Simplify using generate_completion. 34303 34304 * pt-pr-code.cc (tree_print_code::visit_constant): For val, call 34305 print_raw, not print. 34306 34307 * oct-usr-fcn.h (octave_user_function::argn_sr): New data member. 34308 (octave_user_function::install_automatic_vars): Rename from 34309 install_nargin_and_nargout. 34310 (octave_user_function::bind_automatic_vars): Rename from 34311 bind_nargin_and_nargout. 34312 * oct-usr-fcn.cc (octave_user_function::eval): Extract arg names 34313 from args vector and bind them to argn. 34314 * oct-obj.h (octave_value_list::names): New data member. 34315 * oct-obj.cc (octave_value_list::stash_name_tags): New function. 34316 (octave_value_list::name_tags): Ditto. 34317 * pt-const.h, pt-const.cc (tree_constant::print_raw): New function. 34318 * pt-misc.h, pt-misc.cc (tree_argument_list::get_arg_names): 34319 New function. 34320 * pt-mvr.h, pt-mvr.cc (class index_expression): Cache arg names. 34321 * toplev.cc (feval): Now static. Handle arg names. 34322 34323 * mkops: Cope with moving files defining operators to OPERATORS 34324 subdirectory. 34325 34326Tue May 6 00:48:59 1997 John W. Eaton <jwe@bevo.che.wisc.edu> 34327 34328 * DLD-FUNCTIONS/getgrent.cc: Use new octave_group class. 34329 * DLD-FUNCTIONS/getpwent.cc: Use new octave_passwd class. 34330 34331 * syscalls.cc: Simplify by using new functions defined in 34332 liboctave/oct-syscalls.cc. 34333 34334 * file-io.cc (Ftmpnam): Accept DIR and PREFIX args. 34335 34336Mon May 5 00:54:03 1997 John W. Eaton <jwe@bevo.che.wisc.edu> 34337 34338 * ov-str-mat.cc (octave_char_matrix_str::print_name_tag): Print 34339 empty strings on one line. 34340 34341 * DLD-FUNCTIONS, OPERATORS, and TEMPLATE-INST: New subdirectories. 34342 Move appropriate files to new directories. 34343 * Makefile.in: Add DLD-FUNCTIONS, OPERATORS, and TEMPLATE-INST 34344 directories to VPATH. Fix rules to work with new directory 34345 structure. 34346 34347Sun May 4 22:40:45 1997 John W. Eaton <jwe@bevo.che.wisc.edu> 34348 34349 * input.cc (initialize_command_input): Rename from 34350 initialize_readline. 34351 (gnu_readline, octave_gets, get_user_input): Simplify, return 34352 string, not char *. 34353 34354 * Many of other files: Miscellaneous changes to go along with the 34355 changes described in the liboctave/ChangeLog for May 4. More code 34356 moved from here to liboctave. 34357 34358Fri May 2 19:50:33 1997 John W. Eaton <jwe@bevo.che.wisc.edu> 34359 34360 * pathlen.h: Move to ../liboctave. 34361 34362Thu May 1 21:50:44 1997 John W. Eaton <jwe@bevo.che.wisc.edu> 34363 34364 * variables.cc (get_struct_elts): New fucntion. 34365 (looks_like_struct, generate_struct_completions): Move here from 34366 input.cc, rewrite, and make work again. 34367 34368Wed Apr 30 00:24:05 1997 John W. Eaton <jwe@bevo.che.wisc.edu> 34369 34370 * ov-base.h, ov-bool-mat.cc, ov-bool-mat.h, ov-bool.cc, ov-bool.h, 34371 ov-ch-mat.cc, ov-ch-mat.h, ov-complex.cc, ov-complex.h, 34372 ov-cx-mat.cc, ov-cx-mat.h, ov-file.cc, ov-file.h, ov-list.cc, 34373 ov-range.cc, ov-range.h, ov-re-mat.cc, ov-re-mat.h, ov-scalar.cc, 34374 ov-scalar.h, ov-str-mat.cc, ov-struct.cc, ov.h (scalar_value): 34375 New function. Same as double_value, but name is consistent with 34376 octave_scalar class. 34377 34378 * op-fil-b.cc, op-fil-cm.cc, op-fil-lis.cc, op-fil-rec.cc, 34379 op-fil-str.cc, op-fil-bm.cc, op-fil-cs.cc, op-fil-m.cc, 34380 op-fil-s.cc: New files. 34381 34382 * ops.h (ASSIGNOPDECL, DEFASSIGNOP, DEFASSIGNOP_FN, CONVDECL, 34383 DEFCONV, BINOPDECL, DEFBINOPX, DEFBINOP, DEFBINOP_OP, DEFBINOP_FN, 34384 BINOP_NONCONFORMANT): New macros. 34385 * op-b-b.cc, op-bm-bm.cc, op-cm-cm.cc, op-cm-cs.cc, op-cm-m.cc, 34386 op-cm-s.cc, op-cs-cm.cc, op-cs-cs.cc, op-cs-m.cc, op-cs-s.cc, 34387 op-m-cm.cc, op-m-cs.cc, op-m-m.cc, op-m-s.cc, op-s-cm.cc, 34388 op-s-cs.cc, op-s-m.cc, op-s-s.cc, op-str-str.cc: Use them. 34389 34390 * Makefile.in (octave): Also depend on ops.o. 34391 34392 * builtins.h: Delete. 34393 * octave.cc: Add extern declaration here. 34394 34395 * mappers.h: Delete. 34396 * Makefile.in (INCLUDES): Delete from list. 34397 * mkbuiltins: Add extern declaration in builtins.cc. 34398 34399 * mkops: New file. 34400 * ops.cc: Delete. 34401 * Makefile.in (SOURCES): Delete from the list. 34402 (ops.cc): New target. 34403 (OP_SOURCES): New list. Move all op-*.cc files here from SOURCES. 34404 Add $(OP_SOURCES) to SOURCES list. 34405 34406 * variables.cc (symbols_of_variables): No longer static. 34407 * ov.cc (symbols_of_ov): Rename from symbols_of_value. 34408 34409 * ov-base.h: Delete declaration for install_base_type_conversions. 34410 * op-b-b.h, op-bm-bm.h, op-cm-cm.h, op-cm-cs.h, op-cm-m.h, 34411 op-cm-s.h, op-cs-cm.h, op-cs-cs.h, op-cs-m.h, op-cs-s.h, 34412 op-m-cm.h, op-m-cs.h, op-m-m.h, op-m-s.h, op-s-cm.h, op-s-cs.h, 34413 op-s-m.h, op-s-s.h, op-str-str.h: Delete. 34414 * Makefile.in (INCLUDES): Delete them from the list. 34415 34416Tue Apr 29 22:27:49 1997 John W. Eaton <jwe@bevo.che.wisc.edu> 34417 34418 * variables.h, variables.cc (install_builtin_variables): Delete. 34419 * mkbuiltins: Also generate install_builtin_variables function. 34420 * Makefile.in: Fix rule to call mkbuiltins with correct args. 34421 (clean): Also delete def-files and var-files. 34422 * defaults.h.in, dirfns.h, error.h, file-io.h, help.h, input.h, 34423 lex.h, load-save.h, oct-usr-fcn.h, pager.h, parse.h, pr-output.cc, 34424 pr-output.h, pt-mat.h, pt-misc.h, pt-plot.h, toplev.h: 34425 Delete declarations of symbols_of_* functions. 34426 * data.h, syscalls.h: Delete. 34427 34428 * pr-output.cc (octave_print_internal): Leave printing of final 34429 new line up to the caller. 34430 34431 * ov.h, ov.cc (reset_indent_level, increment_indent_level, 34432 decrement_indent_level, newline, indent, reset, 34433 curr_print_indent_level, beginning_of_line): 34434 New functions and static data to manage indent level for printing. 34435 (print_as_scalar): Delete. 34436 (print, print_with_name): Always require stream arg. 34437 Change all callers. 34438 34439 * oct-stream.h (octave_stream::input_stream): Make publicly available. 34440 (octave_stream::output_stream): Likewise. 34441 34442 * ov-base.h, ov-base.cc, ov.h, ov.cc, ov-file.h ov-base.h 34443 (is_file, stream_value, stream_number): New functions. 34444 * ov-file.h, ov-file.cc: New files for value class to manage files. 34445 * file-io.cc (symbols_of_file_io): Define stdin, stdout, and 34446 stderr as octve_file objects, not just integers. 34447 (Ffopen, Fpopen): Return octave_file objects, not integer file ids. 34448 * syscalls.cc (Fpipe): Likewise. 34449 * oct-stream.h, oct-stream.cc (octave_stream_list::insert): 34450 Return octave_file object, not integer file id. 34451 34452 * ov-base.cc, ov-bool-mat.cc, ov-bool.cc, ov-ch-mat.cc, 34453 ov-complex.cc, ov-cx-mat.cc, ov-file.cc, ov-list.cc, ov-range.cc, 34454 ov-re-mat.cc, ov-scalar.cc, ov-str-mat.cc, ov-struct.cc, ov.cc 34455 (print_name_tag, print_raw): New functions. 34456 34457 * help.cc (Ftype): Don't cast symbol definition to tree_constant *. 34458 34459 * variables.cc (link_to_global_variable): Don't try to define 34460 symbol with tree_constant objects. 34461 (bind_ans): Call symbol_record::define directly and then 34462 octave_value::print_with_name instead of creating a temporary 34463 assignment expression. 34464 34465 * pt-pr-code.cc (tree_print_code::indent): Don't use ostream::form. 34466 34467 * pt-exp-base.h, pt-exp.h, pt-exp.cc (oper): Return string, not 34468 char *. Change all where necessary. 34469 34470Mon Apr 28 16:33:49 1997 John W. Eaton <jwe@bevo.che.wisc.edu> 34471 34472 * ov.h (octave_value binary_op enum): Add lshift and rshift. 34473 (octave_value assign_op enum): Add lshift_eq and rshift_eq. 34474 * ov.cc (assign_op_as_string, binary_op_as_string): Include them. 34475 * parse.y (LSHIFT_EQ RSHIFT_EQ LSHIFT RSHIFT): New tokens. 34476 Add them to the precedence list. 34477 (simple_expr): Add new operators. 34478 (make_assign_op, make_binary_op): Handle new operators. 34479 * lex.l: Recognize new operators. 34480 34481 * lex.l: Recognize them. 34482 34483Sun Apr 27 20:17:49 1997 John W. Eaton <jwe@bevo.che.wisc.edu> 34484 34485 * pt-misc.cc (Vsilent_functions, silent_functions): 34486 Move here from oct-usr-fcn.cc. 34487 (symbols_of_pt_misc): New function. DEFVAR silent_functions. 34488 (tree_statement_list::eval): Handle Vsilent_functions here instead 34489 of in octave_user_function::eval. 34490 (tree_statement::eval): New functions. 34491 (tree_statement_list::eval): Use them. 34492 Change print flag arg to silent flag. Change all callers. 34493 * variables.cc (install_builtin_variables): Call symbols_of_pt_misc. 34494 * toplev.cc (parse_and_execute): Delete print arg. Change all callers. 34495 (eval_string): Change print flag arg to silent flag. Change callers. 34496 34497 * dynamic-ld.h, dynamic-ld.cc: Rewrite to use singleton class. 34498 * variables.cc (load_fcn_from_file): Use new dynamic linking class. 34499 34500 * dynamic-ld.h (Octave_builtin_fcn): Delete typedef. 34501 * dynamic-ld.cc: Simplify via the magic of function pointers. 34502 34503 * pt-fcn.h pt-fcn.cc pt-fvc.h pt-fvc.cc pt-fvc-base.h pt-fvc-base.cc: 34504 Delete obsolete files. 34505 * Makefile.in: Remove them from various lists. 34506 34507 * pt-walk.h (visit_octave_user_function): Rename from visit_function. 34508 (visit_builtin): Delete. 34509 * pt-pr-code.h, pt-pr-code.cc (visit_octave_user_function): 34510 Rename from visit_function. 34511 (visit_octave_user_function_header): Rename from visit_function_header. 34512 (visit_octave_user_function_trailer): Rename from 34513 visit_function_trailer. 34514 34515 * ov.h, ov.cc (eval): New functions. 34516 34517 * dassl.cc, fsolve.cc, lsode.cc, npsol.cc, qpsol.cc, quad.cc: 34518 Declare user-defined functions as a pointer to an octave_symbol 34519 object, not as a pointer to a tree_fvc object. 34520 34521 * symtab.h, symtab.cc: Use new octave_symbol class. 34522 * variables.cc (install_builtin_function, install_builtin_mapper, 34523 install_builtin_variable, install_builtin_variable_as_function): 34524 Make work with new octave_symbol class and symbol table structure. 34525 34526 * variables.h: Delete declaration of builtin_function struct. 34527 * defun-dld.h (DEFUN_DLD): Simplify. 34528 * defun-int.h (DEFINE_FUN_STRUCT): Delete. 34529 (DEFINE_FUN_STRUCT_FUN): Rewrite to not use static builtin_function 34530 object. 34531 34532 * mappers.h: Delete declaration of builtin_mapper_function struct. 34533 * mappers.cc: Declare wrapper functions static. 34534 * defun.h (DEFUN_MAPPER): Simplify. 34535 34536 * oct-sym.h: New file. Declare base class for Octave symbols. 34537 * ov.h: Derive octave_value class from octave_symbol. 34538 * oct-fcn.h, oct-fcn.cc: New files to declare and define 34539 base class for functions. 34540 * oct-builtin.h, oct-builtin.cc: New files to declare and define 34541 class for built-in functions. 34542 * oct-mapper.h, oct-mapper.cc: New files to declare and define 34543 class for mapper functions. 34544 * oct-usr-fcn.h, oct-usr-fcn.cc: New files to declare and define 34545 base class for user-defined functions. 34546 * Makefile.in: Add new files to appropriate lists. 34547 34548 * pt-id.h, pt-id.cc: Move tree_identifier class here. 34549 * pt-fvc.h, pt-fvc.cc: From here. 34550 34551 * pt-indir.h, pt-indir.cc: Move tree_indirect_ref class here. 34552 * pt-fvc.h, pt-fvc.cc: From here. 34553 34554Thu Apr 24 03:58:16 1997 John W. Eaton <jwe@bevo.che.wisc.edu> 34555 34556 * parse.y (magic_colon): New nonterminal. 34557 (arg_list): Simplify using magic_colon. 34558 34559 * lex.h (class lexical_feedback): Delete maybe_screwed field. 34560 New field, parsed_function name. 34561 * lex.l (lexical_feedback::init): Initialize it. 34562 (handle_identifier): Don't return SCREW. Handle switching 34563 symbol table context properly for `function f ()' vs `function x ='. 34564 (is_keyword): If looking at function keyword, don't set current 34565 symbol table to point to the local table. 34566 * parse.y (recover_from_parsing_function): New function. 34567 (finish_function_def): Use identifier, not token. 34568 Simplify parsing of functions. 34569 34570 * ov-list.h, ov-list.cc: New files to implement generic list type. 34571 * ov.cc (list_indent): New global variable. 34572 (increment_list_indent, decrement_list_indent): New functions. 34573 (install_types): Register octave_list type. 34574 * ov-base.cc (octave_base_value::is_list): New function. 34575 34576 * oct-sym.h: New file. 34577 * ov.h (class octave_value): Derive from octave_symbol class. 34578 34579 * pt-const.h, pt-const.cc: Delete lots of old useless cruft. 34580 34581 * pt-exp.h, pt-exp.cc (tree_binary_expression): Use type codes for 34582 operators from octave_value instead of repeating them here. 34583 34584 * pt-fvc-base.cc (tree_fvc::increment, tree_fvc::decrement): Delete. 34585 * pt-fvc.cc (tree_identifier::increment): Get reference to value 34586 and increment that instead of using virutal tree_fvc::increment 34587 function. 34588 34589 * lex.l: Handle +=, -=, *=, /=, .+=, .-=, .*=, ./=, &=, and |= ops. 34590 * parse.y (make_assign_op): Rename from make_simple_assignment and 34591 handle different op types. 34592 (simple_expr1): Do new ops. 34593 * pt-misc.cc (initialize_undefined_elements): Pass op to assign. 34594 * pt-cmd.cc (tree_for_command::do_for_command_once): Likewise. 34595 * pt-fvc.cc (tree_identifier::assign): Pass op. 34596 * pt-exp.cc (tree_simple_assignment_expression): Handle new ops. 34597 * variables.cc (octave_variable_reference::assign): Likewise. 34598 * ov.h (class octave_value): Likewise. 34599 * ov.cc (octave_value::assign_op_as_string): New function. 34600 (octave_value::assign, octave_value::convert_and_assign, 34601 octave_value::try_assignment_with_conversion, 34602 octave_value::try_assignment): Pass op. 34603 * pt-pr-code.cc (tree_print_code::visit_simple_assignment_expression): 34604 Use expr.oper() instead of printing "=". 34605 * op-cm-cm.cc, op-cm-cs.cc, op-cm-m.cc, op-cm-s.cc, op-m-m.cc, 34606 op-m-s.cc, op-str-str.cc: Pass op to INSTALL_ASSIGNOP. 34607 * ops.h (INSTALL_ASSIGNOP): Pass op. 34608 * ov-typeinfo.cc (do_register_assign_op): Include op type in table. 34609 (do_lookup_assign_op): Use op in lookup. 34610 34611 * ops.h (INSTALL_UNOP): Delete. 34612 34613 * input.cc (generate_struct_completions, looks_like_struct): 34614 Disable, since they don't work now anyway. 34615 34616 * help.cc (Ftype): Work with octave_value instead of a pointer to 34617 tree_constant. 34618 * symtab.cc (symbol_record_info::symbol_record_info): Likewise. 34619 34620Tue Apr 22 22:59:55 1997 John W. Eaton <jwe@bevo.che.wisc.edu> 34621 34622 * file-io.cc (Ffprintf): If first arg is a string, assume FID = 1. 34623 34624Fri Apr 18 20:16:34 1997 John W. Eaton <jwe@bevo.che.wisc.edu> 34625 34626 * oct-obj.h, oct-obj.cc: Implement octave_value_list with 34627 Array<octave_value> as a data member, not as a class derived from 34628 Array<octave_value>. 34629 (octave_value_list::length, octave_value_list::resize, 34630 octave_value_list::prepend, octave_value_list::append, 34631 octave_value_list::reverse): New functions. 34632 34633 * op-cm-cm.cc, op-cm-cs.cc, op-cm-m.cc, op-cm-s.cc, op-cs-cm.cc, 34634 op-cs-m.cc, op-m-cm.cc, op-m-cs.cc, op-m-m.cc, op-m-s.cc, 34635 op-s-cm.cc, op-s-m.cc: Use new bool ops from liboctave instead of 34636 the macros defined in ops.h. 34637 34638Thu Apr 17 13:12:22 1997 John W. Eaton <jwe@bevo.che.wisc.edu> 34639 34640 * parse.y (ABORT_PARSE): Handle forced_interactive the same as 34641 interactive. 34642 34643Mon Apr 14 01:46:50 1997 John W. Eaton <jwe@bevo.che.wisc.edu> 34644 34645 * input.cc (octave_read): Don't forget to free input buffer if it 34646 exists and has zero length. 34647 (gnu_readline): Free buf if fgets returns 0. 34648 34649Wed Apr 9 00:03:57 1997 John W. Eaton <jwe@bevo.che.wisc.edu> 34650 34651 * time.cc (mk_tm_map): Only set zone field if HAVE_TM_ZONE or 34652 HAVE_TZNAME are defined. 34653 34654Tue Apr 8 12:39:21 1997 John W. Eaton <jwe@bevo.che.wisc.edu> 34655 34656 * time.cc (extract_tm): Set tm.tm_zone if HAVE_TM_ZONE is defined, 34657 not if HAVE_TMZONE is defined. 34658 34659 * Makefile.in (%.oct : %.o): Use $(SH_LD), not $(CXX). 34660 34661Wed Apr 2 21:32:16 1997 John W. Eaton <jwe@bevo.che.wisc.edu> 34662 34663 * dynamic-ld.cc, dynamic-ld.h (init_dynamic_linker): Delete 34664 function and declaration. 34665 * octave.cc (main): Don't call it. 34666 34667Mon Mar 31 00:37:48 1997 John W. Eaton <jwe@bevo.che.wisc.edu> 34668 34669 * pt-base-exp.h (tree_expression::eval): Give arg a default value. 34670 * pt-const.h (tree_constant::eval): Likewise. 34671 * pt-exp.h (tree_prefix_expression::eval, tree_colon_expression::eval, 34672 tree_postfix_expression::eval, tree_unary_expression::eval, 34673 tree_binary_expression::eval, tree_boolean_expression::eval, 34674 tree_simple_assignment_expression::eval): Likewise. 34675 * pt-fcn.h (tree_function::eval): Likewise. 34676 * pt-fvc.h (tree_identifier::eval, tree_indirect_ref::eval, 34677 tree_builtin::eval): Likewise. 34678 * pt-mat.h (tree_matrix::eval): Likewise. 34679 * pt-misc.h (tree_statement_list::eval): Likewise. 34680 * pt-mvr-base.h (tree_multi_val_ret::eval): Likewise. 34681 * pt-mvr.h (tree_oct_obj::eval, tree_index_expression::eval, 34682 tree_multi_assignment_expression::eval): Likewise. 34683 * dassl.cc, fsolve.cc, load-save.cc, lsode.cc, npsol.cc, parse.y, 34684 pt-cmd.cc, pt-exp-base.cc, pt-exp.cc, pt-fvc.cc, pt-mat.cc, 34685 pt-misc.cc, pt-mvr.cc, pt-plot.cc, quad.cc, toplev.cc, variables.cc: 34686 Change callers of eval() to use bool instead of int and to make 34687 use of default argument value. 34688 34689 * toplev.h, toplev.cc (parse_and_execute, eval_string): Flag args 34690 are now bool instead of int. 34691 34692 * symtab.h, symtab.cc: Use bool instead of int in more places. 34693 * variables.h, variables.cc: Likewise. 34694 * lex.h, lex.l: Likewise. 34695 * parse.y: Likewise. 34696 * help.cc, input.cc, lex.l, load-save.cc, parse.y, pt-fcn.cc: 34697 Change callers of symbol_table::lookup to use bool instead of int, 34698 and to make use of default arguments. 34699 34700Fri Mar 28 15:33:11 1997 John W. Eaton <jwe@bevo.che.wisc.edu> 34701 34702 * parse.y (Vwarn_comma_in_declaration): Delete. 34703 (symbols_of_parse): Delete DEFVAR for warn_comma_in_declaration. 34704 (decl1): Don't allow commas in declarations. 34705 34706 * lsode.cc (struct LSODE_OPTIONS): Handle integer options. 34707 (print_lsode_option_list, set_lsode_option, show_lsode_option): Ditto. 34708 (lsode_option_table): Add element for step limit. 34709 (lsode_user_jacobian): New function. 34710 (Flsode): Allow function name arg to be a 2-element string array 34711 specifying the function and jacobian function. 34712 34713 * variables.cc (get_global_value, set_global_value): New functions. 34714 34715Wed Mar 26 17:08:27 1997 John W. Eaton <jwe@bevo.che.wisc.edu> 34716 34717 Implement static variable declaration: 34718 34719 * lex.l (is_keyword): Handle static. 34720 * octave.gperf: Likewise. 34721 * parse.y (Vwarn_comma_in_declaration): Rename from 34722 Vwarn_comma_in_global_decl. 34723 Handle new static command. 34724 * pt-cmd.h, pt-cmd.cc (class tree_decl_command): New base class 34725 for static and global declaration commands. 34726 (class tree_global_command): Derive from tree_decl_command. 34727 (class tree_static_command): New class, derived from tree_decl_command. 34728 * pt-fvc.cc, pt-fvc.h (tree_identifier::mark_as_static): New function. 34729 * pt-misc.h, pt-misc.h (class tree_decl_elt): Rename from tree_global. 34730 (class tree_decl_init_list): Rename from tree_global_init_list. 34731 * pt-pr-code.cc, pt-pr-code.h (tree_print_code::visit_decl_command): 34732 Rename from visit_global_command. 34733 (tree_print_code::visit_decl_elt): Rename from visit_global. 34734 (tree_print_code::visit_decl_init_list): Rename from 34735 visit_global_init_list. 34736 * pt-walk.h (tree_walker::visit_decl_command): Rename from 34737 visit_global_command. 34738 (tree_walker::visit_decl_elt): Rename from visit_tree_global. 34739 (tree_walker::visit_decl_init_list): Rename from 34740 visit_global_init_list. 34741 * variables.cc (link_to_global_variable): Trying to make a static 34742 variable global is an error. 34743 * SLList-misc.cc: Instantiate lists of pointers to tree_decl_elt 34744 objects, not tree_global objects. 34745 * symtab.h, symtab.cc (symbol_record::tagged_static): New field. 34746 (symbol_record::mark_as_static, symbol_record::is_static): 34747 New functions. 34748 * symtab.cc (symbol_record::init_state): Initialize tagged_static. 34749 (symbol_record::clear): Don't clear static variables. 34750 * symtab.cc (push_context): Don't do anything for static variables. 34751 34752Tue Mar 25 17:17:17 1997 John W. Eaton <jwe@bevo.che.wisc.edu> 34753 34754 * ov-bool-mat.cc, ov-bool-mat.h, ov-bool.cc, ov-bool.h: New files. 34755 34756 * defaults.cc (symbols_of_defaults): DEFCONST OCTAVE_HOME. 34757 34758 * toplev.cc (octave_config_info): Delete use of CXXLIBS. 34759 * oct-conf.h.in: Ditto. 34760 34761 * octave.cc (maximum_braindamage): Don't bind prefer_zero_one_indexing. 34762 * ov.h: Don't declare Vprefer_zero_one_indexing. 34763 * ov.cc: Don't define Vprefer_zero_one_indexing. 34764 (prefer_zero_one_indexing): Delete. 34765 (symbols_of_value): Delete DEFVAR for prefer_zero_one_indexing. 34766 34767 * ov.h, ov.cc, ov-base.h, ov-base.cc: Add constructors and 34768 extractors for bool and boolMatrix types. 34769 34770 * ov.cc (install_types): Register octave_bool and 34771 octave_bool_matrix types. 34772 34773 * op-cm-cm.cc, op-cm-cs.cc, op-cm-m.cc, op-cm-s.cc, op-cs-cm.cc, 34774 op-cs-m.cc, op-m-cm.cc, op-m-cs.cc, op-m-m.cc, op-m-s.cc, 34775 op-s-cm.cc, op-s-m.cc, op-s-s.cc, ov-re-mat.cc: 34776 Return boolMatrix instead of Matrix object. 34777 * ops.h (BOOL_OP3, MX_MX_BOOL_OP): Likewise. 34778 34779 * op-b-b.h, op-b-b.cc, op-bm-bm.h, op-bm-bm.cc: New files. 34780 * Makefile.in: Add them to the lists. 34781 * ops.cc: Include header files here. 34782 (install_ops): Call install_b_b_ops() and install_bm_bm_ops() here. 34783 34784 * variables.cc (symbols_of_variables): Don't rely on default 34785 conversion from int to double for value returned from 34786 default_history_size(). 34787 34788 * pr-output.cc: Include cstdio. 34789 34790 * parse.y (param_list_end): Fix typo in last change. 34791 34792 * quad.cc (quad): Cast integer return values to double. 34793 * npsol.cc (show_npsol_option): Likewise. 34794 * qpsol.cc (show_qpsol_option): Likewise. 34795 * file-io.cc (Fsprintf, Ffwrite): Likewise. 34796 34797Mon Mar 24 13:11:47 1997 John W. Eaton <jwe@bevo.che.wisc.edu> 34798 34799 * ov-typeinfo.cc (typeinfo): If invoked with an argument, return 34800 the type of the argument as a string. Fix doc string. 34801 34802Thu Mar 20 14:47:49 1997 John W. Eaton <jwe@bevo.che.wisc.edu> 34803 34804 * mk-oct-links (links_dir): Don't use -h option for grep. It's 34805 not needed since we are working on one file at a time anyway. 34806 34807Mon Mar 17 10:53:29 1997 John W. Eaton <jwe@bevo.che.wisc.edu> 34808 34809 * lex.l (handle_identifier): When handling indirect_ref, set 34810 lexer_flags.quote_is_transpose to 1 so that a.b' to work as 34811 expected. 34812 34813 * parse.y (param_list_beg, param_list_end): New nonterminals. 34814 (param_list, param_list1): Use them. 34815 34816Wed Mar 12 16:57:28 1997 John W. Eaton <jwe@bevo.che.wisc.edu> 34817 34818 * Makefile.in (install-strip): New target. 34819 34820Mon Mar 10 22:38:16 1997 John W. Eaton <jwe@bevo.che.wisc.edu> 34821 34822 * Makefile.in (clean): Delete .oct files too. 34823 34824 * toplev.cc (Vdefault_eval_print_flag): New static variable. 34825 (eval_string): New arg, print. 34826 (Feval): Pass Vdefault_eval_print_flag to eval_string. 34827 (default_eval_print_flag): New function. 34828 (symbols_of_toplev): New function. 34829 34830 * variables.cc (install_builtin_variables): Call it. 34831 34832 * pt-exp.h, pt-exp.cc (class tree_boolean_expression): Rename enum 34833 fields `and' and `or' to `bool_and' and `bool_or'. 34834 (tree_unary_expression): Rename enum field `not' to `unot'. 34835 (class tree_binary_expression): Rename enum fields `and' and `or' 34836 to `el_and' and `el_or'. 34837 * parse.y: Change all uses. 34838 34839 * time.cc (extract_tm): Truncate field values instead of rounding. 34840 (gmtime, localtime): Likewise, for timeval. 34841 34842 * ov.h (class octave_value): Delete unused variable freeptr. 34843 34844 * mappers.cc: Delete functions that are already in 34845 liboctave/lo-mappers.cc. 34846 34847 * oct-strstrm.cc (octave_base_strstream::tell): Use const_cast, 34848 not static_cast. 34849 34850 * help.cc (help_from_list): Add missing const qualifiers. 34851 * help.h (struct help_list): Likewise. 34852 * lex.l (match_any, plot_style_token): Likewise. 34853 * load-save.cc (extract_keyword, ascii_save_type): Likewise. 34854 * oct-hist.cc (mk_tmp_hist_file): Likewise. 34855 * octave.cc (execute_startup_files): Likewise. 34856 * octave.gperf (struct octave_kw): Likewise. 34857 * pr-output.cc (pr_any_float): Likewise. 34858 * pt-mvr.cc (tree_index_expression::eval_error): Likewise. 34859 * pt-exp-base.h, pt-exp.h, pt-exp.cc: Likewise. 34860 * parse.y: Likewise. 34861 34862Sun Mar 9 03:46:45 1997 John W. Eaton <jwe@bevo.che.wisc.edu> 34863 34864 * pt-exp-base.h (tree_expression): Delete extra comma at end of list. 34865 34866 * dirfns.cc error.cc file-io.cc fsolve.cc input.cc load-save.cc 34867 npsol.cc pt-fcn.cc qpsol.cc quad.cc syscalls.cc toplev.cc 34868 variables.cc: Eliminate embedded newlines in string constants. 34869 34870 * Map.cc, data.cc, dirfns.cc, dynamic-ld.cc, file-io.cc, 34871 fsolve.cc, getgrent.cc, getpwent.cc, getrusage.cc, help.cc, 34872 input.cc, load-save.cc, mappers.cc, minmax.cc, npsol.cc, 34873 oct-fstrm.cc, oct-procbuf.h, oct-stdstrm.cc, oct-stdstrm.h, 34874 oct-stream.cc, oct-stream.h, oct-strstrm.cc, octave.cc, 34875 ov-base.h, ov-range.cc, ov-typeinfo.cc, ov.cc, pr-output.cc, 34876 pt-cmd.cc, pt-exp.cc, pt-fcn.cc, pt-fvc.cc, pt-mat.cc, 34877 pt-misc.cc, pt-plot.cc, qpsol.cc, quad.cc, sort.cc, strfns.cc, 34878 symtab.cc, syscalls.cc, sysdep.cc, time.cc, toplev.cc, 34879 unwind-prot.cc, unwind-prot.h, variables.cc, xpow.cc: 34880 Use `static_cast<T> (val)' instead of old C-style `(T) val' casts. 34881 34882Sat Mar 8 02:35:13 1997 John W. Eaton <jwe@bevo.che.wisc.edu> 34883 34884 * load-save.cc (save_ascii_data, save_three_d): Where appropriate, 34885 use bool instead of int. 34886 (save_binary_data, save_mat_binary_data, save_ascii_data): 34887 Print warning instead of error for wrong type arg. 34888 34889 * gripes.cc (gripe_wrong_type_arg): New arg, is_error. 34890 34891 * pt-plot.cc (save_in_tmp_file): Call save_ascii_data with bool 34892 arg, not int. 34893 34894Fri Mar 7 00:56:16 1997 John W. Eaton <jwe@bevo.che.wisc.edu> 34895 34896 * dassl.cc (show_dassl_option): For values that are determined 34897 automatically, return a string instead of a magic value (-1.0). 34898 * fsolve.cc (show_fsolve_option): Likewise. 34899 * lsode.cc (show_lsode_option): Likewise. 34900 * npsol.cc (show_npsol_option): Likewise. 34901 * qpsol.cc (show_qpsol_option): Likewise. 34902 34903 * variables.cc (extract_function): New function. 34904 * dassl.cc (Fdassl): Use it instead of is_valid_function. 34905 * fsolve.cc (Ffsolve): Likewise. 34906 * npsol.cc (Fnpsol): Likewise. 34907 * qpsol.cc (Fqpsol): Likewise. 34908 * quad.cc (Fquad): Likewise. 34909 34910Thu Mar 6 20:07:24 1997 John W. Eaton <jwe@bevo.che.wisc.edu> 34911 34912 * sighandlers.cc (my_friendly_exit, octave_new_handler, 34913 sigfpe_handler, sigpipe_handler): Don't all error() or warning(). 34914 34915 * pager.cc (pager_death_handler): Don't try to clear pager, just 34916 print message to cerr. 34917 (do_sync): If the status of the pager is bad or it looks like it 34918 is dead, restore the interrupt handler. 34919 34920 * load-save.cc (extract_keyword (istream&, char*, int&)): 34921 Move declaration of buf inside loop, to avoid deleting its guts 34922 and then trying to reuse it. 34923 (extract_keyword (istream&, char*)): Likewise. 34924 34925Tue Mar 4 20:36:53 1997 John W. Eaton <jwe@bevo.che.wisc.edu> 34926 34927 * pt-fcn.cc (tree_function::eval): Protect function from being 34928 redefined while it is being evaluated. 34929 (unprotect_function): New function, for use with unwind_protect stuff. 34930 * pt-fcn.h (tree_function::symtab_entry): New data member. 34931 (tree_function::init): Initialize it to 0. 34932 (tree_function::stash_symtab_ptr): New function. 34933 * parse.y (frob_function_def): Stash pointer to function's 34934 symbol_record in the function definition. 34935 34936 * symtab.cc (symbol_record::read_only_error): New argument, 34937 action. Change all callers. 34938 (symbol_record::rename): Don't allow read-only symbols to be renamed. 34939 34940 * variables.cc (Fexist): Don't let files with `.' in their names 34941 confuse us. 34942 34943 * symtab.cc (valid_identifier (const string&)): New function. 34944 34945Sat Mar 1 15:23:14 1997 John W. Eaton <jwe@bevo.che.wisc.edu> 34946 34947 * Version 2.0.5 released. 34948 34949Sat Mar 1 01:34:08 1997 John W. Eaton <jwe@bevo.che.wisc.edu> 34950 34951 * Makefile.in (stamp-oct-links): New target. Make links in build 34952 directory too, so that the tests will work. 34953 34954 * quad.cc: If quad is defined, undefine it. 34955 34956 * octave.cc: If WITH_KPATHSEARCH is defined, don't define 34957 program_invocation_name or program_invocation_short_name. 34958 34959 * strftime.c: Update to current version from FSF. 34960 * time.cc (Fstrftime): Call strftime with buf = 0 to get buffer 34961 size, then call again to actually format the time struct. 34962 34963Fri Feb 28 01:49:48 1997 John W. Eaton <jwe@bevo.che.wisc.edu> 34964 34965 Implement switch statement: 34966 34967 * parse.y (Vwarn_variable_switch_label): New static variable. 34968 (warn_variable_switch_label): New function. 34969 (symbols_of_parse): Provide warn_variable_switch_label as Octave 34970 variable here. 34971 (make_switch_case, finish_switch_command): New functions. 34972 (maybe_warn_variable_switch_label): New function. 34973 (end_error): Handle endswitch. 34974 (switch_command, case_list, case_list1, switch_case, default_case): 34975 New nonterminals. 34976 (command): Add switch_command here. 34977 * lex.l (is_keyword): Handle switch, case, otherwise, and endswitch. 34978 * octave_gperf: Recognize switch, case, otherwise, and endswitch. 34979 * token.h (end_tok_type): New item, switch_end. 34980 * pt-cmd.cc (tree_switch_command): New class. 34981 * pt-misc.cc (tree_switch_case, tree_switch_case_list): New classes. 34982 * pt-pr-code.cc (tree_print_code::visit_switch_case, 34983 tree_print_code::visit_switch_case_list, 34984 tree_print_code::visit_switch_command): New functions. 34985 * pt-walk.h (tree_walker::visit_switch_case, 34986 tree_walker::visit_switch_case_list, 34987 tree_walker::visit_switch_command): New pure virtual declarations. 34988 Implement new switch statement. 34989 * SLList-misc.cc: Instantiate lists of pointers to 34990 tree_switch_case objects too. 34991 34992 * lex.h, lex.l, parse.y: Delete all references to lexer_flags::iffing. 34993 34994 * syswait.h: Include sys/wait.h on NeXT systems, but don't use the 34995 WIFEXTED, WEXITSTATUS, and WIFSIGNALLED macros defined there. 34996 Also define waitpid in terms of wait4. From Rex A. Dieter 34997 <rdieter@math.unl.edu>. 34998 34999Wed Feb 26 16:43:31 1997 John W. Eaton <jwe@bevo.che.wisc.edu> 35000 35001 * oct-stream.cc (octave_base_stream::do_scanf): Don't report an 35002 error if a conversion fails or we reach EOF. 35003 35004Tue Feb 25 22:21:05 1997 John W. Eaton <jwe@bevo.che.wisc.edu> 35005 35006 * time.cc (strftime): increase initial buffer size. 35007 35008Mon Feb 24 17:49:21 1997 John W. Eaton <jwe@bevo.che.wisc.edu> 35009 35010 * pt-fvc.cc (tree_builtin::eval): Enable checking for max number 35011 of arguments. 35012 35013 * error.cc (handle_message): Don't fail if args is empty. 35014 35015Sun Feb 23 22:42:52 1997 John W. Eaton <jwe@bevo.che.wisc.edu> 35016 35017 * lex.h (lexical_feedback::looking_at_return_list): New field. 35018 (lexical_feedback::looking_at_parameter_list): Ditto. 35019 * lex.l (lexical_feedback::init): Initialize them. 35020 (handle_identifier): Use them. 35021 * parse.y: Likewise. 35022 35023Fri Feb 21 15:35:18 1997 John W. Eaton <jwe@bevo.che.wisc.edu> 35024 35025 * lex.l: Require flex 2.5 or later (we really want 2.5.4 or later, 35026 but there seems to be no good way to check the patchlevel). 35027 35028 * oct-stream.cc (octave_base_stream::oscanf): Instead of returning 35029 an error, just quit processing after a conversion fails. 35030 35031Thu Feb 20 02:58:05 1997 John W. Eaton <jwe@bevo.che.wisc.edu> 35032 35033 * Version 2.0.4 released. 35034 35035Wed Feb 19 10:30:14 1997 John W. Eaton <jwe@bevo.che.wisc.edu> 35036 35037 * sighandlers.cc (octave_ignore_interrupts, 35038 octave_catch_interrupts, octave_set_interrupt_handler): 35039 Return old value, not pointer to static data. Fix all uses. 35040 35041 * sighandlers.h (octave_interrupt_handler): Move declaration here. 35042 * sighandlers.cc: From here. 35043 35044 * toplev.cc: Undo previous change. 35045 35046 * lex.l (handle_identifier): Allow commands like ls, save, etc. to 35047 also be used as simple variable names. Also make it possible to 35048 use the normal function call syntax to invoke them. 35049 35050Tue Feb 18 09:22:04 1997 John W. Eaton <jwe@bevo.che.wisc.edu> 35051 35052 * Makefile.in (%.oct:%.o, %.oct:pic/%.o): Use $(SH_LDFLAGS) here. 35053 35054 * Version 2.0.3 released. 35055 35056Tue Feb 18 00:27:49 1997 John W. Eaton <jwe@bevo.che.wisc.edu> 35057 35058 * toplev.cc (run_command_and_return_output): 35059 Block SIGCHLD while running subprocess. 35060 (cleanup_iprocstream): Unblock it here. 35061 35062 * sighandlers.h (BLOCK_SIGNAL, BLOCK_CHILD, UNBLOCK_CHILD): Move here. 35063 * sighandlers.cc: From here. 35064 35065 * toplev.cc (system): Shift then mask exit status. 35066 35067 * help.cc (try_info): Shift first, then mask exit status. 35068 35069 * toplev.cc (octave_config_info): Handle option argument. 35070 35071Fri Feb 14 16:23:30 1997 John W. Eaton <jwe@bevo.che.wisc.edu> 35072 35073 * oct-stream.cc (octave_base_stream::do_scanf): Don't forget to 35074 check to see if the result matrix needs resizing! 35075 35076 * Makefile.in (bin-dist): Don't write empty strings to LIBRARIES. 35077 35078Thu Feb 13 03:02:08 1997 John W. Eaton <jwe@bevo.che.wisc.edu> 35079 35080 * Makefile.in (stamp-prereq): Depend on stamp-picdir. 35081 (all): Don't depend on stamp-prereq or stamp-picdir. 35082 (stamp-tinst, stamp-interp, libtinst.a, liboctinterp.a): 35083 Do depend on stamp-prereq. 35084 (stamp-picdir): Silence noise about making pic. 35085 (stamp-tinst, stamp-interp): Use $(SH_LD) $(SH_LDFLAGS) instead of 35086 $(CXX) -shared. 35087 35088 * oct-conf.h.in: Reinstate RLD_FLAG. 35089 * toplev.cc (octave_config_info): Likewise. 35090 35091 * data.cc (map_d_m, map_m_d, map_m_m): Rename from map. 35092 (Fatan2): Use new function names. 35093 35094 * pt-fvc.cc (apply_mapper_fcn): Use member function map() instead 35095 of friend function. 35096 35097 * gripes.cc (gripe_wrong_type_arg (const char*, const string&)): 35098 New function. 35099 35100Wed Feb 12 17:27:53 1997 John W. Eaton <jwe@bevo.che.wisc.edu> 35101 35102 * syscalls.cc (symbols_of_syscalls): Add O_ASYNC and O_SYNC. 35103 35104Mon Feb 10 01:22:27 1997 John W. Eaton <jwe@bevo.che.wisc.edu> 35105 35106 * dirfns.cc (Freaddir, Fmkdir, Frmdir, Frename): 35107 Also return status and error message. 35108 35109 * syscalls.cc (Fdup2, Fexec, Ffork, Ffcntl, Funlink, Fmkfifo, 35110 Fpipe, Fwaitpid): Also return error message. 35111 35112Sat Feb 8 17:16:09 1997 John W. Eaton <jwe@bevo.che.wisc.edu> 35113 35114 * pt-exp.cc (tree_simple_assignment_expression::eval): Return 35115 value of RHS, but (if printing) print complete value of LHS. 35116 35117 * pr-output.cc (octave_print_internal): Print a new line for empty 35118 string matrices. 35119 35120Wed Feb 5 14:30:44 1997 John W. Eaton <jwe@bevo.che.wisc.edu> 35121 35122 * oct-stream.cc (scanf_format_list::process_conversion): Accept 35123 but don't actually use h, l, and L modifiers. Always insert l 35124 modifier for floating point conversions. 35125 35126Fri Jan 31 13:55:10 1997 John W. Eaton <jwe@bevo.che.wisc.edu> 35127 35128 * pager.cc (do_sync): Always flush the cout stream after writing. 35129 35130Wed Jan 29 08:25:29 1997 John W. Eaton <jwe@bevo.che.wisc.edu> 35131 35132 * defaults.cc (exec_path): Don't include bin_dir in std_path. 35133 35134 * pager.cc (do_sync): Flush the cout stream after writing if 35135 running in interactive or forced_interactive mode. 35136 35137 * mk-oct-links: Rename from mk-oct-links.in. 35138 Don't use symbolic links. 35139 * Makefile.in: Distribute mk-oct-links, not mk-oct-links.in 35140 (mk-oct-links): Delete target. 35141 (install-oct, bin-dist): Don't depend on mk-oct-links. 35142 Run $(srcdir)/mk-oct-links, not ./mk-oct-links. 35143 35144 * qr.cc (qr): Doc fix. 35145 35146Tue Jan 28 10:48:28 1997 John W. Eaton <jwe@bevo.che.wisc.edu> 35147 35148 * Makefile.in (install-inc): Create a relative symbolic link. 35149 (install-bin): Create a relative symbolic link. 35150 35151Mon Jan 27 12:12:03 1997 John W. Eaton <jwe@bevo.che.wisc.edu> 35152 35153 * Version 2.0.2 released. 35154 35155 * Makefile.in (CXXFLAGS_NO_PT_FLAGS): Rename from XALL_CXXFLAGS. 35156 Substitute bsd_gcc_kluge_targets_frag. 35157 35158 * sysdep.cc (Fsleep): New function. 35159 (Fusleep): New function. 35160 35161 * toplev.cc (octave_config_info): Don't include RLD_FLAG. 35162 * oct-conf.h.in: Don't define RLD_FLAG 35163 35164Sun Jan 26 19:41:48 1997 John W. Eaton <jwe@bevo.che.wisc.edu> 35165 35166 * sighandlers.cc (sigchld_handler): Block SIGCHLD while 35167 sigchld_hander is running. 35168 35169Sat Jan 25 22:36:39 1997 John W. Eaton <jwe@bevo.che.wisc.edu> 35170 35171 * Makefile.in (bin-dist): Update for 2.x. 35172 35173Fri Jan 24 10:05:00 1997 John W. Eaton <jwe@bevo.che.wisc.edu> 35174 35175 * mk-oct-links.in: New arg, -p, to just print list of files to link. 35176 35177 * lex.l (handle_number): Convert `D' or `d' exponents to `e' 35178 before scanning. 35179 35180Thu Jan 23 10:00:00 1997 John W. Eaton <jwe@bevo.che.wisc.edu> 35181 35182 * pt-pr-code.h, pt-pr-code.cc (tree_print_code::visit_no_op_command): 35183 New function. 35184 * pt-cmd.h, pt-cmd.cc (tree_no_op_command): New class. 35185 * parse.y (make_break_command, make_continue_command, 35186 make_return_command): Where they don't really make sense, turn 35187 these commands into no-ops. Accept return and break if reading a 35188 script file. 35189 * toplev.cc (parse_and_execute): Handle return and break in script 35190 files. Quit executing commands if an error occurs when reading a 35191 script file. Set global_command to 0 after deleting it. 35192 (main_loop): If not interactive or forced_interactive, handle 35193 break and return, and quit executing commands if an error occurs. 35194 Set global_command to 0 after deleting it. 35195 * error.cc (Ferror): Doc fix. 35196 * pt-walk.h (tree_walker): Add declaration for visit_no_op_command. 35197 35198Wed Jan 22 20:54:12 1997 John W. Eaton <jwe@bevo.che.wisc.edu> 35199 35200 * input.cc (gnu_readline): If not using readline, flush 35201 rl_outstream after printing prompt. 35202 (octave_gets): Also call flush_octave_stdout() if 35203 forced_interactive, not just if interactive. 35204 (do_input_echo): If forced_interactive, only echo prompt and 35205 command line if also reading a script file. 35206 35207Tue Jan 21 23:02:34 1997 John W. Eaton <jwe@bevo.che.wisc.edu> 35208 35209 * SLList.h: Include "BaseSLList.h", not <BaseSLList.h>. 35210 35211Mon Jan 20 11:11:12 1997 John W. Eaton <jwe@bevo.che.wisc.edu> 35212 35213 * lex.l (token_stack): Don't declare static. 35214 * pt-plot.cc (tmp_files): Likewise. 35215 * toplev.cc (octave_atexit_functions): Likewise. 35216 * unwind-prot.cc (unwind_protect_list): Likewise. 35217 35218 * ops.h (MX_MX_BOOL_OP): Correctly handle case of one or both 35219 arguments being empty. Change all callers. 35220 35221 * oct-stream.cc (printf_value_cache::looking_at_string): 35222 Handle empty strings correctly now that they are 0x0. 35223 35224 * file-io.cc: Don't include "syswait.h" here. 35225 35226Sun Jan 19 22:38:45 1997 John W. Eaton <jwe@bevo.che.wisc.edu> 35227 35228 * oct-stream.h (octave_base_stream::seek): Declare offset arg as 35229 streamoff, not streampos. 35230 (octave_stream::seek): Likewise. 35231 * oct-strstrm.h (octave_base_strstream::seek): Likewise. 35232 * oct-stdstrm.h (octave_base_stdiostream::seek): Likewise. 35233 * oct-iostrm.h (octave_base_iostream::seek): Likewise. 35234 * oct-fstrm.h (octave_fstream::seek): Likewise. 35235 35236Fri Jan 17 18:13:10 1997 John W. Eaton <jwe@bevo.che.wisc.edu> 35237 35238 * file-io.cc (Ffflush): Handle stdout as a special case. 35239 35240 * oct-stream.cc (octave_stream_list::do_get_file_number): 35241 Do the work for octave_stream::get_file_number. 35242 (octave_stream_list::get_file_number): Convert to static function. 35243 35244Wed Jan 8 11:42:44 1997 John W. Eaton <jwe@bevo.che.wisc.edu> 35245 35246 * log.cc (sqrtm): For complex arg case, compute sqrt, not log. 35247 35248Tue Jan 7 00:16:41 1997 John W. Eaton <jwe@bevo.che.wisc.edu> 35249 35250 * Version 2.0.1 released. 35251 35252Mon Jan 6 00:00:07 1997 John W. Eaton <jwe@bevo.che.wisc.edu> 35253 35254 * pt-mat.cc (tm_row_const_rep::all_mt): New variable. 35255 (tm_row_const::all_empty): New function. 35256 (tm_row_const::tm_row_const_rep::init): Set all_mt here. 35257 (tm_const::all_mt): New variable. 35258 (tm_const::all_emtpy): New function. 35259 (tm_const::init): Set all_mt here. 35260 (tree_matrix::eval): Return an empty matrix if the list contains 35261 only empty elements. If it contains only empty strings, return an 35262 empty string. 35263 35264Sun Jan 5 12:50:25 1997 John W. Eaton <jwe@bevo.che.wisc.edu> 35265 35266 * ops.h (SC_MX_BOOL_OP, MX_SC_BOOL_OP): New arg, empty_result. 35267 * op-cm-cm.cc, op-cm-cs.cc, op-cm-m.cc, op-cm-s.cc, op-cs-cm.cc, 35268 op-cs-m.cc, op-m-cm.cc, op-m-cs.cc, op-m-m.cc, op-m-s.cc, 35269 op-s-cm.cc, op-s-m.cc, op-str-str.cc: Change all uses of 35270 SC_MX_BOOL_OP and MX_SC_BOOL_OP macros. Return correct results 35271 for empty matrix cases. 35272 35273 * pt-fcn.cc (tree_function::eval): If Vdefine_all_return_values is 35274 true, initialize return values before evaluating function, for 35275 compatibility with Matlab. 35276 35277 * oct-stream.cc (get_size): Correctly set size when arg is scalar. 35278 35279Thu Jan 2 12:40:10 1997 John W. Eaton <jwe@bevo.che.wisc.edu> 35280 35281 * Makefile.in (install-oct): Quote $(OCT_FILES) in for loop to 35282 avoid syntax error from ksh. 35283 35284 * pr-output.cc (octave_print_internal): Avoid unused parameter 35285 warning from gcc. 35286 35287Thu Dec 19 12:13:42 1996 John W. Eaton <jwe@bevo.che.wisc.edu> 35288 35289 * oct-stream.cc (octave_base_stream::do_scanf): 35290 Don't treat %l{e,f,g} differently from %{e,f,g}. 35291 (octave_base_stream::do_oscanf): Likewise. 35292 35293 * sighandlers.cc (sigchld_handler): Fix typos. 35294 35295Wed Dec 18 20:17:23 1996 John W. Eaton <jwe@bevo.che.wisc.edu> 35296 35297 * file-io.cc (Ffgetl, Ffgets): Also return number of characters read. 35298 35299 * ov-range.cc (octave_range::not): New function. 35300 * ov-range.h (octave_range::uminus): New function. 35301 35302 * BaseSLList.cc: Include error.h. 35303 (BaseSLList::error): Call ::error() to process error message. 35304 35305Fri Dec 13 02:38:19 1996 John W. Eaton <jwe@bevo.che.wisc.edu> 35306 35307 * ov.cc (octave_value::convert_and_assign): Preserve lhs value if 35308 assignment fails. 35309 35310Wed Dec 11 12:33:16 1996 John W. Eaton <jwe@bevo.che.wisc.edu> 35311 35312 * pt-plot.cc (GPLOT_CMD_END): Don't put semicolons at the end of 35313 each plot command; it causes trouble with gnuplot 3.5. 35314 35315Tue Dec 10 00:31:13 1996 John W. Eaton <jwe@bevo.che.wisc.edu> 35316 35317 * Version 2.0 released. 35318 35319 * pr-output.cc (set_format_style): Don't try to access argv unless 35320 argc > 1. 35321 35322 * SLList-expr.cc SLList-misc.cc SLList-plot.cc SLList-str.cc 35323 SLList-tc.cc SLList-tm.cc SLList.h SLStack-i.cc SLStack-pc.cc 35324 SLStack-str.cc SLStack-sym.cc SLStack-tok.cc SLStack-ue.cc 35325 SLStack-ui.cc, pt-mat.cc: Include Stack.h, Stack.cc, SLStack.cc, 35326 and SLList.cc as necessary. 35327 35328 * Stack.cc, SLStack.cc, SLList.cc: New files. 35329 * Makefile.in (SOURCES): Add them to the list. 35330 35331Mon Dec 9 12:03:45 1996 John W. Eaton <jwe@bevo.che.wisc.edu> 35332 35333 * Makefile.in (install-bin): Use $(EXE) suffix so install will 35334 find the right file on cygwin32 systems. 35335 35336 * ov.h: Declare proper form of do_binary_op as friend to 35337 octave_value class. 35338 35339Sat Dec 7 22:00:10 1996 John W. Eaton <jwe@bevo.che.wisc.edu> 35340 35341 * oct-stream.cc (do_printf_conv, do_scanf_conv, 35342 do_oscanf_num_conv, do_oscanf_str_conv): Convert to real 35343 functions instead of CPP macros, using templates where necessary. 35344 (do_oscanf_num_conv, do_oscanf_str_conv): Correctly handle 35345 discarded values. 35346 35347Fri Dec 6 00:20:25 1996 John W. Eaton <jwe@bevo.che.wisc.edu> 35348 35349 * Version 1.94. 35350 35351 * Map-*.cc, SLList-*.cc, SLStack-*.cc: Include config.h. 35352 35353 * ov.h: Don't include SLList.h. 35354 35355 * SLStack.cc: Delete. Move everything to SLStack.h. 35356 35357 * BaseSLList.h, BaseSLList.cc: New files. Split out the 35358 non-template base class parts of SLList. 35359 35360 * Makefile.in (TEMPLATE_SRC): Delete. Move files to SOURCES. 35361 * Map.h, Map.cc: Add #pragma interface/implementation. 35362 * SLStack.h, SLStack.cc: Add #pragma interface/implementation. 35363 35364 * SLList.h, SLList.cc: New files, from libg++, but with #pragma 35365 interface/implementation. 35366 * Makefile.in (SOURCES): Add SLList.cc. 35367 (INCLUDES): Add SLList.h. 35368 35369Thu Dec 5 18:36:44 1996 John W. Eaton <jwe@bevo.che.wisc.edu> 35370 35371 * octave.cc: Don't include sun-utils.h. 35372 35373Tue Dec 3 23:47:09 1996 John W. Eaton <jwe@bevo.che.wisc.edu> 35374 35375 * op-str-str.cc (eq, ne): Handle operations with scalars. 35376 35377Thu Nov 21 12:30:36 1996 John W. Eaton <jwe@bevo.che.wisc.edu> 35378 35379 * ov-str-mat.h (octave_char_matrix_str): Provide transpose and 35380 hermitian operators. 35381 * ov-ch-mat.h (octave_char_matrix): Likewise. 35382 35383Wed Nov 20 00:35:57 1996 John W. Eaton <jwe@bevo.che.wisc.edu> 35384 35385 * sighandlers.h (struct octave_interrupt_handler): Provide 35386 forward declaration here. 35387 * sighandlers.cc (octave_interrupt_handler): New struct. 35388 (octave_catch_interrupts): Rename from catch_interrupts. 35389 (octave_ignore_interrupts, octave_set_interrupt_handler): 35390 New functions. 35391 * help.cc, oct-hist.cc, pager.cc, toplev.cc: Use new functions for 35392 handling interrupts so that we can hide the details of whether or 35393 not we have to deal with SIGBREAK. 35394 35395 * pt-plot.cc [! HAVE_POSIX_SIGNALS] (open_plot_stream): 35396 Simply ignore and restore the interrupt handler here. 35397 35398 * sighandlers.cc (MAYBE_REINSTALL_SIGHANDLER): New macro. Use it 35399 instead of always checking MUST_REINSTALL_SIGHANDLERS everywhere. 35400 (sigchld_handler): If octave_child_list is empty, wait for any 35401 child, but don't hang, and don't collect status info. 35402 [__EMX__] (sigchld_handler): Save and restore handlers for SIGINT, 35403 SIGBREAK, and SIGCHLD. Ignore them while waiting on children. 35404 (install_signal_handlers): If SIGBREAK exists, handle it like SIGINT. 35405 35406 * toplev.cc [USE_READLINE] (clean_up_and_exit): 35407 Call rl_deprep_terminal() to restore terminal settings. 35408 35409 * sysdep.cc [__EMX__ && OS2] (Fextproc): New command. 35410 [__EMX__ && OS2] (FEXTPROC): Alias for Fextproc. 35411 35412 * Version 1.93. 35413 35414 * sysdep.cc (octave_chdir): [__EMX__]: Make copy of string before 35415 converting to upper case. 35416 35417 * getgrent.cc (mk_gr_map): Only set the passwd field if 35418 HAVE_GR_PASSWD is defined. 35419 35420Tue Nov 19 12:01:13 1996 John W. Eaton <jwe@bevo.che.wisc.edu> 35421 35422 * sysdep.cc (OS2_init): New function. 35423 [__EMX__] (sysdep_init): Call it. 35424 35425 * lex.l (plot_style_token): Add new plot styles for gnuplot 3.6. 35426 * pt-plot.cc (subplot_style::columns_ok): Rename from 35427 subplot_style::errorbars. Recognize more styles and do a better 35428 job of diagnosing column number/style mismatches. 35429 35430 * sighandlers.cc (my_friendly_exit): If we are called twice, try 35431 to remove the signal handler for SIGABRT and the call abort (). 35432 35433 * help.cc (Ftype): If a function is defined from a file and 35434 transformed text has not been requested, just print the contents 35435 of the file. 35436 35437 * parse.y (fold): New functions for constant folding for binary 35438 and unary expressions. Keep track of original text even when 35439 transformations occur. 35440 (make_binary_op, make_boolean_op, make_unary_op): Use them. 35441 (finish_colon_expression, finish_matrix): Keep track of original 35442 text even when transformations occur. 35443 35444 * help.cc (Ftype): Don't mess with Vps4. 35445 Handle new option `-transformed'. 35446 35447 * pt-const.h, pt-const.cc (tree_constant::print): 35448 New arg, pr_orig_text. 35449 35450 * pt-exp.h, pt-exp.cc (tree_colon_expression::is_range_constant): 35451 Delete. 35452 35453 * pt-exp-base.h (tree_expression::original_text): New virtual function. 35454 pt-exp-base.cc (tree_expression::original_text): Default version. 35455 35456 * pt-pr-code.h (tree_print_code::print_original_text, 35457 tree_print_code::prefix): New fields. 35458 * pt-pr-code.cc (tree_print_code::visit_constant): Pass 35459 print_original_text to tree_constant::print(). 35460 (tree_print_code::indent): Use prefix instead of Vps4. 35461 * pt-fcn.cc (tree_function::print_function_header, 35462 tree_function::print_function_trailer): Pass Vps4 to 35463 tree_print_code_constructor for prefix. 35464 * pt-misc.cc (tree_statement::maybe_echo_code): Pass Vps4 to 35465 tree_print_code_constructor for prefix. 35466 35467 * pt-mat.h, pt-mat.cc (tree_matrix::all_elements_are_constant): 35468 Rename from is_matrix_constant. 35469 (tree_matrix_row::all_elements_are_constant): Likewise. 35470 Change all callers. 35471 35472Mon Nov 18 14:13:32 1996 John W. Eaton <jwe@bevo.che.wisc.edu> 35473 35474 * Makefile.in (install-inc): Try harder to create the link from 35475 include/octave to include/octave-VERSION. 35476 35477Sun Nov 17 14:14:48 1996 John W. Eaton <jwe@bevo.che.wisc.edu> 35478 35479 * Makefile.in (parse.cc): Expect 13 shift/reduce conflicts. 35480 35481 * parse.y (set_stmt_print_flag): New function. 35482 (sep_type): New member for bison %union declaration. 35483 Simplify rules for statement lists keeping track of the type of 35484 the first separator in the values associated with the 35485 nonterminals for the separators. 35486 35487 * lex.l (handle_identifier): Set lexer_flags.doing_set if the 35488 token is "gset", not "set". 35489 35490Sat Nov 16 21:41:26 1996 John W. Eaton <jwe@bevo.che.wisc.edu> 35491 35492 * Makefile.in (parse.cc, lex.cc): Add special rules for these files. 35493 Delete pattern rules for .y and .l files. 35494 35495Fri Nov 15 13:48:02 1996 John W. Eaton <jwe@bevo.che.wisc.edu> 35496 35497 * pt-plot.cc: Put semicolons at the ends of all plot commands. 35498 35499 * defaults.cc (subst_octave_home): Start subsequent searchs from 35500 the end of the replaced text. 35501 35502 * pr-output.cc (pr_any_float): Kluge for SCO systems. 35503 35504 * pr-output.cc (pr_any_float, pr_complex): Don't declare inline. 35505 35506 * mappers.cc: Include lo-ieee.h, for isinf and isnan on SCO 35507 systems. 35508 35509Thu Nov 14 00:06:19 1996 John W. Eaton <jwe@bevo.che.wisc.edu> 35510 35511 * pt-plot.cc (Fgset, Fgshow): New commands. 35512 (Fshow): Print warning and call gshow. 35513 (Fset): Print warning and call gset. 35514 35515 * variables.cc (parse_fcn_file): Add unwind-protect for file 35516 pointer, so the file is always closed. 35517 (get_help_from_file): Likewise. 35518 * toplev.cc (parse_and_execute): Likewise. 35519 35520 * Makefile.in (install-oct): Depend on mk-oct-links. 35521 (mk-oct-links): New target. 35522 35523 * Version 1.92. 35524 35525Wed Nov 13 11:13:22 1996 John W. Eaton <jwe@bevo.che.wisc.edu> 35526 35527 * sighandlers.cc (sys_siglist): [__EMX__]: Add definitions. 35528 35529 * octave.cc (execute_startup_files): Allow init file name ot be 35530 specified by an environment variable. 35531 35532 * dirfns.cc (make_absolute): [__EMX__]: Path is already absolute 35533 if it begins with any character followed by a colon. 35534 35535 * load-save.cc (read_mat_ascii_matrix, get_lines_and_columns, 35536 get_complete_line): New functions, for reading headless text files. 35537 (load_save_format): Add LS_MAT_ASCII, for headless text files. 35538 (do_load): Handle LS_MAT_ASCII files. 35539 Thanks to Mel Melchner <mjm@research.att.com> for initial version 35540 of this code. 35541 35542 * sysdep.cc: Conditionally include ieeefp.h. 35543 (BSD_init, SCO_init): New functions. 35544 (sysdep_init): Conditionally call them here. 35545 35546Tue Nov 12 00:14:56 1996 John W. Eaton <jwe@bevo.che.wisc.edu> 35547 35548 * pt-plot.cc (open_plot_stream): Don't block SIGCHLD. 35549 35550 * load-save.cc (read_binary_data): When reading string arrays, be 35551 sure to create an octave_char_matrix_str object, not just an 35552 octave_char_matrix object. 35553 (read_ascii_data): Likewise. 35554 35555Mon Nov 11 22:52:58 1996 John W. Eaton <jwe@bevo.che.wisc.edu> 35556 35557 * load-save.cc (read_binary_data): Don't forget teminating NUL for 35558 string that we plan to insert. 35559 (read_ascii_data): Likewise. 35560 35561Sun Nov 10 16:58:07 1996 John W. Eaton <jwe@bevo.che.wisc.edu> 35562 35563 * dirfns.cc (Ffnmatch): New function. 35564 35565 * octave.cc (intern_argv): Use new string_vector constructor. 35566 35567 * ov-str-mat.cc (octave_char_matrix_str::all_strings): Have 35568 charMatrix::row_as_string() strip trailing whitespace. 35569 35570 * dirfns.cc (Fglob): new function. 35571 35572 * sysdep.cc (oct_tilde_expand): Provide version that works on 35573 string vectors too. 35574 (Ftilde_expand): Work on string vector args. 35575 35576 * load-save.cc (save_binary_data): Call char_matrix_value() to 35577 extract charMatrix from octave_value object, not all_strings(). 35578 (save_ascii_data): Likewise. 35579 * pt-mat.cc (tree_matrix::eval): Likewise. 35580 35581 * ov.h (octave_value::all_strings): Return string_vector, not 35582 charMatrix. 35583 * ov-base.cc (octave_base_value::all_strings): Likewise. 35584 * ov-str-mat.h, ov-str-mat.cc (octave_char_matrix_str::all_strings): 35585 Likewise. 35586 35587Fri Nov 8 09:54:59 1996 John W. Eaton <jwe@bevo.che.wisc.edu> 35588 35589 * defaults.cc, dynamic-ld.cc, fn-cache.cc, help.cc, oct-hist.cc, 35590 octave.cc, pager.cc, pt-fcn.cc, toplev.cc, utils.cc, variables.cc, 35591 lex.l: Change #include "" to #include <> for defaults.h, 35592 oct-conf.h, oct-gperf.h, y.tab.h, and version.h, to avoid getting 35593 them from $srcdir when we really want the version from the build 35594 directory. (Maybe this should be done for all the include files, 35595 not just those that are auto-generated? Hmm.) 35596 35597 * defaults.h.in (CXXLIB_LIST, CXXLIB_PATH, FLIB_LIST, FLIB_PATH): 35598 Delete. 35599 35600 * Makefile.in (install-oct): Use $(INSTALL_PROGRAM) for .oct files. 35601 35602Thu Nov 7 07:59:07 1996 John W. Eaton <jwe@bevo.che.wisc.edu> 35603 35604 * variables.cc (gobble_leading_white_space): New arg, update_pos. 35605 * (is_function_file): Don't update file position information here. 35606 35607 * Version 1.91. 35608 35609 * pt-fvc.cc (tree_indirect_ref::reference): If the lhs object is 35610 not a map, convert it to one. 35611 35612 * ov-typeinfo.h (init_tab_sz): New static member. 35613 35614 * ov-struct.cc, ov-struct.h: Add hooks for custom memory management. 35615 * ov-scalar.cc, ov-scalar.h: Likewise. 35616 * ov-re-mat.cc, ov-re-mat.h: Likewise. 35617 * ov-range.cc, ov-range.h: Likewise. 35618 * ov-cx-mat.cc, ov-cx-mat.h: Likewise. 35619 * ov-complex.cc, ov-complex.h: Likewise. 35620 * ov-ch-mat.cc, ov-ch-mat.h: Likewise. 35621 35622Wed Nov 6 12:32:48 1996 John W. Eaton <jwe@bevo.che.wisc.edu> 35623 35624 * pager.cc (do_sync): Don't call clear_external_pager() here. 35625 35626 * pt-const.h (tree_constant::allocator) New static member. 35627 (tree_constant::operator new, tree_constant::operator delete): 35628 Implement with custom allocator. 35629 35630 * syscalls.cc (Fgetgid, Fgetegid): New functions. 35631 35632 * sighandlers.cc (sigchld_handler): If necessary, reinstall 35633 handler after call to waitpid(). 35634 35635 * pager.cc (pager_death_handler): Don't use warning() to print 35636 message. 35637 35638 * getgrent.cc: New file. 35639 * Makefile.in (DLD_SRC): Add it. 35640 35641 * ov.cc (octave_value::print_with_name): Call is_map() instead of 35642 print_as_structure(). 35643 * ov-struct.cc (octave_struct::print): Likewise. 35644 35645 * ov.h, ov.cc, pt-const.h: Delete force_numeric(), make_numeric(), 35646 convert_to_matrix_type(), print_as_structure() member functions. 35647 35648 * variables.cc (is_function_file): Call gobble_leading_whitespace 35649 here to strip all leading whitespace and comments. 35650 (parse_fcn_file): If reading a function file, call 35651 gobble_leading_whitespace again after resetting parser state to 35652 grab help text. 35653 35654Tue Nov 5 13:00:35 1996 John W. Eaton <jwe@bevo.che.wisc.edu> 35655 35656 * syscalls.cc (Fgeteuid, Fgetuid): New functions. 35657 35658 * getpwent.cc: Use gripe_not_supported from gripes.cc, instead of 35659 local gripe_not_implemented function. 35660 35661 * input.cc, sysdep.cc, variables.cc: Only include readline.h and 35662 history.h if USE_READLINE is defined. 35663 35664 * help.cc: Make it compile without warnings even if USE_GNU_INFO 35665 is not defined. 35666 35667 * sighandlers.h (octave_child_list): Don't define 35668 HAVE_POSIX_SIGNALS HERE. 35669 35670 * sighandlers.cc (SIGHANDLER_RETURN): New macro. 35671 (generic_sig_handler, sigchld_handler, sigfpe_handler, 35672 sigint_handler, sigpipe_handler): Use it. 35673 (sigchld_handler, sigfpe_handler, sigint_handler, sigpipe_handler): 35674 Only reinstall signal handler if MUST_REINSTALL_SIGHANDLER is defined. 35675 35676Sun Nov 3 00:45:30 1996 John W. Eaton <jwe@bevo.che.wisc.edu> 35677 35678 * pt-const.cc (tree_constant::print): Just call val.print(). 35679 * ov-base.cc, ov-ch-mat.cc, ov-colon.cc, ov-complex.cc, 35680 ov-cx-mat.cc, ov-range.cc, ov-re-mat.cc, ov-scalar.cc, 35681 ov-str-mat.cc, ov-struct.cc ov-va-args.cc, ov.cc (print): 35682 Handle pr_as_read_syntax arg. 35683 35684 * defaults.cc (subst_octave_home): Search for prefix repeatedly in 35685 retval, not s. 35686 35687 * gripes.h: Make declaration of gripes_not_supported match 35688 definition. 35689 35690 * mk-oct-links.in: In sed command, match "DEFUN_DLD *( *", not 35691 "DEFUN_DLD_BUILTIN *( *". 35692 35693 * chol.cc, colloc.cc, dassl.cc, det.cc, eig.cc, expm.cc, fft.cc, 35694 fft2.cc, filter.cc, find.cc, fsolve.cc, fsqp.cc, getpwent.cc, 35695 getrusage.cc, givens.cc, hess.cc, ifft.cc, ifft2.cc, inv.cc, 35696 log.cc, lpsolve.cc, lsode.cc, lu.cc, minmax.cc, npsol.cc, pinv.cc, 35697 qpsol.cc, qr.cc, quad.cc, qzval.cc, rand.cc, schur.cc, sort.cc, 35698 svd.cc, syl.cc, time.cc: Change all uses of DEFUN_DLD_BUILTIN to 35699 be just DEFUN_DLD. 35700 35701 * defun-dld.h: Eliminate DEFUN_DLD_BUILTIN. 35702 35703 * syswait.h: Use #ifdef HAVE_SYS_WAIT_H, not #if HAVE_SYS_WAIT_H 35704 to decide whether to include sys/wait.h. 35705 35706 * pt-exp-base.h (tree_expression): Declare oper() here as a 35707 virtual member function. 35708 35709 * pt-pr-code.cc (tree_print_code::visit_constant): Check for 35710 string before checking for char_matrix. 35711 35712 * ov-ch-mat.cc (octave_char_matrix::print): Supply correct number 35713 of args to octave_print_internal(). 35714 35715Sat Nov 2 20:44:55 1996 John W. Eaton <jwe@bevo.che.wisc.edu> 35716 35717 * file-io.cc (Ftmpnam): Rename from Foctave_temp_file_name. 35718 35719 * Makefile.in (DLD_SRC): Move time.cc and getrusage.cc here from 35720 SOURCES. Add getpwent.cc. 35721 35722 * getrusage.cc: Rename from resource.cc. Make getrusage a 35723 loadable function. 35724 35725 * time.cc: Rename from timefns.cc. Make time functions loadable. 35726 35727 * getpwent.cc: New file. 35728 35729Wed Oct 30 01:06:19 1996 John W. Eaton <jwe@bevo.che.wisc.edu> 35730 35731 * Version 1.90. 35732 35733 * Makefile.in (DISTFILES): Add ChangeLog. 35734 35735 * ov-range.cc (octave_range::convert_to_str): New function. 35736 35737 * ov-str-mat.h (octave_char_matrix_str::char_matrix_value): 35738 Delete function. Already handled by octave_char_matrix class. 35739 35740 * ov-ch-mat.h (octave_char_matrix::convert_to_str): New function. 35741 35742 * pager.cc (Fmore): Set page_screen_output to 1.0 or 0.0, not 35743 "true" or "false". 35744 35745 * ov-ch-mat.cc, ov-struct.cc, ov-struct.h, pr-output.cc, 35746 pt-cmd.cc, pt-const.cc, pt-const.h, pt-fcn.cc, pt-fvc-base.cc, 35747 pt-fvc-base.h, pt-fvc.cc, pt-fvc.h, rand.cc, sighandlers.cc, 35748 variables.cc, variables.h: Delete unused code. 35749 35750 * octave.cc: Only include pwd.h if HAVE_PWD_H. 35751 35752 * oct-strstrm.h: Include <string>, not <string.h>. 35753 35754 * defaults.cc, dirfns.cc, file-io.cc, help.cc, input.cc, 35755 oct-hist.cc, oct-procbuf.cc, oct-procbuf.h, octave.cc, pager.h, 35756 procstream.h, pt-misc.cc, pt-plot.cc, sighandlers.cc, strftime.c, 35757 syscalls.cc, sysdep.cc, syswait.h, toplev.cc, utils.cc, 35758 variables.cc: Only include sys/types.h if HAVE_SYS_TYPES_H. 35759 35760 * error.h (panic): Use GCC_ATTR_NORETURN macro, not NORETURN. 35761 * toplev.h (clean_up_and_exit): Likewise. 35762 * utils.h (jump_to_top_level): Likewise. 35763 35764 * derfaults.h.in, defaults.cc (local_arch_lib_dir): New variable. 35765 * defaults.cc (set_default_local_arch_lib_dir): New function. 35766 (install_defaults): Call it. 35767 (exec_path): Use Vlocal_arch_lib_dir here. 35768 * toplev.cc (octave_config_info): Add localarchlibdir to structure. 35769 35770Tue Oct 29 15:54:27 1996 John W. Eaton <jwe@bevo.che.wisc.edu> 35771 35772 * Makefile.in (install-oct): Don't do anything if $(OCT_FILES) is 35773 empty. 35774 35775 * ov-range.cc (octave_range::index): New Function. 35776 (octave_range::all, octave_range::any, octave_range::is_true): 35777 Make these functions work. 35778 35779 * ov.cc (octave_value::try_assignment_with_conversion): Remove 35780 left over debugging print statements. 35781 35782Mon Oct 28 10:49:03 1996 John W. Eaton <jwe@bevo.che.wisc.edu> 35783 35784 * strftime.c: Add missing #endif for previous change. 35785 35786Sun Oct 27 14:06:44 1996 John W. Eaton <jwe@bevo.che.wisc.edu> 35787 35788 * oct-hist.cc (do_history): Rewite option parsing to avoid 35789 (probably bogus) errors from g++ on cygwin32 system. 35790 35791 * strftime.c: Use autoconf macros TIME_WITH_SYS_TIME and 35792 HAVE_SYS_TIME_H to decide which time.h files to include. 35793 35794 * oct-stream.h, oct-stream.cc (octave_stream::error, 35795 octave_base_stream::error): Rename errno => err_num. 35796 35797Sat Oct 26 10:40:05 1996 John W. Eaton <jwe@bevo.che.wisc.edu> 35798 35799 * oct-hist.cc (do_history): Move declaration of file inside 35800 conditional. 35801 35802 * defun.h (DEFVAR_INT): Set eternal flag with (svc_fcn != 0) 35803 instead of (sv_fcn ? 1 : 0) 35804 35805Fri Oct 25 01:10:51 1996 John W. Eaton <jwe@bevo.che.wisc.edu> 35806 35807 * ov-ch-mat.h (octave_char_matrix::any): Return 0.0 instead of false. 35808 (octave_char_matrix::all): Likewise. 35809 35810 * input.cc (Fecho): When binding value of echo_executing_commands, 35811 cast ECHO_* to double. 35812 35813 * sighandlers.cc (octave_child_list::do_remove): Delete unused 35814 variable `enlarge'. 35815 35816 * pt-const.h (tree_constant::tree_constant (const tree_constant&)): 35817 Don't pass arg to tree_fvc constructor. 35818 35819 * resource.cc (getrusage): [HAVE_GETRUSAGE && RUSAGE_TIMES_ONLY]: 35820 Only fill in time values. 35821 35822Thu Oct 24 20:37:28 1996 John W. Eaton <jwe@bevo.che.wisc.edu> 35823 35824 * parse.y: Comment out the %expect declaration so byacc can 35825 compile this file. 35826 (if_cmd_list): Add missing semicolon. 35827 Include <cstdlib> for getenv if using byacc. 35828 35829 * ov.h: Move typedefs outside of octave_value class scope to avoid 35830 problem with cygwin32 beta16 compiler. 35831 35832Fri Oct 18 13:44:33 1996 John W. Eaton <jwe@bevo.che.wisc.edu> 35833 35834 * ov.h (octave_value::index): Undo previous change. 35835 * ov.cc (octave_value constructors): Call maybe_mutate() in most 35836 cases. 35837 35838 * ov-complex.cc (octave_complex::index): Avoid implicit type 35839 conversion back to scalar type. 35840 * ov-scalar.cc (octave_scalar::index): Likewise. 35841 35842 * ov.h (octave_value::index): Call maybe_mutate() on retval before 35843 returning it. 35844 35845Wed Oct 16 12:00:11 1996 John W. Eaton <jwe@bevo.che.wisc.edu> 35846 35847 * ov.h (octave_value::struct_elt_val): New optional arg, silent. 35848 * ov-base.h, ov-base.cc, ov-struct.h, ov-struct.cc: Likewise, but 35849 for the derived classes the arg is required. 35850 35851 * data.cc (Fstruct_contains): Require arguments to be struct and 35852 string, respectively. Call octave_value::struct_elt_val with 35853 silent flag set. 35854 35855 * pt-mat.cc (tm_row_const::tm_row_const_rep::eval_error, 35856 tm_row_const::tm_row_const_rep::eval_warning): New functions. 35857 (tm_row_const::tm_row_const (const tree_matrix_row&): Use them to 35858 give better error messages. 35859 35860 * pt-fvc.cc (tree_identifier::eval): Avoid dereferencing null 35861 object_to_eval. 35862 35863Tue Oct 15 11:35:51 1996 John W. Eaton <jwe@bevo.che.wisc.edu> 35864 35865 * op-cs-cm.cc, op-cs-cs.cc, op-cs-m.cc, op-cs-s.cc 35866 (complex_matrix_conv): New functions. 35867 Install preferred assignment conversion and widening ops. 35868 35869 * op-s-cm.cc, op-s-cs.cc (complex_matrix_conv): New functions. 35870 Install preferred assignment conversion and widening ops. 35871 35872 * op-s-m.cc, op-s-s.cc (matrix_conv): New functions. 35873 Install preferred assignment conversion and widening ops. 35874 35875 * ov.cc (octave_value::try_assignment_with_conversion, 35876 octave_value::convert_and_assign, octave_value::try_assignment): 35877 New functions. 35878 (octave_value::assign): Use them to implement twisted logic for 35879 type conversions in assigments. 35880 35881 * pt-const.h (tree_constant::maybe_mutate): New function. 35882 * ov.h (octave_value::maybe_mutate): New function. 35883 (octave_value::try_narrowing_conversion): New function. 35884 Use just one typedef for widening_op_fcn and numeric_conv_fcn. 35885 Change all uses. 35886 * ov-base.h, ov-complex.h, ov-complex.cc, ov-cx-mat.h, 35887 ov-cx-mat.cc, ov-range.h, ov-range.cc, ov-re-mat.h, ov-re-mat.cc, 35888 Provide derived class versions of try try_narrowing_conversion(). 35889 35890 * pr-output.cc (octave_print_internal): Don't bother handing off 35891 to scalar/real versions, even when it would seem appropriate. 35892 35893 * symtab.cc (symbol_def::define (tree_constant *)): Call 35894 maybe_mutate on constants here. 35895 35896Mon Oct 14 11:05:24 1996 John W. Eaton <jwe@bevo.che.wisc.edu> 35897 35898 * pt-fvc.cc (tree_identifier::eval): If retval is undefined and 35899 the object to eval is a constant, print error message. 35900 35901 * Makefile (distclean): Remove *.oct too. 35902 35903 * defun-int.h: Include variables.h here. 35904 35905Sun Oct 13 10:52:28 1996 John W. Eaton <jwe@bevo.che.wisc.edu> 35906 35907 * variables.cc (print_symbol_info_line): Never print negative 35908 diminsions. 35909 35910 * symtab.h (octave_symbol_record_info): Store const_type as string. 35911 (octave_symbol_record_info::init): Delete. Fix constructors. 35912 (octave_symbol_record_info::type_name): Handle const_type as string. 35913 35914 * octave.cc (maximum_braindamage): Replace "true" with 1.0 and 35915 "false" with 0.0 in calls to bind_builtin_variable(). 35916 Include sun-utils.h here. 35917 (intern_argv): Also bind __argv__. 35918 35919Sat Oct 12 13:40:21 1996 John W. Eaton <jwe@bevo.che.wisc.edu> 35920 35921 * Makefile.in (distclean): Also delete mk-oct-links. 35922 35923Fri Oct 11 13:13:13 1996 John W. Eaton <jwe@bevo.che.wisc.edu> 35924 35925 Changes for Octave's new type system: 35926 35927 * arith-ops.cc: Delete. 35928 * pt-const.h, pt-const.cc: Massive changes. Most functionality 35929 moved to ov.h, ov.cc, and derived classes. 35930 35931 * variables.h, variables.cc (octave_variable_reference): New class 35932 for getting references to variables and structure elements used in 35933 assignments or value contexts. 35934 35935 * symtab.h, symtab.cc (symbol_record::define (const octave_value&), 35936 symbol_record::variable_value, symbol_record::variable_reference): 35937 New functions. 35938 (symbol_record_info::type_name): Rename from type_as_string. 35939 35940 * pt-fvc-base.h, pt-fvc-base.cc (tree_fvc::increment, 35941 tree_fvc::decrement): New functions to replace 35942 tree_fvc::bump_value. 35943 #if 0 assign and lookup_map_element functions. 35944 35945 * pt-mvr.cc (tree_multi_assignment_expression::eval): 35946 Generated RHS value is now a tree_constant. 35947 35948 * pt-exp.h, pt-exp.cc (tree_boolean_expression): New class. 35949 (tree_unary_expression, tree_binary_expression, 35950 tree_boolean_expression): Move codes here from tree_expression. 35951 (tree_simple_assignment_expression): Cope with changes to way of 35952 doing assignments. 35953 35954 * pt-exp-base.h, pt-exp-base.cc (enum type): Delete codes for 35955 unary and binary ops. 35956 (tree_expression::expression_type): Delete. 35957 (tree_expression::is_logically_true): Hand off to 35958 octave_value::is_true to do real work. 35959 35960 * pr-output.h, pr-output.cc (any_element_is_inf_or_nan, 35961 all_elements_are_ints): Delete. Call member new functions for 35962 these operations. 35963 (free_format, plus_format, bank_format, hex_format, 35964 compact_format, print_e, print_big_e): Use bool, not int. 35965 (octave_print_internal): Hand off to scalar/real versions when 35966 appropriate. 35967 35968 * octave.cc (main): Call initialize_types() and install_ops(). 35969 (verbose_usage): Add WWW address to output. 35970 35971 * parse.y (indirect_ref): Handle by making a tree instead of a 35972 list using new version of tree_indirect_ref class. 35973 35974 * parse.y (make_boolean_op): New function. Use it instead of 35975 make_binary_op to create trees for && and || ops. 35976 (make_binary_op): Codes come from tree_binary_expression now, 35977 instead of tree_expression. 35978 (make_unary_op): Codes come from tree_unary_expression now, 35979 instead of tree_expression. 35980 (make_boolean_op): Codes come from tree_boolean_expression. 35981 35982 *parse.y (tree_constant_type): Change type to tree_constant* from 35983 octave_value*, and rename from octave_value_type. Change uses. 35984 35985 * defun.h (DEFVAR_INT): Pass octave_value not pointer to 35986 octave_value for defn when creating builtin_variable. 35987 35988 * gripes.h, gripes.cc (gripe_invalid_conversion): Args are 35989 strings, not char*. 35990 (gripe_implicit_conversion, gripe_divide_by_zero): New extern 35991 gripe functions. 35992 35993 * mkbuiltins: For each file, create a separate static function to 35994 install builtins, then create another single extern function to 35995 call all of them. 35996 35997 * pt-fcn.cc (tree_function::bind_nargin_and_nargout): 35998 Just pass doubles and let symbol_record::define handle creating 35999 new value. 36000 36001 * pt-pr-code.cc, pt-pr-code.h (visit_constant): Renamed from 36002 visit_octave_value. 36003 (visit_unary_expression): Use tree_expression::is_prefix_op() 36004 instead of switch on op types. 36005 36006 * pt-walk.h (visit_constant): Renamed from visit_octave_value. 36007 36008 * pt-misc.cc (initialize_undefined_elements): Get reference to 36009 tmp, then assign. 36010 * pt-cmd.cc (do_for_loop_once): Likewise, for loop identifier. 36011 36012 * input.cc (generate_struct_completions, looks_like_struct): Cast 36013 tmp_fvc to tree_constant*, not octave_value*. 36014 (get_user_input): Call print() on retval, not eval(1). 36015 36016 * help.cc (Ftype): Cast defn to tree_constant*, not octave_value*. 36017 36018 * balance.cc: Fix docstring. 36019 36020 * dassl.cc, fsolve.cc, load-save.cc, lsode.cc, npsol.cc, qpsol.cc, 36021 quad.cc: 36022 Include pt-fvc.h. 36023 36024 * data.cc (Fstruct_contains): call octave_value::struct_elt_val, 36025 not octave_value::lookup_map_element. 36026 36027 * dirfns.cc (Fcd): Pass directory name as string directly to 36028 bind_builtin_variable instead of creating new octave_value. 36029 36030 * toplev.cc: Include pt-fvc.h and lo-mappers.h 36031 36032 * data.cc, error.cc, file-io.cc, load-save.cc, pager.cc, 36033 pt-mat.cc, pt-plot.cc, syscalls.cc, toplev.cc: 36034 Include variables.h. 36035 36036 * Array-tc.cc, Map-tc.cc, SLList-misc.cc SLList-tc.cc, data.cc, 36037 defaults.cc, dynamic-ld.cc, error.cc, gripes.cc, lex.l, octave.cc, 36038 oct-map.h, oct-map.cc, oct-obj.h, pt-cmd.cc, pt-exp.cc, pt-fcn.cc, 36039 pt-fvc-base.cc, pt-mat.cc, pt-misc.cc, pt-mvr-base.cc, pt-mvr.h, 36040 resource.cc, strfns.cc, sysdep.cc, timefns.cc, toplev.cc: 36041 Include ov.h instead of pt-const.h. 36042 36043 * xpow.cc (any_element_is_negative): Delete. 36044 (xpow and elem_xpow functions): Check conformance here. 36045 36046 * xdiv.cc (mx_leftdiv_conform, mx_div_conform): 36047 Now template-based, taking Matrices instead of dimensions as args. 36048 Change all callers. 36049 36050 * op-cm-cm.cc, op-cm-cm.h, op-cm-cs.cc, op-cm-cs.h, op-cm-m.cc, 36051 op-cm-m.h, op-cm-s.cc, op-cm-s.h, op-cs-cm.cc, op-cs-cm.h, 36052 op-cs-cs.cc, op-cs-cs.h, op-cs-m.cc, op-cs-m.h, op-cs-s.cc, 36053 op-cs-s.h, op-m-cm.cc, op-m-cm.h, op-m-cs.cc, op-m-cs.h, op-m-m.cc, 36054 op-m-m.h, op-m-s.cc, op-m-s.h, op-s-cm.cc, op-s-cm.h, op-s-cs.cc, 36055 op-s-cs.h, op-s-m.cc, op-s-m.h, op-s-s.cc, op-s-s.h, 36056 op-str-str.cc, op-str-str.h, ops.cc, ops.h, ov-base.cc, ov-base.h, 36057 ov-ch-mat.cc, ov-ch-mat.h, ov-colon.cc, ov-colon.h, ov-complex.cc, 36058 ov-complex.h, ov-cx-mat.cc, ov-cx-mat.h, ov-range.cc, ov-range.h, 36059 ov-re-mat.cc, ov-re-mat.h, ov-scalar.cc, ov-scalar.h, ov-str-mat.cc, 36060 ov-str-mat.h, ov-struct.cc, ov-struct.h, ov-typeinfo.cc, 36061 ov-typeinfo.h, ov-va-args.cc, ov-va-args.h, ov.cc, ov.h: 36062 New files for Octave's new type system. 36063 * Makefile.in: Add them to the appropriate lists. 36064 36065Sat Sep 14 21:58:33 1996 John W. Eaton <jwe@bevo.che.wisc.edu> 36066 36067 * mkbuiltins: Use .df instead of .def. 36068 Write one function for each .df file, then call them 36069 all in install_builtin_functions(). 36070 * Makefile.in: Handle .df instead of .def. 36071 36072 * balance.cc (balance): Fix typo in doc string. 36073 36074Wed Aug 28 21:01:49 1996 John W. Eaton <jwe@bevo.che.wisc.edu> 36075 36076 * octave.cc (verbose_usage): Include WWW address and bug-octave 36077 mailing list address. 36078 36079Tue Aug 20 17:41:19 1996 John W. Eaton <jwe@bevo.che.wisc.edu> 36080 36081 * Makefile.in: Only define pattern rules for making .oct files if 36082 OCTAVE_LITE is true. 36083 Only add pic/ to $(TI_OBJ) if $(SHARED_LIBS) is true. 36084 (stamp-picdir): Only create a pic subdirectory if SHARED_LIBS or 36085 OCTAVE_LITE is true AND CPICFLAG or CXXPICFLAG is not empty. 36086 36087 * minmax.cc (Fmin, Fmax): Deal with changes to Matrix class 36088 min/max methods. 36089 36090Thu Jul 25 01:42:38 1996 John W. Eaton <jwe@bevo.che.wisc.edu> 36091 36092 * input.cc (generate_possible_completions): Force the names to be 36093 unique. 36094 36095 * load-save.cc (read_mat_binary_data): Expect to read terminating 36096 NUL character in the variable name. 36097 (save_mat_binary_data): Likewise, save it here. 36098 36099Wed Jul 24 05:08:07 1996 John W. Eaton <jwe@bevo.che.wisc.edu> 36100 36101 * lsode.cc (Flsode): Don't set the return value if an error 36102 occurred during integration. 36103 * dassl.cc (Fdassl): Likewise. 36104 36105 * file-io.cc (symbols_of_file_io): Redefine values of SEEK_SET, 36106 SEEK_CUR, and SEEK_END for Matlab compatibility. 36107 * oct-stream.cc (seek): Check for compatible values of ORIGIN arg. 36108 Also handle "bof", "cof", and "eof". 36109 36110Fri Jul 19 15:24:36 1996 John W. Eaton <jwe@bevo.che.wisc.edu> 36111 36112 * pt-const.cc: When creating octave_value_reps from ComplexMatrix 36113 values, check to see if all the elements are actually real. 36114 36115Tue Jul 16 10:53:42 1996 John W. Eaton <jwe@bevo.che.wisc.edu> 36116 36117 * input.cc (decode_prompt_string): Swap meanings of \h and \H. 36118 36119Mon Jul 15 16:01:51 1996 John W. Eaton <jwe@bevo.che.wisc.edu> 36120 36121 * toplev.cc (run_command_and_return_output): Renamed from do_system. 36122 (Fsystem): Make `system ("emacs")' work as one would expect. 36123 36124Sun Jul 14 17:34:33 1996 John W. Eaton <jwe@bevo.che.wisc.edu> 36125 36126 * file-io.cc (Ffopen, Ffread, Ffwrite): Update doc strings, 36127 correctly handle default architecture and precision args. 36128 36129 * load-save.cc (mopt_digit_to_float_format): Rename from 36130 get_floating_point_format. 36131 (float_format_to_mopt_digit): New function. 36132 36133 * oct-stream.cc (octave_base_stream::read, octave_base_stream::write): 36134 Simplify by calling Matrix::read and Matrix::write to do real work 36135 of reading, writing, and format conversion. 36136 36137 * oct-stream.h (octave_base_stream): Move data_type enum to 36138 liboctave/data-conv.h. Use float_format from 36139 liboctave/mach-info.h instead of arch_type enum. 36140 36141 * sysdep.h, sysdep.cc (octave_words_big_endian, ten_little_endians): 36142 Delete. Now part of oct_mach_info class in liboctave. 36143 36144Tue Jul 9 11:18:59 1996 John W. Eaton <jwe@bevo.che.wisc.edu> 36145 36146 * arith-ops.cc, balance.cc, dassl.cc, data.cc, filter.cc, find.cc, 36147 fsolve.cc, load-save.cc, log.cc, lsode.cc, minmax.cc, npsol.cc, 36148 oct-obj.cc, oct-stream.cc, pr-output.cc, pt-cmd.cc, pt-const.cc, 36149 pt-fvc.cc, pt-plot.cc, quad.cc, rand.cc, sighandlers.cc, sort.cc, 36150 syscalls.cc, unwind-prot.cc, xdiv.cc, xpow.cc: 36151 When indexing arrays, use operator() instead of elem() so that 36152 bounds checking can be done consistently. 36153 36154Mon Jun 24 02:13:27 1996 John W. Eaton <jwe@bevo.che.wisc.edu> 36155 36156 * Makefile.in (install-oct): Use INSTALL_PROGRAM, instead of 36157 INSTALL_DATA for installing shared libraries. 36158 36159 * lex.l (grab_help_text): Ignore all initial comment characters, 36160 not just the first. 36161 * variables.cc (gobble_leading_white_space): Likewise. 36162 36163Sat Jun 22 22:43:45 1996 John W. Eaton <jwe@bevo.che.wisc.edu> 36164 36165 * input.h, input.cc (octave_completion_matches_called): New variable. 36166 (Fcompletion_matches): Set it to true on a successful call. 36167 * toplev.cc (main_loop): If octave_completion_matches_called is 36168 true, don't increment current_command_number. 36169 36170Thu Jun 13 03:52:19 1996 John W. Eaton <jwe@bevo.che.wisc.edu> 36171 36172 * variables.cc (is_mapper_function_name, 36173 is_builtin_function_name): New functions. 36174 (Fdocument): Use them. 36175 Define as regular function, not a text style function. 36176 36177Thu Jun 6 00:09:25 1996 John W. Eaton <jwe@bevo.che.wisc.edu> 36178 36179 * pt-plot.cc: Handle new built-in variable `gnuplot_has_frames'. 36180 36181Wed Jun 5 14:45:04 1996 John W. Eaton <jwe@bevo.che.wisc.edu> 36182 36183 * input.cc (decode_prompt_string): \h now means the whole host 36184 name and \H is the host name up to the first `.'. 36185 36186Thu May 30 23:41:51 1996 John W. Eaton <jwe@bevo.che.wisc.edu> 36187 36188 * fn-cache.cc (octave_fcn_file_name_cache::do_list): Always 36189 recompute the lists of function files instead of trying to cache 36190 them. 36191 36192Tue May 28 12:05:24 1996 John W. Eaton <jwe@bevo.che.wisc.edu> 36193 36194 * utils.cc (warn_old_style_preference): New function. 36195 (check_preference): Use it. 36196 36197 * fn-cache.h: Include <ctime> here. 36198 36199Fri May 24 00:57:14 1996 John W. Eaton <jwe@bevo.che.wisc.edu> 36200 36201 * input.cc (completion_matches): Don't return empty string_vectors. 36202 36203 * octave.cc (long_opts): Add braindead. 36204 36205Thu May 23 01:49:33 1996 John W. Eaton <jwe@bevo.che.wisc.edu> 36206 36207 * input.cc (gnu_readline): New optional arg, force_readline. 36208 (get_user_input): Use it. 36209 36210 * pt-const.cc (OCT_VAL_REP::assign): If converting the rhs to a 36211 numeric value, convert a copy, not the actual object. 36212 (OCT_VAL_REP::do_index): Prevent s([]) from resulting in a string 36213 with zero rows. 36214 36215 * mappers.cc: Handle toascii here. 36216 * strfns.cc: Not here. 36217 36218 * mappers.cc: Handle tolower and toupper here. 36219 * mappers.h: Rename can_return_complex_for_real to flag and 36220 overload meaning for ch_mapper. 36221 * pt-fvc.cc (apply_mapper_fcn): Handle overloaded meaning. 36222 36223 * syscalls.cc (stat): Return 3 values instead of just 1. 36224 (lstat): Likewise. 36225 36226Wed May 22 02:34:20 1996 John W. Eaton <jwe@bevo.che.wisc.edu> 36227 36228 * pt-const.cc (OCT_VAL_REP::make_numeric): For string to number 36229 conversions, correctly set type tag before calling force_numeric. 36230 (do_binary_op): Force string to number conversion if both args are 36231 strings and we are doing some sort of comparison operation. 36232 36233 * Makefile.in (stamp-tinst, stamp-interp): Use SH_TERMLIBS and 36234 SH_LIBS instead of TERMLIBS and LIBS. 36235 36236 * pt-const.cc (do_unary_op): Add special case to handle 36237 transposing strings. 36238 36239 * pt-mat.cc (Vstring_fill_char): New variable. 36240 (symbols_of_pt_mat): DEFVAR it. 36241 36242 * input.cc (generate_struct_completions, 36243 generate_possible_completions): Return string_vector, not char **. 36244 Change all callers. 36245 36246 * pt-const.cc (lookup_map_element): Use substr() correctly. 36247 36248Tue May 21 21:37:17 1996 John W. Eaton <jwe@bevo.che.wisc.edu> 36249 36250 * oct.h: New file. 36251 * Makefile.in (INCLUDES): Add it to the list. 36252 36253 * octave.cc: New args --no-site-file and --no-init-file. Delete 36254 --ignore-init-file. The flag --norc (-f) implies both 36255 --no-site-file and --no-init-file. 36256 36257Fri May 17 01:54:51 1996 John W. Eaton <jwe@bevo.che.wisc.edu> 36258 36259 * input.cc (Fcompletion_matches): New function. 36260 36261 * utils.cc (get_fcn_file_names): Delete. 36262 * help.cc (simple_help): Use new file name cache instead of 36263 calling get_fcn_file_names. 36264 * variables.cc (make_name_list): Likewise. 36265 36266 * fn-cache.h, fn-cache.cc, Map-fnc.cc: New files. 36267 * Makefile.in: Add them to the lists. 36268 36269 * Makefile.in (uninstall): Install in octincludedir, not includedir. 36270 36271 * pt-plot.h: Include <csignal> here. 36272 36273Thu May 16 10:52:51 1996 John W. Eaton <jwe@bevo.che.wisc.edu> 36274 36275 * oct-stream.cc (octave_stream::oscanf, octave_base_stream::oscanf, 36276 octave_base_stream::do_oscanf): New functions for backward 36277 compatibility with older versions of Octave. 36278 (scanf_format_elt, scanf_format_list): Keep track of width specifier. 36279 * file-io.cc (Fscanf): New function. 36280 (Fscanf, Ffscanf, Fsscanf): Handle compatibility arg. 36281 36282Wed May 15 01:00:12 1996 John W. Eaton <jwe@bevo.che.wisc.edu> 36283 36284 * oct-stream.cc (do_scanf): If doing '%c' conversion, unset 36285 ios::skipws on input stream. 36286 36287 * sighandlers.h, sighandlers.cc (octave_child, octave_child_list): 36288 New classes for keeping track of the child processes we create. 36289 (sigchld_handler): Check in octave_child_list to see if there is 36290 anything we can do for the child that died. 36291 * pager.cc: Register child pager process. 36292 * pt-plot.cc: Likewise, for the plotter. 36293 * Array-oc.cc: New file 36294 * Makefile.in (TI_SRC): Add it to the list. 36295 36296 * pager.cc (do_sync): Don't check error_state. 36297 (flushing_output_to_pager): New static variable. 36298 (flush_octave_stdout): Use it to avoid doing anything if already 36299 flushing output. 36300 36301 * sighandlers.cc (sigchld_handler): Call warning instead of 36302 writing directly to cerr. 36303 (sigpipe_handler): Call warning instead of message. 36304 36305 * octave.cc (main): Call install_signal_handlers, 36306 initialize_file_io, initialize_symbol_tables, and install_builtins 36307 before parsing command line options. 36308 36309 * user-prefs.h, user-prefs.cc: Delete. 36310 36311 * utils.cc (check_preference): Move here. 36312 * user-prefs.cc: From here. 36313 36314 * defaults.cc: New file. Move initialization stuff from 36315 variables.cc. Move DEFVARS for EDITOR, EXEC_PATH, LOADPATH, 36316 IMAGEPATH, and OCTAVE_VERSION here. 36317 36318 * user-prefs.h, user-prefs.cc: Delete all stuff related to 36319 INFO_FILE and INFO_PROGRAM. 36320 * help.cc: Move all of that here. 36321 (symbols_of_help): Add DEFVARS for INFO_FILE and INFO_PROGRAM. 36322 36323Tue May 14 00:23:06 1996 John W. Eaton <jwe@bevo.che.wisc.edu> 36324 36325 * pager.cc (do_sync): Be more defensive about sending stuff to the 36326 external pager. 36327 * sighandlers.cc (sigchld_handler): For now, only wait for 36328 octave_pager_pid. Don't call error(). Do set octave_pager_pid to 36329 -1 if the pager process no longer exists. 36330 36331 * user-prefs.h, user-prefs.cc: Delete all stuff related to 36332 PWD. 36333 * dirfns.cc: Move all of that here. 36334 (symbols_of_dirfns): New function. 36335 * variables.cc (install_builtin_variables): Call it. 36336 36337 * user-prefs.h, user-prefs.cc: Delete all stuff related to 36338 default_save_format and save_precision. 36339 * load-save.cc: Move all of that here. 36340 (symbols_of_load_save): New function. 36341 * variables.cc (install_builtin_variables): Call it. 36342 36343 * user-prefs.h, user-prefs.cc: Delete all stuff related to 36344 warn_divide_by_zero. 36345 * arith-ops.cc: Move all of that here. 36346 (symbols_of_arith_ops): New function. 36347 * variables.cc (install_builtin_variables): Call it. 36348 36349 * mappers.cc: Add wrappers for ctype is* functions so that they 36350 will work on systems that only define them as macros. 36351 36352Mon May 13 00:27:08 1996 John W. Eaton <jwe@bevo.che.wisc.edu> 36353 36354 * user-prefs.h, user-prefs.cc: Delete all stuff related to 36355 suppress_verbose_help_message. 36356 * help.cc: Move all of that here. 36357 (symbols_of_help): New function. 36358 * variables.cc (install_builtin_variables): Call it. 36359 36360 * user-prefs.h, user-prefs.cc: Delete all stuff related to 36361 treat_neg_dim_as_zero. 36362 * pt-const.cc: Move all of that here. 36363 36364 * pager.cc (octave_pager_stream::do_sync): Don't return early if 36365 not interactive. 36366 36367 * data.h: New file. 36368 * Makefile.in (INCLUDES): Add it to the list. 36369 * data.cc (symbols_of_data): New function. Move definition of I, 36370 Inf, J, NaN, e, eps, i, inf, j, nan, pi, realmin, and realmax here. 36371 * variables.cc: From here. 36372 (install_builtin_variables): Call symbols_of_data. 36373 36374 * file-io.cc (symbols_of_file_io): New function. Move definition 36375 of SEEK_CUR, SEEK_END, SEEK_SET, stdin, stdout, stderr here. 36376 * variables.cc: From here. 36377 (install_builtin_variables): Call symbols_of_file_io. 36378 36379 * user-prefs.h, user-prefs.cc: Delete all stuff related to 36380 do_fortran_indexing, implicit_str_to_num_ok, 36381 ok_to_lose_imaginary_part, prefer_column_vectors, 36382 prefer_zero_one_indexing, print_answer_id_name, 36383 propagate_empty_matrices, resize_on_range_error, and 36384 struct_levels_to_print. 36385 * pt-const.cc: Move all of that here. 36386 (symbols_of_pt_const): New function. 36387 * variables.cc (install_builtin_variables): Call it. 36388 * pt-fvc.cc (tree_identifier::assign): Use Vresize_on_range_error 36389 instead of user_pref.resize_on_range_error here. 36390 * load-save.cc (save_mat_binary_data): Use Vimplicit_str_to_num_ok 36391 instead of user_pref.implicit_str_to_num_ok here. 36392 * utils.cc (empty_arg): Use Vpropagate_empty_matrices instead of 36393 user_pref.propagate_empty_matrices here. 36394 * pt-exp-base.cc (tree_expression::is_logically_true): Likewise.. 36395 36396 * pt-fcn.cc (symbols_of_pt_fcn): Also move DEFVAR for 36397 default_return_value here. 36398 36399 * user-prefs.h, user-prefs.cc: Delete all stuff related to 36400 ps1, ps2, ps4, and completion_append_char. 36401 * input.cc: Move all of that here. 36402 (symbols_of_input): New function. 36403 * variables.cc (install_builtin_variables): Call it. 36404 * pt-pr-code.cc (indent): Use Vps4 instead of user_pref.ps4 here. 36405 * help.cc (Ftype): Also here. 36406 36407 * user-prefs.h, user-prefs.cc: Delete all stuff related to 36408 automatic_replot, gnuplot_binary, and gnuplot_has_multiplot. 36409 * pt-plot.cc: Move all of that here. 36410 (symbols_of_pt_plot): New function. 36411 * variables.cc (install_builtin_variables): Call it. 36412 36413 * user-prefs.h, user-prefs.cc: Delete all stuff related to 36414 beep_on_error. 36415 * error.cc: Move all of that here. 36416 (symbols_of_error): New function. 36417 * variables.cc (install_builtin_variables): Call it. 36418 36419 * user-prefs.h, user-prefs.cc: Delete all stuff related to 36420 empty_list_elements_ok. 36421 * pt-mat.cc: Move all of that here. 36422 (symbols_of_pt_mat): New function. 36423 * variables.cc (install_builtin_variables): Call it. 36424 36425 * user-prefs.h, user-prefs.cc: Delete all stuff related to 36426 define_all_return_values, return_last_computed_value, and 36427 silent_functions. 36428 * pt-fcn.cc: Move all of that here. 36429 (symbols_of_pt_fcn): New function. 36430 * variables.cc (install_builtin_variables): Call it. 36431 36432 * user-prefs.h, user-prefs.cc: Delete all stuff related to 36433 whitespace_in_literal_matrix. 36434 * lex.l: Move all of that here. 36435 (symbols_of_lex): New function. 36436 * variables.cc (install_builtin_variables): Call it. 36437 36438 * user-prefs.h, user-prefs.cc: Delete all stuff related to 36439 warn_assign_as_truth_value, warn_comma_in_global_decl, 36440 warn_function_name_clash, and warn_missing_semicolon. 36441 * parse.y: Move all of that here. 36442 (symbols_of_parse): New function. 36443 * variables.cc (install_builtin_variables): Call it. 36444 36445 * user-prefs.h, user-prefs.cc: Delete all stuff related to 36446 output_precision, output_max_field_width, print_empty_dimensions, 36447 and split_long_rows. 36448 * pr-output.cc: Move all of that here. 36449 (symbols_of_pr_output): New function. 36450 * variables.cc (install_builtin_variables): Call it. 36451 36452 * user-prefs.h, user-prefs.cc: Delete all stuff related to 36453 page_screen_output, page_output_immediately, and pager_binary. 36454 * pager.cc: Move all of that here. 36455 36456 * user-prefs.h (check_preference): Provide declaration. 36457 * user-prefs.cc (check_preference): Make external. 36458 36459 * toplev.cc (Foctave_config_info): New function. 36460 36461 * oct-conf.h.in: New file 36462 * Makefile.in (oct-conf.h): New target. 36463 Add it to the appropriate lists. 36464 36465 * sighandlers.cc (sigchld_handler): Don't complain about wait 36466 returning a negative value. 36467 36468 * file-io.cc (Fsscanf, Fsprintf): Pass true for second arg of 36469 octave_stream constructor. 36470 36471 * oct-stream.h (octave_stream): New field, preserve. 36472 (octave_stream::~octave_stream): If preserve, don't delete rep. 36473 36474 * pager.cc (symbols_of_pager): Set default for 36475 page_output_immediately to 0. 36476 36477 * toplev.cc (do_system): Correctly handle return_output. 36478 Append ends to output_buf before calling str(). 36479 36480 * variables.cc: If M_PI and M_E are available, use them. 36481 36482 * mk-oct-links.in (links_dir): If old link exists, delete it first. 36483 36484Sun May 12 01:46:07 1996 John W. Eaton <jwe@bevo.che.wisc.edu> 36485 36486 * Makefile.in (DISTFILES): List defaults.h.in and oct-gperf.h here. 36487 (INCLUDES): Not here. 36488 (install-inc): New target. 36489 (uninstall): Also delete libraries and include files. 36490 (install-inc): If linkdir is a directory, leave it alone. 36491 (TERMLIBS, LIBPLPLOT, LIBDLFCN): Don't substitute here (now in 36492 Makeconf). 36493 36494 * oct-stream.cc (octave_base_stream::do_read): Provide initial 36495 value for tmp var. 36496 36497 * pt-walk.h, pt-pr-code.h, pt-pr-code.cc: New tree-walking classes. 36498 * Makefile.in: Add them to the appropriate lists. 36499 * pt-fvc-base.h, pt-exp-base.cc, pt-fvc-base.cc, pt-mvr-base.cc, 36500 pt-base.cc, pt-mvr.cc, pt-mat.h, pt-mat.cc, pt-fvc.cc, 36501 pt-const.cc, pt-cmd.cc, pt-const.h, pt-misc.cc, pt-plot.cc, 36502 pt-fcn.cc, pt-plot.h, pt-mvr.h, pt-mvr-base.h, pt-misc.h, 36503 pt-fcn.h, pt-exp.h, pt-exp.cc, pt-exp-base.h, pt-fvc.h, pt-cmd.h, 36504 pt-base.h: 36505 Replace print_code stuff with accept() functions. 36506 Add member access functions where necessary. 36507 * help.cc (Ftype): Update to use new method of walking trees to 36508 print text representation of user-defined functions. 36509 36510 * file-io.cc (Ffscanf): Update doc string. 36511 (Fsscanf): Likewise. 36512 36513 * oct-stream.cc (octave_base_stream::do_read): Correctly set max_size. 36514 Pad mval with zeros on final resize. 36515 (octave_base_stream::do_scanf): Likewise. 36516 (do_scanf_conv): Correctly resize mval. 36517 36518Sat May 11 05:14:09 1996 John W. Eaton <jwe@bevo.che.wisc.edu> 36519 36520 * pager.cc (octave_pager_buf::sync): Correctly set bypass_pager. 36521 36522 * lex.l (<MATRIX>{SNLCMT}*\]{S}*): Match SNLCMT, not just SNL. 36523 36524Fri May 3 11:05:30 1996 John W. Eaton <jwe@bevo.che.wisc.edu> 36525 36526 * pt-const.cc (OCT_VAL_REP::set_index): Complain if type can't be 36527 indexed. 36528 36529 * input.cc (get_user_input): Don't increment input line number if 36530 input is coming from eval string. 36531 36532 * user-prefs.cc: Allow empty strings for prompts. 36533 36534Thu May 2 10:50:29 1996 John W. Eaton <jwe@bevo.che.wisc.edu> 36535 36536 * pt-mvr.h (class tree_oct_obj): Declare values data member const. 36537 36538Sun Apr 28 03:16:52 1996 John W. Eaton <jwe@bevo.che.wisc.edu> 36539 36540 * user-prefs.h (user_preferences): New field, 36541 `page_output_immediately'. 36542 * user-prefs.cc (init_user_prefs): Initialize it. 36543 (page_output_immediately): New function. 36544 * pager.cc (syms_of_pager): Add DEFVAR. 36545 (really_flush_to_pager): New file-scope variable. 36546 (flush_octave_stdout): Set and restore it. 36547 (octave_pager_buf::sync): Check it, user_pref.page_screen_output, 36548 and user_pref.page_output_immediately to decide when to really 36549 flush output. 36550 (more_than_a_screenful): New function. If paging but not 36551 immediately, then check this too. 36552 36553 * pager.cc (default_pager): Move here from variables.cc. If pager 36554 is less and LESS is not in the environment, append useful flags. 36555 (symbols_of_pager): New function. 36556 * variables.cc (install_builtin_variables): Call it. 36557 Delete pager-related DEFVARs. 36558 36559 * syswait.h (WIFSIGNALLED): Define if sys/wait.h doesn't. 36560 36561 * sighandlers.cc: Handle SIGCHLD. 36562 36563 * pager.cc, pager.h: Rewrite. 36564 * pt-mvr.cc, pt-misc.cc, pt-fcn.cc, pt-const.cc, oct-hist.cc, 36565 file-io.cc, help.cc, variables.cc, qpsol.cc, dassl.cc, quad.cc, 36566 npsol.cc, lsode.cc, fsolve.cc, load-save.cc, dirfns.cc, octave.cc, 36567 toplev.cc, error.cc, input.cc: 36568 Write to octave_stdout and octave_diary instead of calling 36569 maybe_page_output() or maybe_write_to_diary_file(). 36570 36571 * oct-procbuf.h, oct-procbuf.cc: New files. 36572 * procstream.h (class procstreambase): Use octave_procbuf instead 36573 of procbuf from libg++, so we can get pids of subprocesses. 36574 36575Fri Apr 26 01:21:29 1996 John W. Eaton <jwe@bevo.che.wisc.edu> 36576 36577 * pt-const.cc (OCT_VAL_REP::do_index): Call maybe_mutate() before 36578 returning. 36579 36580 * mappers.h (struct Mapper_fcn): Delete. 36581 (struct builtin_mapper_function): New field ch_mapper. 36582 * pt-fvc.h (tree_builtin): Convert type of mapper_fcn from 36583 Mapper_fcn to builtin_mapper_function. 36584 * variables.cc (install_builtin_mapper): Likewise, for arg. 36585 Simplify, since we don't have to do the copying ourselves now. 36586 * pt-fvc.cc (apply_mapper_function): Handle ch_mapper case. 36587 * defun.h (DEFUN_MAPPER): Likewise. 36588 * mappers.cc (install_builtin_mappers): Likewise. 36589 Add ctype is* functions here. 36590 36591Thu Apr 25 00:57:06 1996 John W. Eaton <jwe@bevo.che.wisc.edu> 36592 36593 * arith-ops.h, defun-int.h, defun.h, dynamic-ld.h, gripes.h, 36594 load-save.h, oct-map.h, oct-obj.h, oct-stream.h, pt-cmd.h, 36595 pt-const.h, pt-exp-base.h, pt-exp.h, pt-fcn.h, pt-fvc-base.h, 36596 pt-fvc.h, pt-mat.h, pt-misc.h, pt-mvr-base.h, pt-mvr.h, pt-plot.h, 36597 symtab.h, toplev.h, utils.h, variables.h, xpow.h, Array-tc.cc, 36598 Map-i.cc, Map-tc.cc, SLList-tc.cc, arith-ops.cc, balance.cc, 36599 bogus.cc, chol.cc, colloc.cc, dassl.cc, data.cc, det.cc, 36600 dirfns.cc, eig.cc, error.cc, expm.cc, fft.cc, fft2.cc, file-io.cc, 36601 filter.cc, find.cc, fsolve.cc, fsqp.cc, givens.cc, gripes.cc, 36602 help.cc, hess.cc, ifft.cc, ifft2.cc, input.cc, inv.cc, 36603 load-save.cc, log.cc, lpsolve.cc, lsode.cc, lu.cc, minmax.cc, 36604 npsol.cc, oct-hist.cc, oct-obj.cc, oct-stream.cc, pager.cc, 36605 pinv.cc, pr-output.cc, pt-cmd.cc, pt-const.cc, pt-exp-base.cc, 36606 pt-exp.cc, pt-fcn.cc, pt-fvc-base.cc, pt-fvc.cc, pt-mat.cc, 36607 pt-misc.cc, pt-mvr-base.cc, pt-mvr.cc, pt-plot.cc, qpsol.cc, 36608 qr.cc, quad.cc, qzval.cc, rand.cc, resource.cc, schur.cc, sort.cc, 36609 strfns.cc, svd.cc, syl.cc, symtab.cc, syscalls.cc, sysdep.cc, 36610 timefns.cc, toplev.cc, utils.cc, variables.cc, xpow.cc, parse.y: 36611 Rename tree_constant -> octave_value. 36612 Rename Octave_object -> octave_value_list. 36613 36614Wed Apr 24 22:15:34 1996 John W. Eaton <jwe@bevo.che.wisc.edu> 36615 36616 * toplev.cc (Fsystem): Merge functionality of async_system and 36617 sync_system. 36618 36619 * oct-fstrm.h, oct-iostrm.h, oct-prcstrm.h, oct-stdstrm.h, 36620 oct-stream.h, oct-strstrm.h, oct-fstrm.cc, oct-iostrm.cc, 36621 oct-prcstrm.cc, oct-stdstrm.cc, oct-stream.cc, oct-strstrm.cc, 36622 Array-os.cc: New files. 36623 * Makefile.in: Add them to the appropriate lists. 36624 * file-io.cc: Rewrite to use new stream classes. 36625 36626Tue Apr 23 18:59:25 1996 John W. Eaton <jwe@bevo.che.wisc.edu> 36627 36628 * gripes.cc (gripe_not_supported): New function. 36629 36630 * toplev.cc (do_octave_atexit, Fatexit): New functions. 36631 (octave_atexit_functions): New file-scope variable. 36632 * octave.cc (main): Register do_octave_atexit with atexit. 36633 36634 * variables.cc (install_builtin_variables): Call 36635 symbols_of_syscalls here. 36636 36637 * syscalls.h, syscalls.cc: New files. 36638 36639Mon Apr 22 21:14:01 1996 John W. Eaton <jwe@bevo.che.wisc.edu> 36640 36641 * syscalls.cc: New file. 36642 (Flstat, Fmkfifo, Fstat, Funlink, Fwait, Fwaitpid): Move here. 36643 * file-io.cc: From here. 36644 * Makefile.in (SOURCES): Add syscalls.cc to the list. 36645 36646Wed Apr 17 18:34:10 1996 John W. Eaton <jwe@bevo.che.wisc.edu> 36647 36648 * file-info.h, file-info.cc: Delete files. 36649 * Makefile.in: Remove from lists. 36650 36651 * toplev.cc (Fquit): Accept exit status argument. 36652 (Fflops): Delete (now a function file). 36653 36654Thu Apr 11 16:20:20 1996 John W. Eaton <jwe@bevo.che.wisc.edu> 36655 36656 * lex.l: Recognize `.'. 36657 Update current_input_column even for unrecognized characters. 36658 Return LEXICAL_ERROR for unrecognized characters. 36659 36660Mon Apr 8 19:59:01 1996 John W. Eaton <jwe@bevo.che.wisc.edu> 36661 36662 * variables.cc (install_builtin_variables): Split into several 36663 functions to make compiling with g++ go faster and consume less 36664 memory. 36665 36666Sun Apr 7 16:25:35 1996 John W. Eaton <jwe@bevo.che.wisc.edu> 36667 36668 * load-save.cc (Fsave): Print usage if i == argc. 36669 (Fload): Likewise. 36670 36671Sat Apr 6 21:26:49 1996 John W. Eaton <jwe@bevo.che.wisc.edu> 36672 36673 * Makefile.in (clean): Also delete pic/*.o 36674 (maintainer-clean, distclean): Also remove stamp-picdir, 36675 stamp-tinst, stamp-interp, and pic directory. 36676 (stamp-prereq): New target. 36677 36678Wed Apr 3 11:19:30 1996 Rick Niles <niles@axp745.gsfc.nasa.gov> 36679 36680 * resource.cc: Don't make including sys/resource.h and sys/times.h 36681 mutually exclusive. 36682 36683Fri Mar 29 13:43:37 1996 John W. Eaton <jwe@bevo.che.wisc.edu> 36684 36685 * Makefile.in (distclean): Delete so_locations, which is created 36686 on DEC Alpha systems. 36687 36688Thu Mar 28 02:53:48 1996 John W. Eaton <jwe@bevo.che.wisc.edu> 36689 36690 * utils.h (undo_string_escape): Provide extern declaration here. 36691 36692 * lex.l (NL): Allow \r\n as new line character. 36693 (.): Complain if invalid character is found on input 36694 36695Fri Mar 22 03:47:52 1996 John W. Eaton <jwe@bevo.che.wisc.edu> 36696 36697 * resource.cc (getrusage): If getrusage is missing, try using 36698 times to at least fill in the cpu time values. If neither one is 36699 available, return 0 for cpu times instead of NaN. 36700 36701 * sighandlers.cc (octave_signal_mask): New file-scope variable. 36702 (octave_save_signal_mask, octave_restore_signal_mask): New functions. 36703 * toplev.cc (main_loop): Use them. 36704 36705Wed Mar 20 01:21:28 1996 John W. Eaton <jwe@bevo.che.wisc.edu> 36706 36707 * utils.cc (get_fcn_file_names (const string&, int)): Resize 36708 retval to value of k, not i. 36709 (get_fcn_file_names (int)): In loop for copying names to retval, 36710 don't increment j twice. 36711 36712Mon Mar 18 22:27:19 1996 John W. Eaton <jwe@bevo.che.wisc.edu> 36713 36714 * Makefile.in ($(MAKEDEPS)): Depend on oct-gperf.h. 36715 36716Fri Mar 1 18:15:52 1996 John W. Eaton <jwe@bevo.che.wisc.edu> 36717 36718 * fsolve.cc (fsolve_options): Delete unused argument nargout. 36719 36720 * filter.cc: Use MArray instead of Array so that automatic 36721 conversions will work again. 36722 36723Tue Feb 27 04:49:51 1996 John W. Eaton <jwe@bevo.che.wisc.edu> 36724 36725 * variables.cc (looks_like_octave_copyright): Make the strings 36726 that we are trying to match both have length 29. 36727 36728 * Makefile.in (install-bin): Use $(INSTALL_PROGRAM), not $(INSTALL). 36729 36730 * load-save.cc (read_mat_binary_data): Make sure name is 36731 NUL terminated. 36732 36733Mon Feb 26 18:18:45 1996 John W. Eaton <jwe@bevo.che.wisc.edu> 36734 36735 * variables.cc (whos): Make argv from tmp_args, not args. 36736 36737 * defun.h (DEFCONSTX): Don't stringify name. 36738 36739Sat Feb 24 01:12:59 1996 John W. Eaton <jwe@bevo.che.wisc.edu> 36740 36741 * Makefile.in (install-oct): Make mk-oct-links executable. 36742 * mk-oct-links.in (links_dir): Update to match new format of 36743 DEFUN_DLD_BUILTIN macro. Use LN_S, not just LN. 36744 (links_dir): 36745 36746 * pr-output.cc (octave_print_internal): New arg, extra_indent, for 36747 versions of this function that take matrices and ranges. 36748 * pt-const.cc (TC_REP::print (ostream&)): Fix printing of structures. 36749 Pass struct_indent to octave_print_internal as appropriate. 36750 (print_with_name (ostream&, const string&, bool)): Handle spacing 36751 around `=' differently for structures. 36752 36753Fri Feb 23 04:51:04 1996 John W. Eaton <jwe@bevo.che.wisc.edu> 36754 36755 * token.cc (token (double, const string&, int, int)): Store orig_text. 36756 36757Tue Feb 20 20:36:01 1996 John W. Eaton <jwe@bevo.che.wisc.edu> 36758 36759 * variables.cc (Fclear): Fix off-by-one error. 36760 36761Sat Feb 17 16:54:02 1996 John W. Eaton <jwe@bevo.che.wisc.edu> 36762 36763 * oct-hist.cc (default_history_file): Append "/.octave_hist" to 36764 return value, not to home_directory. 36765 36766Fri Feb 16 18:10:46 1996 John W. Eaton <jwe@bevo.che.wisc.edu> 36767 36768 * utils.cc: (NINT, D_NINT): Move to liboctave. 36769 36770 * sysdep.cc (octave_ieee_init): Move to liboctave. 36771 36772 * procstream.h, procstream.cc: Rewrite. 36773 36774 * pager.cc (cleanup_oprocstream): New static function. 36775 * toplev.cc (cleanup_iprocstream): Likewise. 36776 * dirfns.cc (cleanup_iprocstream): Likewise. 36777 36778 * unwind-prot.cc (matrix_cleanup, complex_matrix_cleanup): Delete. 36779 36780Thu Feb 15 22:03:28 1996 John W. Eaton <jwe@bevo.che.wisc.edu> 36781 36782 * oct-obj.cc, oct-obj.h: Move most code to the header. 36783 36784 * oct-obj.cc (make_argv, all_strings): New member functions. 36785 * utils.cc: Moved from here. 36786 36787 * load-save.cc: Move byte swapping stuff to liboctave. 36788 Move float format conversion stuff to liboctave. 36789 (all_parts_int, too_large_for_float): Move to liboctave. 36790 36791 * symtab.cc (valid_identifier): Move here. 36792 * load-save.cc: From here. 36793 36794 * sysdep.cc: Move floating-point format stuff to liboctave. 36795 * pr-output.cc: Include float-fmt.h here. 36796 36797Wed Feb 14 01:49:20 1996 John W. Eaton <jwe@bevo.che.wisc.edu> 36798 36799 * defun.h, defun-dld.h, defun-int.h: Simplify interface for DEFUN, 36800 DEFUN_DLD, DEFVAR, and DEFCONST macros. Change all uses. 36801 36802 * qzval.cc: Move guts to liboctave. 36803 36804Tue Feb 13 10:28:27 1996 John W. Eaton <jwe@bevo.che.wisc.edu> 36805 36806 * variables.cc (parse_fcn_file): Also avoid saving history if 36807 input is from a script file. 36808 36809 * help.cc (Ftype): Call unwind_protect_str for user_pref.ps4. 36810 36811 * npsol.cc (nonlinear_constraints_ok): Now static. 36812 36813 * npsol.cc (linear_constraints_ok): Now static. 36814 * qpsol.cc (linear_constraints_ok): Duplicate here. 36815 36816 * data.cc (Flinspace): Don't print usage message if nargin == 2. 36817 36818Sun Feb 11 14:20:32 1996 John W. Eaton <jwe@bevo.che.wisc.edu> 36819 36820 * mk-oct-links.in: Rename from mk-oct-links. 36821 (LN_S): Use this variable instead of ln. 36822 Set -e option for shell. 36823 Exit with status of last command. 36824 Print message when making link. 36825 * Makefile.in (DISTFILES): Add mk-oct-links.in to the list. 36826 (install-oct): Run ./mk-oct-links, not $(srcdir)/mk-oct-links. 36827 36828 * variables.cc (install_builtin_variables): Restore accidentally 36829 deleted DEFVAR for save_precision. 36830 36831Fri Feb 9 11:24:32 1996 John W. Eaton <jwe@bevo.che.wisc.edu> 36832 36833 * Makefile.in (INCLUDES): Delete statdefs.h from the list (it's 36834 now in the liboctave directory). 36835 36836 * toplev.cc (toplevel): Define here. 36837 * octave.cc (toplevel): Not here. 36838 36839 * toplev.cc (main_loop): New function. 36840 * octave.cc (main): Call it here instead of doing main loop 36841 actions here. 36842 36843 * user-prefs.cc (do_fortran_indexing): Also set liboctave_dfi_flag. 36844 (prefer_column_vectors): Also set liboctave_pcv_flag. 36845 (prefer_zero_one_indexing): Also set liboctave_pzo_flag. 36846 (resize_on_range_error): Also set liboctave_rre_flag. 36847 36848 * variables.cc (restore_command_history): New function. 36849 (parse_fcn_file): Use it here in unwind_protect. 36850 36851 * dynamic-ld.cc (load_octave_oct_file): Reverse sense of test. 36852 (load_octave_builtin): Delete. 36853 (mangle_octave_oct_file_name): Delete. 36854 36855 * pt-fvc.cc (tree_builtin::eval): Don't try to dynamically load 36856 functions here. 36857 36858 * pr-output.cc (set_format_style): Decrement argc for first arg too. 36859 36860 * input.cc (gnu_readline): If readline returns an empty string, 36861 convert it to a string containing a single newline character. 36862 36863 * octave.cc (octave_argv): Now a static string_vector. 36864 (intern_argv): Use string_vector ops, not charMatrix ops. 36865 * toplev.cc (octave_argv): Delete definition. 36866 * toplev.h (octave_argv): Delete declaration. 36867 36868Thu Feb 8 10:58:24 1996 John W. Eaton <jwe@bevo.che.wisc.edu> 36869 36870 * Makefile.in (conf-dist): New target. 36871 36872Tue Feb 6 10:59:45 1996 John W. Eaton <jwe@bevo.che.wisc.edu> 36873 36874 * help.cc (Ftype): Correctly handle structure names. 36875 36876Sun Feb 4 02:02:20 1996 John W. Eaton <jwe@bevo.che.wisc.edu> 36877 36878 * qpsol.cc (Fqpsol): Call set_options(), not copy() to set 36879 options for QPSOL objects. 36880 36881 * npsol.cc (Fnpsol): Call set_options(), not copy() to set 36882 options for NPSOL objects. 36883 36884 * quad.cc (Fquad): Call set_options(), not copy() to set 36885 options for Quad objects. 36886 36887 * dynamic-ld.cc (load_octave_builtin): Don't call destructor on string. 36888 (load_octave_oct_file): Likewise. 36889 Check oct_file.empty(), not just oct_file. 36890 36891 * fsolve.cc (Ffsolve): Call set_options(), not copy() to set 36892 options for NLEqn object. 36893 36894 * variables.cc (do_who): Properly set match patterns from argument 36895 vector for call to maybe_list. 36896 36897Sat Feb 3 03:29:33 1996 John W. Eaton <jwe@bevo.che.wisc.edu> 36898 36899 * octave.cc (long_opts): Properly set second field using new enum. 36900 36901 * lsode.cc: Change ODE to LSODE where appropriate. 36902 Use LSODE_options, not ODE_options. 36903 36904 * dassl.cc: Change DAE to DASSL where appropriate. 36905 Use DASSL_options, not ODE_options. 36906 36907Fri Feb 2 01:41:37 1996 John W. Eaton <jwe@bevo.che.wisc.edu> 36908 36909 * dirfns.cc: Include unistd.h. 36910 36911 * parse.y, lex.l: Handle matrix lists without ml or mlnm stacks. 36912 * pt-mat.h, pt-mat.cc (tree_matrix): 36913 Rewrite to use SLList instead of home brew list. 36914 * SLList-tm.cc: New file 36915 * Makefile.in: Add it to the lists. 36916 * SLStack-tm.cc: Delete. 36917 * Makefile.in: Delete it from the lists. 36918 36919 * All pt-* files: Use bool instead of int where appropriate. 36920 36921 * Makefile.in (DEP_SOURCES_3): Add octave.cc. 36922 36923 * pt-const.h (class tree_constant::tree_constant_rep): Make 36924 everything in this class public, then it doesn't need to declare 36925 the tree_constant class as a friend. 36926 36927Thu Feb 1 01:42:45 1996 John W. Eaton <jwe@bevo.che.wisc.edu> 36928 36929 * lex.h, lex.l, parse.h, parse.y (class lexical_feedback): New 36930 class for lexer flags. Replace lots of global vars with members 36931 of this class. 36932 36933 * lex.l (class brace_paren_nesting_level): New class to replace 36934 nesting_level stack. nesting_level is now an instance of this 36935 class. 36936 36937 * lex.l (yum_yum): New typedef. 36938 (ATE_NOTHING): New global var. 36939 (ATE_SPACE_OR_TAB, ATE_NEWLINE): Don't #define these, declare them 36940 as const yum_yum. 36941 (eat_whitespace, eat_continuation): Return yum_yum, not int. 36942 36943 * lex.l (SHORT_CIRCUIT_LOGICALS): Delete. Always do this for || 36944 and && tokens. 36945 (yy_flex_alloc, yy_flex_realloc, yy_flex_free, next_char_is_space): 36946 Delete. 36947 36948 * toplev.cc (verbose_flag): Delete definition. 36949 * toplev.h (verbose_flag): And declaration. 36950 * octave.cc (verbose_flag): Now static. 36951 36952 * lex.l (lookup_identifier): Arg is now string, not char*. 36953 (handle_identifier, is_plot_keyword, is_keyword): Likewise. 36954 (strip_trailing_whitespace): Return value is now string, not char*. 36955 (plot_style_token): Likewise, for both arg and return value. 36956 36957 * input.cc (octave_gets_line): Delete. 36958 (gnu_readline, octave_gets, octave_read): 36959 Properly handle input when using_readline is either true or false. 36960 Don't limit length of input lines to flex buffer size. 36961 (get_user_input): New function. 36962 36963 * octave.cc (main): Handle --no-line-editing. 36964 * toplev.h (using_readline): Provide external declaration here. 36965 * input.h: Not here. 36966 * toplev.cc (using_readline): Define here. 36967 * input.cc: Not here. 36968 36969 * toplev.h (no_line_editing): Delete declaration. 36970 * input.cc (no_line_editing): Delete definition. 36971 36972Wed Jan 31 05:28:45 1996 John W. Eaton <jwe@bevo.che.wisc.edu> 36973 36974 * input.cc (DEFAULT_ARRAY_SIZE, PROMPT_GROWTH): Delete definitions 36975 of unused macros. 36976 (read_octal): Now static. 36977 36978 * givens.cc (Fgivens): Use new functions from matrix classes 36979 instead of calling Fortran functions directly. 36980 * syl.cc (Fsyl): Likewise. 36981 * expm.cc (Fexpm): Likewise. 36982 36983Mon Jan 29 00:00:48 1996 John W. Eaton <jwe@bevo.che.wisc.edu> 36984 36985 * octave.cc: Use new prog_args class instead of calling getopt 36986 directly. 36987 36988 * getopt.h, getopt.c, getopt1.c: Move to liboctave directory. 36989 * Makefile: Remove from lists. 36990 36991 * utils.cc (strconcat, read_until, discard_until): Delete. 36992 36993 * pager.cc (terminal_columns, terminal_rows): Move to 36994 liboctave/oct-term.cc. 36995 * pager.cc, pr-output.cc: Include oct-term.h. 36996 36997 * utils.cc (list_in_columns): Moved to liboctave/str-vec.cc. 36998 Change all callers to use new member function syntax. 36999 37000 * dirfns.cc (absolute_program): Now static. 37001 (absolute_pathname): Delete. 37002 37003 * pt-plot.cc (save_in_tmp_file): Call oct_tempnam, not 37004 octave_tmp_file_name. Include file-ops.h. 37005 * file-io.cc (do_scanf, Foctave_tmp_file_name): Likewise. 37006 * oct-hist.cc (mk_tmp_hist_file): Likewise. 37007 37008 * file-io.cc (Foctave_tmp_file_name): Move here. 37009 * utils.cc: From here. 37010 37011 * utils.cc (octave_tmp_file_name): Move to liboctave/file-ops.cc. 37012 37013 * tempname.c, tempnam.c: Move to liboctave directory. 37014 * Makefile.in: Remove from lists. 37015 37016Sun Jan 28 19:00:52 1996 John W. Eaton <jwe@bevo.che.wisc.edu> 37017 37018 * xdiv.cc (all xdiv functions): Return Matrix or ComplexMatrix, 37019 not tree_constant. 37020 37021 * oct-hist.h, oct-hist.cc, toplev.cc, octave.cc, input.cc, 37022 file-io.cc, user-prefs.cc: Rewrite to use new command_history 37023 class instead of calling readline history functions directly. 37024 37025 * utils.cc (get_fcn_file_names): Delete num arg. 37026 37027Thu Jan 25 20:33:54 1996 John W. Eaton <jwe@bevo.che.wisc.edu> 37028 37029 * load-save.cc (matches_patterns): Use new glob_match class 37030 instead of calling fnmatch directly. 37031 * symtab.cc (matches_patterns, symbol_table::glob): Likewise. 37032 * variables.cc (Fclear): Likewise. 37033 37034Wed Jan 24 02:05:22 1996 John W. Eaton <jwe@bevo.che.wisc.edu> 37035 37036 * fnmatch.h fnmatch.c: Delete. 37037 * Makefile.in: Add glob stuff in the appropriate places, remove 37038 fnmatch.h and fnmatch.c from lists. 37039 37040 * octave.cc (program_invocation_name, program_invocation_short_name): 37041 Maybe declare. 37042 (initialize_globals): Maybe initialize them. 37043 37044 * octave.cc (initialize_pathsearch): Define here, not in pathsearch.cc. 37045 * pathsearch.h, pathsearch.cc: Remove files. 37046 * Makefile.in: Remove them from the lists. 37047 37048 * help.cc (simple_help): Ignore directories that don't have any .m 37049 or .oct files. 37050 37051 * utils.cc (search_path_for_file): Use new dir_path class instead 37052 of calling kpathsea routines directly. 37053 (get_fcn_file_names): Likewise. 37054 * help.cc (simple_help): Likewise. 37055 37056 * dirfns.cc (make_absolute): Don't convert empty arg to "./". 37057 37058 * sysdir.h: Move to liboctave directory. 37059 * Makefile.in: Remove from lists. 37060 37061 * dirfns.cc (Freaddir): Use new dir_entry class instead of calling 37062 readdir directly. Include dir-ops.h, not sysdir.h. 37063 * utils.cc (get_fcn_file_names): Likewise. Delete unnecessary 37064 first arg, change all callers. 37065 37066Tue Jan 23 00:43:12 1996 John W. Eaton <jwe@bevo.che.wisc.edu> 37067 37068 * safe-xstat.hin, safe-xstat.cin, statdefs.h, file-ops.h, 37069 file-ops.cc, filemode.c, mkdir.c, rmdir.c, rename.c: 37070 Files moved to liboctave directory. 37071 * Makefile.in: Remove them from lists. Move appropriate rules. 37072 37073 * acosh.c, asinh.c, atanh.c, erf.c, erfc.c, gamma.c, lgamma.c: 37074 Files moved to liboctave directory. 37075 * Makefile.in: Remove them from lists. 37076 * missing-math.h: Deleted. 37077 * pr-output.cc, sysdep.cc, minmax.cc, mappers.cc, expm.cc, 37078 arith-ops.cc: Include oct-math.h, not cmath or missing-math.h. 37079 37080Mon Jan 22 19:33:05 1996 John W. Eaton <jwe@bevo.che.wisc.edu> 37081 37082 * variables.cc (Fexist): Use file_stat instead of calling stat 37083 directly. Include file-ops.h, not statdefs.h. 37084 * octave.cc (execute_startup_files): Likewise. 37085 * file-io.cc (file_io_get_file, fopen_internal, popen_internal, Fstat): 37086 Likewise. 37087 (mk_stat_map): Likewise, use file_stat object, not struct stat. 37088 * oct-hist.cc (do_history): Likewise. 37089 37090 * file-ops.h, file-stat.cc: New files. 37091 * Makefile.in: Include them. 37092 * dirfns.cc: Delete is_newer. Don't include statdefs.h. 37093 * toplev.cc: Don't include statdefs.h. 37094 37095Sun Jan 21 22:48:03 1996 John W. Eaton <jwe@bevo.che.wisc.edu> 37096 37097 * pt-mvr.h, pt-fvc.h, Map.cc, Map.h, dynamic-ld.h, 37098 pt-fvc-base.cc, SLList-str.cc, pt-fcn.h, pt-fvc-base.h, 37099 SLStack-str.cc, pt-mvr.cc, pt-exp.cc, token.h, token.cc, 37100 user-prefs.h, pt-base.cc, user-prefs.cc, dirfns.h, sysdep.h, 37101 sysdep.cc, input.h, parse.h, lex.l, parse.y, defun.h, mappers.h, 37102 pt-fvc.cc, pt-plot.h, load-save.h, octave.cc, defun-int.h, help.h, 37103 variables.h, oct-map.h, oct-obj.h, oct-obj.cc, pt-const.cc, 37104 oct-map.cc, input.cc, symtab.h, pt-const.h, pathsearch.cc, 37105 pr-output.h, pr-output.cc, toplev.h, timefns.cc, schur.cc, 37106 pt-plot.cc, pager.cc, load-save.cc, dynamic-ld.cc, dirfns.cc, 37107 data.cc, file-info.h, file-info.cc, colloc.cc, utils.h, qpsol.cc, 37108 quad.cc, npsol.cc, lsode.cc, fsolve.cc, dassl.cc, file-io.cc, 37109 help.cc, utils.cc, oct-hist.h, oct-hist.cc, symtab.cc, toplev.cc, 37110 pt-fcn.cc, unwind-prot.h, unwind-prot.cc, variables.cc: 37111 Most functions in these files that deal with character strings 37112 have been converted to use the string class insatead of char*. If 37113 you want more detailed information, you'll have to figure it out 37114 for yourself. 37115 37116Sat Jan 20 18:19:12 1996 John W. Eaton <jwe@bevo.che.wisc.edu> 37117 37118 * dynamic-ld.cc [WITH_DL]: Define RTLD_LAZY to be 1 if it is not 37119 already defined. 37120 37121Sun Jan 14 07:48:05 1996 John W. Eaton <jwe@bevo.che.wisc.edu> 37122 37123 * pt-const.cc (print_as_scalar, print_as_structure): 37124 Make these member functions. 37125 (tree_constant::print_with_name): New function, moved here from 37126 old tree-expr.cc file (where it was called print_constant) and 37127 converted to member function. Change all callers. 37128 37129Fri Jan 12 01:54:49 1996 John W. Eaton <jwe@bevo.che.wisc.edu> 37130 37131 * octave.cc (initialize_globals): Don't do kpathsearch stuff here. 37132 (main): Call initialize_pathsearch() here. 37133 37134 * pathsearch.cc: New file. 37135 * Makefile.in (SOURCES): Add it to the list 37136 37137 * oct-hist.h: Rename from octave-hist.h. 37138 * oct-hist.cc: Rename from octave-hist.cc. 37139 * Makefile.in, parse.y, other .cc files: Cope with it. 37140 37141 * dynamic-ld.cc: Avoid warnings if !WITH_DYNAMIC_LINKING. 37142 37143 * load-save.cc (save_ascii_data): string::data() returns const char*. 37144 37145 * utils.h: Don't provide forward declaration for tree_constant. 37146 37147 * oct-obj.h: Don't include mx-base.h or provide forward 37148 declarations for Matrix and Range types. 37149 37150 * file-info.h: Don't include oct-obj.h. Do include cstdio. 37151 37152 * symtab.h: Don't provide forward declaration for ostream. 37153 37154 * variables.h: Don't provide forward declarations for istream, 37155 ostrstream, tree, builtin_function, or builtin_variable objects. 37156 37157 * balance.cc, chol.cc, colloc.cc, dassl.cc, det.cc, eig.cc, 37158 expm.cc, fft.cc, fft2.cc, filter.cc, find.cc, fsolve.cc, fsqp.cc, 37159 givens.cc, hess.cc, ifft.cc, ifft2.cc, inv.cc, log.cc, lpsolve.cc, 37160 lsode.cc, lu.cc, minmax.cc, npsol.cc, pinv.cc, qpsol.cc, qr.cc, 37161 quad.cc, qzval.cc, rand.cc, schur.cc, sort.cc, svd.cc, syl.cc: 37162 Clean up #include statements. 37163 37164 * pt-const.h: Don't include oct-obj.h or tree-base.h. 37165 Provide forward declaration of Octave_object here. 37166 * pt-const.cc: Include oct-obj.h here. 37167 37168 * pt-mat.h, pt-fcn.h, pt-const.h, pt-misc.h, pt-plot.h, 37169 pt-exp-base.h, pt-cmd.h, pt-fvc-base.h, pt-mvr-base.h, pt-exp.h, 37170 pt-mvr.h, pt-fvc.h: New files, split from tree-expr.h and/or 37171 renamed from other tree-*.h files (pt == parse tree). 37172 * pt-base.cc, pt-const.cc, pt-exp.cc, pt-fvc-base.cc, pt-mat.cc, 37173 pt-mvr-base.cc, pt-plot.cc, pt-cmd.cc, pt-exp-base.cc, pt-fcn.cc, 37174 pt-fvc.cc, pt-misc.cc, pt-mvr.cc: Likewse, split from tree-expr.cc 37175 and/or other tree-*.cc files. 37176 * Makefile.in: Include them in the appropriate lists. 37177 * All: Fix #include statements to match. 37178 37179 * Array-tc.cc: Don't instantiate ArrayRep objects. 37180 37181Thu Jan 11 02:35:19 1996 John W. Eaton <jwe@bevo.che.wisc.edu> 37182 37183 * tree-const.cc (tree_constant::eval (int, int, const Octave_object&)): 37184 Define here instead of in tree-const.h. 37185 37186Wed Jan 10 04:34:20 1996 John W. Eaton <jwe@bevo.che.wisc.edu> 37187 37188 * tree-const.h (tree_constant::tree_constant (const string&): 37189 * tree-const.cc (TC_REP::tree_constant_rep (const string&)): 37190 New constructor. 37191 37192Tue Jan 9 04:10:29 1996 John W. Eaton <jwe@bevo.che.wisc.edu> 37193 37194 * rand.cc (do_rand): Use string_value() result directly instead of 37195 c_str() conversion. 37196 * balance.cc (Fbalance): Likewise. 37197 37198 * tree-const.cc (TC_REP::string_value()): 37199 Handle new definition of charMatrix::row_as_string() 37200 * load-save.cc (save_ascii_data): Ditto. 37201 (save_binary_data): Ditto. 37202 * pr-output.cc (octave_print_internal): Ditto. 37203 37204 * balance.cc (Fbalance): 37205 Handle new definition of TC_REP::string_value() 37206 * colloc.cc (Fcolloc): Ditto. 37207 * dassl.cc (Fdassl_options): Ditto. 37208 * data.cc (Fstruct_contains): Ditto. 37209 * dirfns.cc (Fmkdir): Ditto. 37210 (Freaddir): Ditto. 37211 (Frmdir): Ditto. 37212 (Frename): Ditto. 37213 * error.cc (handle_message): Ditto. 37214 * file-io.cc (process_printf_format): Ditto. 37215 (fopen_internal): Ditto. 37216 (file_io_get_file): Ditto. 37217 (return_valid_file): Ditto. 37218 (Flstat): Ditto. 37219 (Fstat): Ditto. 37220 (unlink_internal): Ditto. 37221 (mkfifo_internal): Ditto. 37222 (async_system_internal): Ditto. 37223 (sync_system_internal): Ditto. 37224 (execute_internal): Ditto. 37225 (popen_internal): Ditto. 37226 (fwrite_internal): Ditto. 37227 (fread_internal): Ditto. 37228 (do_printf): Ditto. 37229 (do_scanf): Ditto. 37230 * input.cc (get_user_input): Ditto. 37231 * lsode.cc (Flsode_options): Ditto. 37232 * npsol.cc (Fnpsol_options):Ditto. 37233 * qpsol.cc (Fqpsol_options):Ditto. 37234 * quad.cc (Fquad_options): Ditto. 37235 * rand.cc (do_rand): Ditto. 37236 * schur.cc (Fschur): Ditto. 37237 * sysdep.cc (Fputenv): Ditto. 37238 (Fgetenv): Ditto. 37239 * timefns.cc (extract_tm): Ditto. 37240 (Fstrftime): Ditto. 37241 * toplev.cc (Fsource): Ditto. 37242 (eval_string): Ditto. 37243 (Fsystem): Ditto. 37244 * tree-plot.cc (subplot::handle_plot_data): Ditto. 37245 * variables.cc (is_valid_function): Ditto. 37246 (Fis_global): Ditto. 37247 (Fexist): Ditto. 37248 (builtin_string_variable): Ditto. 37249 * utils.cc (make_argv): Ditto. 37250 (Fundo_string_escapes): Ditto. 37251 37252Mon Jan 8 01:54:50 1996 John W. Eaton <jwe@bevo.che.wisc.edu> 37253 37254 * Makefile.in (install-bin): Use $(LN_S), not just ln. 37255 37256 * variables.cc (octave_fcn_file_dir): New function. 37257 * tree-expr.cc (mark_as_system_fcn_file): Use it instead of 37258 octave_lib_dir. 37259 37260 * Makefile.in (clean): If $(SHARED_LIBS), also remove shared libs. 37261 37262 * pr-output.cc (set_format (const ComplexMatrix&, int&, int&)): 37263 Unconditionally call all_elements_are_int_or_inf_or_nan(). 37264 (set_format (const Matrix&, int&, int&)): Likewise. 37265 37266Sun Jan 7 19:12:39 1996 John W. Eaton <jwe@bevo.che.wisc.edu> 37267 37268 * utils.cc (oct_putenv): New function. 37269 * sysdep.cc (Fputenv): Use oct_putenv. 37270 * octave.cc (initialize_globals): Likewise. 37271 37272Sat Jan 6 23:22:37 1996 John W. Eaton <jwe@bevo.che.wisc.edu> 37273 37274 * sysdep.cc (Fputenv): New function. 37275 37276 * input.cc (initialize_readline): Call rl_initialize() here. 37277 37278 * octave.cc: Conditionally define atexit to be on_exit here. 37279 * toplev.cc: Not here. 37280 37281Fri Jan 5 14:01:02 1996 John W. Eaton <jwe@bevo.che.wisc.edu> 37282 37283 * toplev.cc: Don't include <pwd.h> here. 37284 37285 * octave-hist.cc, tree-plot.cc, utils.cc: Do include "sysdep.h". 37286 37287 * dirfns.cc, file-io.cc, help.cc, load-save.cc, octave.cc, 37288 octave-hist.cc, tree-plot.cc, utils.cc: 37289 Don't include <readline/tilde.h>. 37290 * sysdep.h: Do include it here. 37291 37292 * tree-const.cc (TC_REP::assign (tree_constant&, Octave_object&)): 37293 If we have a matrix or range, call maybe_mutate before returning. 37294 37295Sun Dec 31 15:56:18 1995 John W. Eaton <jwe@bevo.che.wisc.edu> 37296 37297 * npsol.cc (Fnpsol): Improve doc string. 37298 * qpsol.cc (Fqpsol): Likewise. 37299 37300Fri Dec 29 21:46:58 1995 John W. Eaton <jwe@bevo.che.wisc.edu> 37301 37302 * defun-dld.h: Make work again for OCTAVE_LITE and 37303 WITH_DYNAMIC_LINKING. 37304 37305 * Makefile.in: Handle shared libraries. 37306 37307Wed Dec 27 17:47:51 1995 John W. Eaton <jwe@bevo.che.wisc.edu> 37308 37309 * mk-oct-links: New file. 37310 * Makefile.in (install-oct): Use it. 37311 * f-*.cc: Rename to *.cc. 37312 37313 * Makefile.in (install-bin, install-lib, install-oct): New targets. 37314 (install): Use them. 37315 37316Tue Dec 26 21:38:22 1995 John W. Eaton <jwe@bevo.che.wisc.edu> 37317 37318 * toplev.cc (reading_startup_message_printed): Move initialization 37319 here and make extern. 37320 37321 * dirfns.cc, dynamic-ld.cc, help.cc, input.cc, octave-hist.cc, 37322 octave.cc, sighandlers.cc, sysdep.cc, tree-expr.cc, tree-misc.cc, 37323 utils.cc, variables.cc, parse.y, lex.l: Include toplev.h instead 37324 of octave.h. 37325 * toplev.h: rename from octave.h. 37326 37327 * octave.cc (main): Delete unused variable saved_sigint_handler. 37328 37329Sun Dec 24 00:26:54 1995 John W. Eaton <jwe@bevo.che.wisc.edu> 37330 37331 * dynamic-ld.cc: Massive re-write to handle dlopen/dlsym and 37332 shl_load/shl_findsym methods of dynamic linking. 37333 37334 * utils.cc (get_fcn_file_names): Check for .oct files if 37335 WITH_DYNAMIC_LINKING, not WITH_DLD. 37336 37337 * Makefile.in (LIB, TERMLIBS): Substitute values. 37338 (octave): Add $(LIBS) to link command and use $(TERMLIBS) instead 37339 of -ltermcap. 37340 37341Sat Dec 23 21:56:12 1995 John W. Eaton <jwe@bevo.che.wisc.edu> 37342 37343 * dynamic-ld.h, dynamic-ld.cc: Remove old unused code. 37344 37345 * variables.cc (load_fcn_from_file): 37346 Always call load_octave_oct_file. 37347 37348Wed Dec 20 00:56:57 1995 John W. Eaton <jwe@bevo.che.wisc.edu> 37349 37350 * pr-output.cc (set_real_format, set_real_matrix_format, 37351 set_complex_format, set_complex_matrix_format, set_range_format): 37352 New functions. Ensure the count of the digits to the right of the 37353 decimal point is positive. 37354 37355 * xpow.cc (xpow (const Matrix&, double)): Print warning if 37356 inverting singular matrix (but return value anyway, in the name of 37357 compatibility). 37358 xpow (const ComplexMatrix&, double)): Likewise. 37359 37360 * f-inv.cc (Finv): If matrix is singular, return result anyway, in 37361 the name of compatibility. 37362 37363 * symtab.cc (symbol_record::pop_context): 37364 Don't assert (! context.empty ()). 37365 37366 * tree-const.cc (TC_REP::char_matrix_value): Don't complain about 37367 type conversion if object is an empty matrix.f 37368 (TC_REP::assign): If rhs is a string, don't convert to numeric 37369 type if rhs is empty or "". 37370 Only widen if rhs is not empty. 37371 Don't return 0x0 char_matrix if it is supposed to be a string. 37372 37373 * arith-ops.h, mappers.h, pr-output.h, xdiv.h, xpow.h: Include 37374 oct-cmplx.h in place of forward declaration for class Complex. 37375 37376 * pr-output.cc, mappers.cc, arith-ops.cc, xdiv.cc, xpow.cc, 37377 utils.cc: Include "oct-cmplx.h" instead of <Complex.h>. 37378 37379 * octave.cc (initialize_error_handlers): Don't call 37380 set_Complex_error_handler(). 37381 (octave_Complex_error_handler): Delete unused function. 37382 Delete declaration for set_Complex_error_handler(). 37383 37384 * sighandlers.cc (catch_interrupts): New function. 37385 * octave.cc (main): Call catch_interrupts() instead of calling 37386 octave_set_signal_handler() directly. 37387 37388Tue Dec 19 03:22:37 1995 John W. Eaton <jwe@bevo.che.wisc.edu> 37389 37390 * variables.cc (looks_like_octave_copyright): Also recognize the 37391 string " This program is free software". 37392 37393Thu Dec 14 01:54:06 1995 John W. Eaton <jwe@bevo.che.wisc.edu> 37394 37395 * octave-hist.cc (clean_up_history): Only write history file if 37396 user_pref.saving_history. 37397 37398 * octave-hist.cc (initialize_history, clean_up_history, 37399 do_history): Perform tilde expansion on history file name. 37400 37401 * octave.cc (main): Check `defined (HAVE_ON_EXIT)' not just 37402 `(HAVE_ON_EXIT)'. 37403 37404 * user-prefs.h (user_preferences): New fields, `history_file' and 37405 `history_size'. 37406 * user-prefs.cc (init_user_prefs): Initialize them. 37407 (sv_history_file, history_size): New functions. 37408 * variables.cc (install_builtin_variables): Initialize user-level 37409 variables history_file and history_size. 37410 * octave-hist.cc (default_history_size): Now extern. 37411 (default_history_file): Likewise. 37412 (octave_hist_size, octave_hist_file): Use user preference 37413 variables instead. 37414 * octave.cc (main): Call initialize_history after 37415 execute_startup_files. 37416 37417Fri Dec 8 15:53:59 1995 John W. Eaton <jwe@bevo.che.wisc.edu> 37418 37419 * user-prefs.h (user_preferences): New field, `saving_history'. 37420 * user-prefs.cc (init_user_prefs): Initialize it. 37421 (saving_history): New function. 37422 * variables.cc (install_builtin_variables): Initialize user-level 37423 variable saving_history. 37424 * octave.cc (parse_and_execute): Don't reset value of 37425 saving_history here. 37426 (main) Use user_pref.saving_history instead of saving_history. 37427 * variables.cc (parse_fcn_file): Likewise. 37428 * octave-hist.cc (maybe_save_history): Likewise. 37429 Don't save history if input_from_startup_file. 37430 37431Mon Nov 27 23:05:52 1995 John W. Eaton <jwe@bevo.che.wisc.edu> 37432 37433 * resource.cc: Include systime.h before <sys/resource.h>. 37434 37435Tue Nov 14 14:09:40 1995 John Eaton <jwe@bevo.che.wisc.edu> 37436 37437 * error.cc: Include cstring. 37438 37439 * tree-expr.cc (print_code): Decrement indent level after printing 37440 function body. 37441 37442 * Makefile.in: Remove references to oct-str.cc, oct-str.h, and 37443 Array-string.cc. 37444 37445 * tree-const.h: Don't include oct-str.h. 37446 37447Mon Nov 6 11:16:49 1995 John Eaton <jwe@bevo.che.wisc.edu> 37448 37449 * parse.y (make_plot_command, finish_colon_expression, 37450 make_unwind_protect, make_try_command, make_for_command, 37451 make_break_command, make_continue_command, make_return_command, 37452 start_if_command, finish_if_command, make_elseif_clause, 37453 make_simple_assignment, make_multi_val_ret, start_function_def, 37454 frob_function_def, finish_function_def, start_matrix, 37455 finish_matrix): New functions. Use them in the grammar to clean 37456 things up a bit. Possibly convert matrix lists, colon 37457 expressions, binary expressions, and unary expressions to constant 37458 values. 37459 (tree_matrix_type): Delete. 37460 (simple_expr1): Handle all expression stuff here, including 37461 assignments. 37462 (simple_expr): Just check to see that simple_expr1 produced 37463 something useful. 37464 37465 * tree-plot.cc, tree-plot.h: Move most simple constructors to the 37466 header file. 37467 37468 * tree-expr.h (tree_expression::is_constant): Move virtual 37469 function definition here. 37470 (tree_fvc::is_constant): From here. 37471 (tree_expression::is_matrix_constant): New virtual function. 37472 (tree_expression::is_range_constant): New virtual function. 37473 * tree-expr.cc (tree_matrix::is_matrix_constant): New function. 37474 * tree-expr.cc (tree_colon_expression::is_range_constant): New 37475 function. 37476 37477Fri Nov 3 03:42:04 1995 John Eaton <jwe@bevo.che.wisc.edu> 37478 37479 * utils.cc, utils.h (jump_to_top_level): Declare as extern "C". 37480 37481 * tree-const.h (tree_constant::eval ()): Only mutate if printing. 37482 37483 * tree-const.cc (TC_REP::tree_constant_rep (const Complex&), 37484 TC_REP::tree_constant_rep (const ComplexMatrix&), 37485 TC_REP::tree_constant_rep (const ComplexDiagMatrix&), 37486 TC_REP::tree_constant_rep (const ComplexRowVector&), 37487 TC_REP::tree_constant_rep (const ComplexColumnVector&)): 37488 Also check to see if we can convert to scalar_constant, not just 37489 complex_scalar_constant. 37490 37491 * user-prefs.h (user_preferences): New field, `exec_path'. 37492 * user-prefs.cc (init_user_prefs): Initialize it. 37493 (sv_exec_path): New function. 37494 * variables.cc (install_builtin_variables): Add DEFUN for EXEC_PATH. 37495 (default_exec_path): New function. 37496 * octave.cc (exec_path): New global variable. 37497 Don't set and putenv() exec path here. 37498 (long_opts): Add --exec-path option. 37499 (main): Handle it. 37500 (initialize_globals): Set default value here. 37501 37502 * user-prefs.h (user_preferences): New field, `info_prog'. 37503 * user-prefs.cc (init_user_prefs): Initialize it. 37504 (sv_info_prog): New function. 37505 * variables.cc (install_builtin_variables): Add DEFUN for INFO_PROGRAM. 37506 (default_info_prog): New function. 37507 * octave.cc (info_prog): New global variable. 37508 (initialize_globals): Set default value here. 37509 (long_opts): Add --info-prog option. 37510 (main): Handle it. 37511 * help.cc (try_info): Use user_pref.info_prog here. 37512 37513 * octave.cc (initialize_globals): Put arch_dir and bin_dir ahead 37514 of shell_path when resetting PATH. 37515 37516Thu Nov 2 04:30:13 1995 John Eaton <jwe@bevo.che.wisc.edu> 37517 37518 * f-rand.cc (Frandn): New function. 37519 (do_initialization): New function. 37520 (do_rand): New function for doing the real work. 37521 (Frand): Use it. 37522 37523 * octave.cc (parse_and_execute): New arg, warn_for. If given, 37524 print message if file cannot be opened. 37525 Set curr_fcn_file_full_name here. 37526 (Fsource): Pass extra arg to parse_and_execute to get warning message. 37527 37528 * tree-const.h: Handle line and column info for double, Complex, 37529 and char* constants. 37530 37531 * parse.y (maybe_convert_to_ans_assign): Pass along line and 37532 column info from expression. 37533 37534 * parse.y (make_constant): New function. 37535 (simple_expr1, word_list): Use it. 37536 37537 * input.cc, input.h (curr_fcn_file_full_name): New global. 37538 * variables.cc (load_fcn_from_file): Set it here. 37539 * parse.y (func_def2, yyerror, maybe_warn_missing_semi): Use it. 37540 (func_def2): If !reading_fcn_file, don't call strcmp if 37541 curr_fcn_file_name is 0. 37542 37543 * octave.cc (Fsource): New function. 37544 (parse_and_execute): Declare file name const char *. 37545 * input.cc (get_input_from_file): Likewise. 37546 37547Wed Nov 1 13:54:34 1995 John Eaton <jwe@bevo.che.wisc.edu> 37548 37549 * f-filter.cc: New file. 37550 * Makefile.in (DLD_SRC): Add it to the list. 37551 37552 * sysdep.h (gethostname): Change declaration to match definition 37553 in sysdep.cc. 37554 37555 * resource.cc: Include sysdep.h here, for octave_NaN. 37556 37557Tue Oct 31 02:12:18 1995 John Eaton <jwe@bevo.che.wisc.edu> 37558 37559 * tree-const.cc (TC_REP::assign): After converting rhs to a 37560 numeric type, use the converted value, not the original. 37561 37562 * dirfns.cc (Fpwd): If nargout == 0, print the directory name 37563 instead of returning it. 37564 37565 * pager.cc (maybe_page_output): Call maybe_write_to_diary_file here. 37566 (flush_output_to_pager): Not here. 37567 37568Mon Oct 30 23:39:43 1995 John Eaton <jwe@bevo.che.wisc.edu> 37569 37570 * variables.cc (install_builtin_commands): Add DEFVAR for 37571 echo_executing_commands. 37572 37573 * octave-hist.cc (do_edit_history): Handle new echo stuff. 37574 * variables.cc (parse_fcn_file): Likewise. 37575 * octave.cc (parse_and_execute): Likewise. 37576 (main): Likewise. 37577 * input.cc (do_input_echo): 37578 (Fecho): New function. 37579 37580 * tree-expr.cc (tree_function::print_code_function_header, 37581 tree_function::print_code_function_trailer): New functions. 37582 (tree_function::print_code): Use them. 37583 (tree_function::eval): Likewise, if echoing commands. 37584 * tree-misc.cc (tree_statement::maybe_echo_code): New function. 37585 37586 * user-prefs.h (user_preferences): New field, echo_executing_commands. 37587 (echo_state): New enum, for various types of echoing we do. 37588 * user-prefs.cc (echo_executing_commands): New function. 37589 37590 * tree-base.cc (print_code_indent): Print PS4 as line prefix. 37591 * help.cc (Ftype): Add unwind_protect for ps4 and set it to "" 37592 before printing code. 37593 37594 * tree-misc.h (tree_statement_list): New field, function_body. 37595 (tree_statement_list::mark_as_function_body): New function. 37596 * parse.y (func_def3): Mark function bodies. 37597 37598 * pr-output.cc (octave_print_internal): Undo string escapes when 37599 printing charMatrix as strings. 37600 37601Sat Oct 28 17:38:29 1995 John Eaton <jwe@bevo.che.wisc.edu> 37602 37603 * utils.h (undo_string_escapes): Add missing const in declaration. 37604 37605Fri Oct 27 03:49:44 1995 John Eaton <jwe@bevo.che.wisc.edu> 37606 37607 * file-io.cc (next_available_file_number): New stack for keeping 37608 track of next available file number. 37609 (get_next_avail_file_num): New function. 37610 (fopen_file_for_user, fopen_internal, popen_internal, 37611 execute_internal): Use it. 37612 37613Mon Oct 23 07:00:09 1995 John Eaton <jwe@bevo.che.wisc.edu> 37614 37615 * tree-const.cc (TC_REP::convert_to_matrix_type, 37616 tree_constant::convert_to_matrix_type): New arg, make_complex. 37617 (TC_REP::set_index): New arg, rhs_is_complex. Pass it to 37618 convert_to_matrix_type. 37619 (TC_REP::assign): Pass rhs.is_complex_type() to set_index. 37620 37621Thu Oct 19 00:38:38 1995 John Eaton <jwe@bevo.che.wisc.edu> 37622 37623 * xpow.cc: Include <climits>. 37624 37625 * sysdep.cc (Fpause): Do pause even if not interactive. 37626 37627 * tree-const.cc (TC_REP::assign): Don't make RHS numeric if both 37628 RHS and LHS are strings. 37629 37630Wed Oct 18 22:19:16 1995 John Eaton <jwe@bevo.che.wisc.edu> 37631 37632 * f-expm.cc (Fexpm): Avoid taking log of negative number. Also, 37633 don't unnecessarily divide the input matrix by 1.0. 37634 37635 * input.cc (decode_prompt_string): Recognize \[ and \] too. 37636 (initialize_readline): Bind M-p to history-search-backward and M-n 37637 to history-search-forward. 37638 37639Tue Oct 17 04:31:06 1995 John Eaton <jwe@bevo.che.wisc.edu> 37640 37641 * xpow.cc (xpow): Handle integer powers better for complex^double. 37642 (elem_xpow): Likewise. 37643 37644 * lex.l ({CCHAR}): If nesting_level.top() is BRACE, return ';', 37645 not '\n'. 37646 37647Mon Oct 16 19:03:45 1995 John Eaton <jwe@bevo.che.wisc.edu> 37648 37649 * help.cc (Fwhich): Fix doc string. 37650 37651 * variables.cc (Fexist): Update doc string. 37652 37653Sun Oct 15 22:19:16 1995 John Eaton <jwe@bevo.che.wisc.edu> 37654 37655 * Another massive set of changes to support character matrices 37656 with indexing. The Octave_str_object class is no longer used. 37657 Anything having to do with Octave_str_object in the following 37658 files has been changed to use charMatrix instead: octave.h, 37659 load-save.cc, octave.cc, strfns.cc, data.cc, pr-output.h, 37660 pr-output.cc, tree-const.h, dirfns.cc, tree-const.cc, 37661 tree-expr.cc. 37662 37663Sat Oct 14 22:28:18 1995 John Eaton <jwe@bevo.che.wisc.edu> 37664 37665 * f-sort.cc (mx_sort): Don't attempt to sort vectors that have 37666 only one element, or matrices that have only one row. 37667 37668Thu Oct 12 02:16:58 1995 John Eaton <jwe@bevo.che.wisc.edu> 37669 37670 * mappers.cc (install_mapper_functions): Add gammaln as an alias 37671 for lgamma. 37672 37673 * tree-const.h, tree-const.cc: Massive overhaul of indexing and 37674 indexed assignment functions. 37675 * tc-inlines.h, tc-rep.h: Remove files. 37676 * Makefile.in: Remove mention of them here too. 37677 37678 * Makefile.in: Include $(TI_SRC) in DEP_SOURCES_3, not 37679 $(TI_SOURCES). 37680 Include $(DLD_SRC) in DEP_SOURCES_3. 37681 Include $(TI_SRC) in DEF_FILES_5. 37682 37683Wed Oct 11 01:26:18 1995 John Eaton <jwe@bevo.che.wisc.edu> 37684 37685 * Makefile.in (INCLUDES): Remove tc-inlines.h and tc-rep.h from 37686 the list. 37687 37688Mon Oct 9 08:31:04 1995 John Eaton <jwe@bevo.che.wisc.edu> 37689 37690 * lex.l (next_token_is_bin_op): Do match `.+', `.*', etc. 37691 37692Sun Oct 8 18:19:56 1995 John Eaton <jwe@bevo.che.wisc.edu> 37693 37694 * idx-vector.h, idx-vector.cc: Delete files. 37695 * Makefile.in (SOURCES, INCLUDES): Remove them from lists. 37696 37697Fri Oct 6 00:52:06 1995 John Eaton <jwe@bevo.che.wisc.edu> 37698 37699 * f-svd.cc (Fsvd): If nargout == 0 or nargout == 1, don't ask for 37700 U and V. 37701 37702Wed Oct 4 00:04:57 1995 John Eaton <jwe@bevo.che.wisc.edu> 37703 37704 * f-npsol.cc (Fnpsol, Fnpsol_options): Avoid unused variable 37705 warnings if NPSOL_MISSING. 37706 * f-qpsol.cc (Fqpsol, Fqpsol_options): Likewise for QPSOL_MISSING. 37707 37708 * Makefile.in (DISTFILES): Add octave.gperf. 37709 37710 * lex.l (next_token_is_bin_op): Don't ever return true for `.' 37711 since that causes problems with things like [ .1 .1 ]. 37712 37713Tue Oct 3 05:30:24 1995 John Eaton <jwe@bevo.che.wisc.edu> 37714 37715 * variables.cc (is_valid_function): Avoid setting error_state if 37716 argument is not a string. 37717 37718 * parse.y (maybe_warn_missing_semi): New function. 37719 (list1, list): Call it if statement not terminated by semicolon. 37720 * tree-misc.h (tree_statement::line, tree_statement::column): 37721 New functions. 37722 * octave.cc (input_from_command_line_file): New global variable. 37723 (main): Set it. 37724 (parse_and_execute): Unwind-protect it and set it to zero. 37725 (eval_string): Likewise. 37726 * variables.cc (parse_fcn_file): Likewise. 37727 37728 * user-prefs.cc (warn_missing_semicolon): New function. 37729 * user-prefs.h (user_preferences): New field, warn_missing_semicolon. 37730 * variables.cc (install_builtin_variables): DEFVAR it. 37731 37732 * tree-expr.cc (tree_expression::is_logically_true): Actually use 37733 argument. 37734 37735Mon Oct 2 19:55:48 1995 John Eaton <jwe@bevo.che.wisc.edu> 37736 37737 * variables.cc (install_builtin_variables): Reduce the default 37738 value of save_precision to 15. 37739 37740 * variables.cc (builtin_real_scalar_variable): Return 1 for 37741 success, 0 for failure. 37742 37743 * user-prefs.cc (struct_levels_to_print, set_save_precision, 37744 set_output_max_field_width, set_output_precision): 37745 Change sense of test for builtin_real_scalar_variable return value. 37746 (check_preference): Rename from check_str_pref. Change all callers. 37747 Accept value of 0 to be the same as "false" and nonzero to be the 37748 same as "true". 37749 Delete val to avoid memory leak. 37750 * variables.cc (install_builtin_variables): Change initial values 37751 from "true" to 1, "false" to 0. 37752 37753 * variables.cc (install_builtin_variables): Add DEFVAR for 37754 gnuplot_has_multiplot. 37755 37756 * user-prefs.h (user_preferences): New field, 37757 `gnuplot_has_multiplot'. 37758 * user-prefs.cc (init_user_prefs): Initialize it. 37759 (gnuplot_has_multiplot): New function. 37760 37761Sat Sep 30 16:52:57 1995 John Eaton <jwe@bevo.che.wisc.edu> 37762 37763 * oct-gperf.h, octave.gperf: Newfiles. 37764 * Makefile.in (DISTFILES): Add octave.gperf. 37765 (INCLUDES): Add oct-gperf.h. 37766 (oct-gperf.h): New rule. 37767 (local-dist, dist): Depend on oct-gperf.h. 37768 * lex.l (is_keyword): Use perfect hash function to lookup 37769 keywords. 37770 37771Fri Sep 29 04:36:04 1995 John Eaton <jwe@bevo.che.wisc.edu> 37772 37773 * version.h (OCTAVE_NAME_AND_VERSION): Add TARGET_HOST_TYPE to this. 37774 37775Thu Sep 28 00:03:51 1995 John Eaton <jwe@bevo.che.wisc.edu> 37776 37777 * tree-expr.cc (tree_expression::is_logically_true): New function. 37778 * tree-cmd.cc (tree_while_command::eval): Use it instead of 37779 handling the test directly here. 37780 * tree-misc.cc (tree_if_clause::eval): Likewise 37781 37782 * tree-const.cc (TC_REP::force_numeric): Don't try to print value 37783 of str_obj with %s. 37784 37785 * error.cc (buffer_error_messages): Rename from 37786 suppress_octave_error_messages. 37787 (error_message_buffer): New global variable. 37788 (verror): Handle buffering of messages. 37789 (handle_message): New function. 37790 (Ferror, Fwarning, Fusage): Use it instead of duplicating code. 37791 37792 * octave.cc (Feval): Buffer error messages instead of supressing them. 37793 37794 * lex.l (is_keyword): Recognize `try', `catch', and `end_try_catch'. 37795 * parse.y (TRY, CATCH): New tokens. 37796 (command): Recognize try-catch block. 37797 (end_error): Add cases for unwind_protect_end and try_catch_end. 37798 * token.h (end_tok_type): New field, try_catch_end. 37799 * tree-cmd.h, tree-cmd.cc (tree_try_catch): New class. 37800 * variables.cc (bind_global_error_variable): New Function. 37801 (clear_global_error_variable): Likewise. 37802 (install_builtin_variables): Add DEFCONST for __error_text__. 37803 * help.cc (keywords): Add `try', `catch', and `end_try_catch'. 37804 37805 * tree-cmd.cc (tree_unwind_protect::eval): Undo previous change. 37806 37807 * dirfns.cc (Freaddir, Fmkdir, Frmdir): 37808 Do tilde expansion on the argument. 37809 37810Tue Sep 26 00:10:29 1995 John Eaton <jwe@bevo.che.wisc.edu> 37811 37812 * f-dassl.cc, f-fsolve.cc, f-lsode.cc, f-npsol.cc, f-quad.cc: 37813 Don't try to figure out if the user-supplied functions take the 37814 correct number of arguments. Simply let the call fail. 37815 * variables.cc (takes_correct_nargs): Delete unused function. 37816 * tree-expr.cc (tree_builtin::eval): Don't complain for too many 37817 arguments to mapper functions. 37818 * tree-expr.h, tree-expr.cc (tree_builtin, tree_function, tree_fvc): 37819 Delete unused function max_expected_args. 37820 37821 * defun.h (DEFUN): Delete unnecessary args nargin_min and nargout_max. 37822 New arg unused_arg_flags. 37823 (DEFUN_TEXT): Likewise. 37824 * defun-dld.h (DEFUN_DLD_BUILTIN): Likewise. 37825 * defun-int.h (DEFUN_INTERNAL, DECLARE_FUN, DEFINE_FUN_STRUCT): 37826 Do the real work. 37827 37828 * data.cc, dirfns.cc, dynamic-ld.cc, error.cc, f-balance.cc, 37829 f-chol.cc, f-colloc.cc, f-dassl.cc, f-det.cc, f-eig.cc, f-expm.cc, 37830 f-fft.cc, f-fft2.cc, f-find.cc, f-fsolve.cc, f-fsqp.cc, 37831 f-givens.cc, f-hess.cc, f-ifft.cc, f-ifft2.cc, f-inv.cc, f-log.cc, 37832 f-lpsolve.cc, f-lsode.cc, f-lu.cc, f-minmax.cc, f-npsol.cc, 37833 f-pinv.cc, f-qpsol.cc, f-qr.cc, f-quad.cc, f-qzval.cc, f-rand.cc, 37834 f-schur.cc, f-sort.cc, f-svd.cc, f-syl.cc, file-io.cc, help.cc, 37835 input.cc, lex.l, load-save.cc, mappers.cc, octave-hist.cc, 37836 octave.cc, octave.h, pager.cc, pr-output.cc, resource.cc, 37837 sighandlers.cc, strfns.cc, sysdep.cc, timefns.cc, token.cc, 37838 tree-const.cc, tree-expr.cc, tree-expr.h, tree-plot.cc, 37839 unwind-prot.cc, unwind-prot.h, utils.cc, variables.cc, 37840 variables.h, version.h, xdiv.cc: 37841 Avoid unused variable warnings. 37842 37843 * tree-expr.h (tree_oct_obj::print_value (ostream&)): 37844 Delete name of unused arg. 37845 (tree_fvc::save (ostream&, int, int): Likewise. 37846 37847 * tree-const.h (tree_constant::tree_constant (magic_colon)): 37848 Delete name of unused arg. 37849 (tree_constant::tree_constant (all_va_args)): Likewise 37850 (ColumnVector vector_value (int, int)): Likewise. 37851 (ComplexColumnVector vector_value (int, int)): Likewise. 37852 (Octave_object::eval (int, int, const Octave_object&): Likewise. 37853 37854 * octave.cc (execute_startup_files): Look for octaverc first in 37855 site/m, then in $(version)/m. 37856 * variables.cc (get_local_site_defaults): New function. 37857 * defaults.h.in (OCTAVE_LOCALFCNFILEDIR, OCTAVE_LOCALSTARTUPFILEDIR): 37858 New macros. 37859 * Makefile.in (defaults.h): Also substitute ${localfcndir}. 37860 37861Mon Sep 25 17:01:03 1995 John Eaton <jwe@bevo.che.wisc.edu> 37862 37863 * variables.cc (install_builtin_variables): Add DEFCONST for "e". 37864 37865Fri Sep 22 02:18:45 1995 John Eaton <jwe@bevo.che.wisc.edu> 37866 37867 * dirfns.cc (Fls): Delete ls_command after using it, not before. 37868 37869 * input.h, input.cc (gnu_readline): Don't declare gnu_readline 37870 `extern "C"'. 37871 37872 * sysdep.h: Only declare gethostname if it is missing, then don't 37873 declare it `extern "C"'. 37874 37875 * dirfns.cc: Don't declare strerror(). 37876 37877 * input.cc (command_generator): Use malloc, not xmalloc. Don't 37878 declare xmalloc. 37879 (gnu_readline): Don't declare this `extern "C"'. 37880 37881 * octave-hist.cc: Don't declare history_get(). It is now in 37882 readline/history.h. 37883 37884 * input.cc: Don't declare history_get(). It is now in 37885 readline/readline.h. 37886 37887 * resource.cc: Don't surround include of sys/resource.h in 37888 `extern "C" { }'. 37889 37890 * fnmatch.h [__cplusplus]: Surround contents in `extern "C" { }'. 37891 * load-save.cc, symtab.cc, variables.cc: Don't surround 37892 fnmatch.h include in `extern "C" { }'. 37893 37894 * help.cc: Don't #undef __FUNCTION_DEF before including 37895 readline/tilde.h. 37896 37897 * dirfuns.cc, file-io.cc, help.cc, load-save.cc, octave-hist.cc, 37898 sysdep.cc, tree-plot.cc, utils.cc, variables.cc: 37899 Don't surround readline includes in `extern "C" { }'. 37900 37901 * sysdep.cc: Move all include statements to top of file. 37902 37903Tue Sep 19 01:58:21 1995 John Eaton <jwe@bevo.che.wisc.edu> 37904 37905 * octave.cc (Fsystem): Use iprocstream *, and unwind_protect it. 37906 * pager.cc (flush_output_to_pager): Likewise. 37907 * dirfns.cc (Fls): Likewise. 37908 * tree-plot.cc (plot_stream): Now a pointer. 37909 (open_plot_stream): Deal with it. 37910 (send_to_plot_stream, cleanup_tmp_files, do_external_plotter_cd): 37911 Likewise. 37912 37913 * procstream.cc (cleanup_iprocstream, cleanup_oprocstream): 37914 New functions. 37915 37916 * procstream.h, procstream.cc (class iprocstream, class oprocstream): 37917 Keep track of pbuf. Initialize it to 0 in default constructors, 37918 delete it in destructor. Don't call close in destructor. 37919 37920 * sighandlers.cc (octave_set_signal_handler): New function. 37921 Use this name instead of signal everywhere. 37922 * help.cc (try_info): Likewise. 37923 * pager.cc (flush_output_to_pager): Likewise. 37924 * octave.cc (main): Likewise. 37925 * octave-hist.cc (do_edit_history): Likewise. 37926 37927 * input.cc (initialize_readline): Set rl_paren_string_delimiters 37928 to avoid treating single quotes as string delimiters when doing 37929 paren matching. 37930 37931 * Makefile.in (SOURCES): Don't list Map.cc or SLStack.cc here. 37932 37933 * tree-const.cc: Do include utils.h. 37934 37935 * sysdep.cc: Don't surround terminal includes in extern "C". 37936 Include them before readline.h. 37937 37938 * Map.h: Don't include utils.h. 37939 (CHNode::CHNode (const char*, const C&, CHNode *t): 37940 Do strsave() inline. 37941 37942 * input.cc (generate_possible_completions): Generate name list 37943 even when text == 0. 37944 (operate_and_get_next): Don't declare history_stifled, call 37945 history_is_stifled () instead. 37946 Don't declare history_length, or max_input_history either. 37947 Check (where >= history_length - 1) too, as in recent versions of 37948 bash. 37949 37950 * user-prefs.h (user_prefs): New field, `completion_append_char'. 37951 * user-prefs.cc (init_user_prefs): Initialize it. 37952 (sv_completion_append_char): New function. 37953 * variables.cc (install_builtin_variables): Install 37954 completion_append_char. 37955 * input.cc (command_generator): Use it. 37956 37957 * SLList-expr.cc, SLList-misc.cc, SLList-plot.cc, SLList-tc.cc, 37958 DLList-fi.cc: Include config.h. 37959 * DLList-fi.cc: Include file-info.h, not file-io.h. 37960 37961Mon Sep 18 11:01:24 1995 John Eaton <jwe@bevo.che.wisc.edu> 37962 37963 * octave.h (clean_up_and_exit): Tag with NORETURN instead of using 37964 typedef trick. 37965 * error.h (panic): Likewise. 37966 * utils.h (jump_to_top_level): Likewise. 37967 37968 * file-io.h: Protect from multiple includes with octave_file_io, 37969 not octave_files. 37970 37971 * file-info.h (class file_info): Convert to using std C++ string 37972 class from char *. 37973 * file-info.cc: Likewise. Don't include utils.h. 37974 * file-io.cc (return_valid_file, fopen_file_for_user, 37975 fflush_internal, do_scanf): Use operator ==, not strcmp. 37976 (close_files): Call error with file.name ().data (), 37977 not file.name (). 37978 (freport_internal): Call form with file.mode ().data () and 37979 file.name ().data (). 37980 37981 * file-io.cc, file-io.h: Extract file_info class. 37982 * file-info.cc, file-info.h: New files for file_info class. 37983 37984 * user-prefs.h (user_prefs): New field, `beep_on_error'. 37985 * user-prefs.cc (init_user_prefs): Initialize it. 37986 (beep_on_error): New function. 37987 * variables.cc (install_builtin_variables): Install beep_on_error. 37988 * octave.cc (maximum_braindamage): Set beep_on_error to "true". 37989 * error.cc (verror): Conditionally beep. 37990 (error): Don't reset error_state until after verror is called. 37991 37992Sun Sep 17 16:41:25 1995 John Eaton <jwe@bevo.che.wisc.edu> 37993 37994 * load-save.cc (read_mat_binary_data, read_ascii_data, 37995 save_ascii_data, read_binary_data, save_binary_data): 37996 Handle string arrays. 37997 37998Fri Sep 15 00:24:19 1995 John Eaton <jwe@bevo.che.wisc.edu> 37999 38000 * user-prefs.cc (struct_levels_to_print, 38001 set_output_max_field_width, set_output_precision, 38002 set_save_precision): Eliminate unecessary kludge variable. 38003 38004 * variables.cc (gobble_leading_white_space): New arg, 38005 in_parts. Change all callers. 38006 38007 * lex.l (HELP_FCN): Delete start state. The `help' command is now 38008 handled the same as any other text-style function. 38009 38010 * gripes.cc (gripe_invalid_value_specified): New function 38011 * user-prefs.cc: Use it. 38012 38013 * sysdep.cc (octave_words_big_endian): New global variable. 38014 (ten_little_endians): New function. 38015 (sysdep_init): Call it. 38016 * load-save.cc (words_big_endian): Use this at run-time instead of 38017 depending on WORDS_BIGENDIAN at compile-time. 38018 38019 * symtab.h (SYMTAB_VARIABLES): New macro. 38020 * variables.cc (Fclear): Use it instead of just 38021 symbol_def::USER_VARIABLE when looking for variables. 38022 38023 * octave.cc (main): If there is a file to execute, set 38024 program_invocation_name and program_name to the name of the file 38025 and argv to the remaining args. 38026 (intern_argv): Only define argv if there are some remaining 38027 arguments. 38028 38029 * defun.h (DEFVAR_INT): New macro. 38030 (DEFVAR): Define in terms of DEFVAR_INT. Delete args protect and 38031 eternal. 38032 (DEFCONST): New macro. 38033 * variables.cc (install_builtin_variables): Use DEFCONST where 38034 appropriate, change uses of DEFVAR to match new definition. 38035 38036 * variables.cc (bind_builtin_variable): New variant that accepts 38037 const tree_constant& value. 38038 (install_builtin_variables): Properly alphabetize DEFVAR for this. 38039 38040 * octave.cc (short_opts): Prefix with `+' to prevent argv 38041 permutation. 38042 (main): Don't use readline if forced_interactive. 38043 (traditional): New file-scope variable. 38044 (long_opts, usage_string, verbose_usage): Add `--traditional'. 38045 (maximum_braindamage): New function. 38046 (main): Call it if --traditional. 38047 38048 * input.cc (do_input_echo): Print prompt correctly when 38049 forced_interactive is either true or false. 38050 38051Thu Sep 14 00:54:06 1995 John Eaton <jwe@bevo.che.wisc.edu> 38052 38053 * data.cc (Fstruct_elements): New function. 38054 38055 * file-io.cc (Fumask): New function. 38056 38057 * dirfns.cc (Fmkdir, Frmdir, Frename): New functions. 38058 38059 * Makefile.in: Add rules and dependencies for building safe-stat.o 38060 and safe-lstat.o. 38061 38062 * mkdir.c, rename.c, rmdir.c: New files. 38063 * Makefile.in (SOURCES): Include them in the list. 38064 38065 * safe-xstat.hin, safe-xstat.cin: New files 38066 * Makefile.in (DISTFILES): Include them in the list. 38067 38068 * sighandlers.cc (octave_new_handler): Try to continue on memory 38069 exhausted errors. 38070 (sigfpe_handler): Improve error message. 38071 38072 * Makefile.in: Use `ifndef omit_deps', not `ifndef $(omit_deps)'. 38073 38074 * dirfns.cc (Freaddir): New function. 38075 38076 * f-sort.cc: Complete rewrite. Now uses stable sort algorithm and 38077 correctly handles complex matrices containing columns of all real 38078 numbers. 38079 38080Wed Sep 13 03:16:40 1995 John Eaton <jwe@bevo.che.wisc.edu> 38081 38082 * arith-ops.cc: Unconditionally #define DIVIDE_BY_ZERO_ERROR. 38083 38084 * variables.cc (install_builtin_variables): Unconditionally 38085 install NaN and nan. 38086 38087 * mappers.cc (xisinf): Don't do bogus things if isinf, isnan, or 38088 finite are missing. 38089 (xfinite): Likewise. 38090 38091 * sysdep.cc (octave_ieee_init): Don't set octave_NaN and 38092 octave_Inf if values are not available. 38093 38094 * resource.cc (mk_ru_map): Don't use ru_ or tv_ as prefixes to 38095 Octave names for the structure members. 38096 38097Tue Sep 12 02:04:16 1995 John Eaton <jwe@bevo.che.wisc.edu> 38098 38099 * procstream.h, procstream.cc: Rewrite. 38100 38101Mon Sep 11 18:42:05 1995 John Eaton <jwe@bevo.che.wisc.edu> 38102 38103 * filemode.c: New file, from Emacs. 38104 * Makefile.in (SOURCES): Add it to the list. 38105 38106 * file-io.cc (Fstat, Flstat, mk_stat_map): New functions. 38107 38108 * timefns.cc (mk_tm_map): Don't use tm_ as prefix to Octave names 38109 for these structure members. 38110 (extract_tm): Likewise. 38111 (Flocaltime): Fix doc string to match. 38112 38113Thu Sep 7 02:04:27 1995 John Eaton <jwe@bevo.che.wisc.edu> 38114 38115 * load-save.cc (save_user_variables): New function. 38116 * sighandlers.cc (my_friendly_exit): Call it before exiting. 38117 (sigfpe_handler): New function. 38118 (install_signal_handlers) [__alpha__]: Install it. 38119 38120Wed Sep 6 14:35:10 1995 John Eaton <jwe@bevo.che.wisc.edu> 38121 38122 * tree-cmd.cc (tree_unwind_protect::eval): Ignore errors and 38123 suppress error messages while executing first block of 38124 unwind_protect commands. 38125 38126 * parse.y (end_error): Add missing case for unwind_protect_end. 38127 38128 * tree-expr.cc (tree_builtin::eval): Complain if no arguments 38129 given for mapper functions. 38130 (tree_fvc::lookup_map_element): Print error message for invalid 38131 structure reference. 38132 38133Tue Sep 5 02:04:12 1995 John Eaton <jwe@bevo.che.wisc.edu> 38134 38135 * file-io.cc, input.cc, load-save.cc, octave.cc, sysdep.cc, 38136 variables.cc, octave-hist.cc, utils.cc, f-schur.cc, f-rand.cc, 38137 f-quad.cc, f-qpsol.cc, f-npsol.cc, f-lsode.cc, f-fsolve.cc, 38138 f-dassl.cc, f-colloc.cc, f-balance.cc, error.cc, data.cc: 38139 Add const qualifiers where appropriate. 38140 38141 * dirfns.h: Include <ctime>, for time_t. 38142 38143 * tempname.c, file-io.cc, help.cc, input.cc, octave-hist.cc, 38144 octave.cc, sighandlers.cc, sysdep.cc, tree-expr.cc, tree-misc.cc, 38145 tree-plot.cc, utils.cc, variables.cc, sysdir.h: 38146 Move #include <sys/type.h> inside #ifdef HAVE_UNISTD_H. 38147 38148 * syswait.h: New file. 38149 * Makefile.in (INCLUDES): Add it to the list. 38150 * file-io.cc, sighandlers.cc: Use it instead of including 38151 sys/wait.h directly. 38152 38153 * octave.cc: Include statdefs.h, not sys/stat.h. 38154 38155 * sysdir.h: New file. 38156 * Makefile.in (INCLUDES): Add it to the list. 38157 * dirfns.cc, utils.cc: Use it instead of including the headers 38158 directly. 38159 38160 * pathlen.h: New file. 38161 * Makefile.in (INCLUDES): Add it to the list. 38162 * dirfns.cc, input.cc: Use it instead of including sys/param.h 38163 directly. 38164 * utils.cc: Don't include sys/param.h 38165 38166Sun Sep 3 18:52:59 1995 John Eaton <jwe@bevo.che.wisc.edu> 38167 38168 * tree-const.cc (TC_REP::string_value): Return const char*, not 38169 char *. 38170 38171 * All .cc, .y, .l, .y files: Include <cctype>, not <ctype.h>, and 38172 so on for all new C++ versions of these standard C headers. 38173 38174Thu Aug 31 17:09:38 1995 John Eaton <jwe@bevo.che.wisc.edu> 38175 38176 * pathsearch.h: Also hide `string'. 38177 38178 * oct-str.cc, oct-str.h: New files. 38179 * Makefile.in: Add to the appropriate lists. 38180 * tc-rep.h: Change char* to Octave_string* in anonymous union. 38181 * tree-expr.cc (tree_matrix::eval): Handle multiple element strings. 38182 * strfns.cc (toascii): Likewise. 38183 * tree-const.cc (print_as_string): Likewise. 38184 (TC_REP::force_numeric, TC_REP::rows, TC_REP::columns, 38185 TC_REP::double_value, TC_REP::complex_value, TC_REP::matrix_value, 38186 TC_REP::complex_matrix_value, TC_REP::convert_to_str): Likewise. 38187 (TC_REP::print): Call octave_print_internal for string case. 38188 (all_strings): New function. 38189 Fix constructors to use new data structure. 38190 * pr-output.cc (octave_print_internal): Add version for strings. 38191 * Array-string.cc: New file. 38192 38193 * octave.cc (octave_argv): New global variable. 38194 (intern_argv): New function. 38195 (main): Fix argument parsing to do the right thing for arguments 38196 to executable scripts. 38197 * variables.cc: Add DEFUNs for argv, program_invocation_name, and 38198 program_name. 38199 38200 * defun.h (DEFVAR): Fix comment. 38201 38202Thu Aug 24 00:02:00 1995 John Eaton <jwe@bevo.che.wisc.edu> 38203 38204 * file-io.cc (fgets_internal): Make second arg optional. Add 38205 optional arg `strip_final_newline'. 38206 (Ffgets): Change to match new definition of fgets_internal. 38207 (Ffgetl): Implement using the new fgets_internal. 38208 38209 * f-rand.cc (Frand): Update code for sizing return value to match 38210 that used by ones, zeros, and eye. 38211 38212Wed Aug 23 19:52:45 1995 John Eaton <jwe@bevo.che.wisc.edu> 38213 38214 * tree-const.cc (do_vector_assign): Don't crash for 38215 A(range) = scalar, or A(matrix) = scalar. 38216 38217 * f-dassl.cc (set_dassl_option): Rename from do_dassl_option. 38218 (show_dassl_option): New function. 38219 (Fdassl_options): Handle single arg. 38220 * f-fsolve.cc (set_fsolve_option): Rename from do_fsolve_option. 38221 (show_fsolve_option): New function. 38222 (Ffsolve_options): Handle single arg. 38223 * f-fsqp.cc (set_fsqp_option): Rename from do_fsqp_option. 38224 (show_fsqp_option): New function. 38225 (Ffsqp_options): Handle single arg. 38226 * f-lpsolve.cc (set_lpsolve_option): Rename from do_lpsolve_option. 38227 (show_lpsolve_option): New function. 38228 (Flpsolve_options): Handle single arg. 38229 * f-lsode.cc (set_lsode_option): Rename from do_lsode_option. 38230 (show_lsode_option): New function. 38231 (Flsode_options): Handle single arg. 38232 * f-npsol.cc (set_npsol_option): Rename from do_npsol_option. 38233 (show_npsol_option): New function. 38234 (Fnpsol_options): Handle single arg. 38235 * f-qpsol.cc (set_qpsol_option): Rename from do_qpsol_option. 38236 (show_qpsol_option): New function. 38237 (Fqpsol_options): Handle single arg. 38238 * f-quad.cc: (set_quad_option): Rename from do_quad_option. 38239 (show_quad_option): New function. 38240 (Fquad_options): Handle single arg. 38241 (Fquad): Doc fix. 38242 38243Tue Aug 22 00:38:05 1995 John Eaton <jwe@bevo.che.wisc.edu> 38244 38245 * tree-plot.cc (do_external_plotter_cd): New function. 38246 * dirfns.cc (octave_change_to_directory): New function. If cd is 38247 successful, also call do_external_plotter_cd(). 38248 (Fcd): Call octave_change_to_directory(), not change_to_directory(). 38249 38250 * pr-output.cc (pr_any_float): Change declaration of counter to 38251 size_t to avoid gcc warnings. 38252 38253 * idx-vector.cc, octave-hist.cc, tree-const.cc, tree-expr.cc, 38254 tree-misc.cc, utils.cc, xpow.cc, Map.cc: 38255 Update for change in for loop variable scope for gcc 2.7.0. 38256 38257Mon Aug 21 19:34:53 1995 John Eaton <jwe@bevo.che.wisc.edu> 38258 38259 * tree-const.cc (fortran_style_matrix_assignment): Properly handle 38260 case of complex LHS, real RHS. 38261 38262 * Makefile.in: Only include dependency files if $(omit_deps) is 38263 not set. 38264 38265Wed Jul 5 00:03:58 1995 John Eaton <jwe@bevo.che.wisc.edu> 38266 38267 * sysdep.cc: Explicitly include string.h. 38268 38269Sun Jun 25 00:18:10 1995 John Eaton <jwe@schoch.che.utexas.edu> 38270 38271 * load-save.cc (too_large_for_float (const Matrix&)): 38272 Extract elements as doubles, not Complex. 38273 38274Sat Jun 24 22:59:15 1995 John Eaton <jwe@schoch.che.utexas.edu> 38275 38276 * pr-output.cc (any_element_is_inf_or_nan): Declare extern, not static. 38277 * f-svd.cc (Fsvd): Call here to avoid trying to take SVD of matrix 38278 containing Inf or NaN values. 38279 38280 * pr-output.cc (bit_format): New file-scope variable. 38281 (set_format, pr_any_float): Handle bit_format. 38282 (octave_print_internal): Handle bit_format like bank_format. 38283 (init_format_state): Initialize bit_format. 38284 (set_format_style): Allow `format bit' and `format native-bit'. 38285 38286Thu Jun 8 15:20:26 1995 John Eaton <jwe@schoch.che.utexas.edu> 38287 38288 * mappers.cc (arg, imag, signum): If arg is NaN, return NaN. 38289 38290Mon May 15 14:47:04 1995 John Eaton <jwe@schoch.che.utexas.edu> 38291 38292 * pager.cc (Fdiary): Initialize diary_file here, not in the 38293 file-scope declaration. 38294 38295 * tree-expr.cc (tree_index_expression::eval): 38296 Handle nargin == 0 the same as other cases. 38297 38298Tue May 2 10:02:23 1995 John Eaton <jwe@schoch.che.utexas.edu> 38299 38300 * load-save.cc (do_double_format_conversion): Add missing breaks. 38301 (do_float_format_conversion): Likewise. 38302 38303Mon May 1 13:50:24 1995 John Eaton <jwe@schoch.che.utexas.edu> 38304 38305 * Makefile.in (OCTAVE_LIBS): Add @LIBPLPLOT@ to the list. 38306 38307 * timefns.cc (Ftime): Handle GETTIMEOFDAY_NO_TZ. 38308 38309 * Makefile.in (SOURCES): Delete tc-rep.cc, tc-rep-ass.cc, and 38310 tc-rep-idx.cc from the list. 38311 38312 * tree-const.h: Add #pragma interface. 38313 * tree-const.cc: Add contents of tc-rep.cc, tc-rep-ass.cc, and 38314 tc-idx.cc to this file. Add #pragma implementation. This makes 38315 tree-const.cc large, but makes the final binary smaller. 38316 38317 * unwind-prot.h unwind-prot.cc token.cc token.h procstream.cc 38318 procstream.h idx-vector.cc idx-vector.h symtab.cc symtab.h 38319 oct-map.cc oct-map.h oct-obj.cc oct-obj.h tree-plot.h tree-plot.cc 38320 tree-misc.cc tree-misc.h tree-expr.cc tree-expr.h tree-cmd.cc 38321 tree-cmd.h tree-base.cc tree-base.h: 38322 Add #pragma interface/implementation. 38323 38324 * Makefile.in (OCTAVE_LIBS): Delete @LIBINFO@ from list. 38325 * help.cc: Don't include info headers or extern declarations for 38326 functions from info. 38327 (try_info): Call info as a subprocess. Delete second arg. 38328 Handle SIGINT here, not in help_from_info(). 38329 (help_from_info): Complain if info doesn't work. 38330 38331 * defun-dld.h (DEFUN_DLD_BUILTIN) [OCTAVE_LITE && MAKE_BUILTINS]: 38332 If ! WITH_DLD, simply emit a character string constant. 38333 38334Fri Apr 28 15:23:06 1995 John Eaton <jwe@schoch.che.utexas.edu> 38335 38336 * lex.l ({IDENT}{S}*): Don't delete tok. That's handled by 38337 strip_trailing_whitespace() now. 38338 (<HELP_FCN>[^ \t\n]*{S}*|<TEXT_FCN>[^ \t\n\;\,]*{S}*): Ditto. 38339 38340 * pathsearch.h: Include kpathsea/progname.h. 38341 * octave.cc (initialize_globals): Call kpse_set_progname(). 38342 38343 * token.h: Declare copy constructor and operator = private. 38344 * token.cc: Abort if copy constructor or operator = is used. 38345 38346Thu Apr 27 13:54:39 1995 John Eaton <jwe@schoch.che.utexas.edu> 38347 38348 * tree-expr.cc (lookup_map_element): Don't list default argument 38349 values here too. 38350 38351 * pr-output.cc (hex_format): New file-scope variable. 38352 (set_format, pr_any_float): Handle hex_format. 38353 (octave_print_internal): Handle hex_format like bank_format. 38354 (init_format_state): Initialize hex_format. 38355 (set_format_style): Allow `format hex' and `format native-hex'. 38356 38357 * variables.cc (bind_ans): Create ans_id each time with new and 38358 ask tree_simple_assignment_expression to handle cleaning it up. 38359 This apparently plugs a memory leak. 38360 38361 * help.cc (Ftype): Don't try to print map constants. Handle 38362 references to structure members. 38363 38364Wed Apr 26 12:40:59 1995 John Eaton <jwe@schoch.che.utexas.edu> 38365 38366 * input.cc (generate_struct_completions): New function. 38367 (generate_possible_completions): Likewise. 38368 (looks_like_struct): Likewise. 38369 (command_generator): Handle completion of struct variables. 38370 38371 * tree-expr.h, tree-expr.cc (tree_fvc::lookup_map_element): 38372 Add insert and silent args. 38373 38374 * oct-map.cc: New file. 38375 * Makefile.in (SOURCES): Add it to the list. 38376 38377Mon Apr 24 09:41:02 1995 John Eaton <jwe@schoch.che.utexas.edu> 38378 38379 * variables.cc (Fexist): Handle structure references too. 38380 38381 * tree-const.cc (lookup_map_element (const char*, int, int): 38382 New function. 38383 (lookup_map_element (SLList<char*>&, int, int): New arg, silent. 38384 * tc-rep.cc (lookup_map_element): New arg, silent. If nonzero, 38385 don't call error(). 38386 38387 * tc-rep.h (is_empty): Define here. 38388 * tree-const.h (is_empty): Hand off to TC_REP::is_empty(). 38389 38390 * data.cc (Fstruct_contains): Call lookup_map_element on args(0) 38391 instead of extracting the map and calling contains() on it. 38392 38393 * parse.y (EPLUS, EMINUS): New tokens. 38394 (simple_expr): Handle EPLUS, EMINUS the same as `+' and `-'. 38395 * lex.l (".+", ".-"): New patterns. Match these separately to 38396 disallow using them as unary operators. 38397 38398 * lex.l (next_token_is_bin_op): Simplify by noting that spacing 38399 only matters for those tokens that can also be unary ops. 38400 38401Fri Apr 21 14:34:45 1995 John Eaton <jwe@schoch.che.utexas.edu> 38402 38403 * load-save.cc (read_ascii_data): Allow reading of empty 38404 matrices. 38405 38406 * tc-rep-ass.cc (vector_assignment): Only assert that we are not 38407 doing fortran-style indexing and that nr <= 1 || nc <= 1. 38408 (do_vector_assign): Handle assignment of [] when one dimension is 38409 zero and the other is anything. 38410 38411Thu Apr 20 13:56:21 1995 John Eaton <jwe@schoch.che.utexas.edu> 38412 38413 * tc-rep-ass.cc (delete_rows, delete_columns): Simply return if 38414 num_to_delete is 0. 38415 38416 * lex.l (handle_identifier): Don't match plot option keywords 38417 inside parentheses or braces. 38418 38419 * variables.cc (parse_fcn_file): Also delete tmp_help_txt if 38420 running a script. 38421 38422 * tree-cmd.h (tree_command): Add destructor. 38423 38424 * tree-expr.h tree_simple_assignment_expression (lhs_idx_expr): 38425 Hang on to idx_expr, not just its parts so it can be deleted. 38426 (init): Initialize it. 38427 * tree-expr.cc (~tree_simple_assignment_expression): Delete it. 38428 38429 * tree-expr.h (tree_multi_val_ret, tree_oct_obj, tree_fvc, 38430 tree_identifier, tree_builtin, tree_function): Add destructors. 38431 * tree-expr.cc (tree_function::~tree_function): Delete some stuff. 38432 38433 * tree-misc.h (tree_va_return_list): Add destructor. 38434 38435 * octave.cc (__builtin_new, __builtin_delete): Provide our own, 38436 for debugging. 38437 38438 * utils.cc (strconcat): Don't depend on the return value from 38439 strcat. 38440 (file_in_path): Simplify logic. 38441 38442 * parse.y (maybe_convert_to_ans_assign): Create ans_id each time 38443 with new and ask tree_simple_assignment_expression to handle 38444 cleaning it up. This apparently plugs a memory leak. 38445 38446 * lex.l (strip_trailing_whitespace): Declare retval static. 38447 Delete it before saving next string. 38448 38449 * error.cc (Ferror): Do call error() for empty string args. 38450 (error_1): Don't print anything if fmt is "" or "\n", but do set 38451 the error state appropriately. 38452 38453 * tree-cmd.cc (tree_unwind_protect::eval): Handle return and break 38454 in the `try' part of the statement. 38455 38456Mon Apr 10 19:29:44 1995 John Eaton <jwe@schoch.che.utexas.edu> 38457 38458 * f-expm.cc, f-givens.cc, f-qzval.cc, f-syl.cc, f-rand.cc: 38459 Where appropriate, declare Fortran functions to take reference 38460 instead of pointer args. Change callers. 38461 38462 * mappers.cc: Declare Fortran functions to take reference instead 38463 of pointer args. Change callers. 38464 38465 * gamma.c, lgamma.c, erfc.c, erf.c, atanh.c, asinh.c, acosh.c: 38466 Declare Fortran functions to take reference instead of pointer 38467 args. 38468 38469Sun Apr 9 19:38:53 1995 John Eaton <jwe@schoch.che.utexas.edu> 38470 38471 * file-io.cc (Fpopen, Fpclose, Fexecute, Fsync_system, 38472 Fasync_system, Fwaitpid, Fmkfifo, Funlink): New functions. 38473 38474 * sighandlers.cc (sigchld_handler): New function. 38475 (install_signal_handlers): Add call to install 38476 sigchld_handler. (This is #if 0'd out, waiting for code to help 38477 determine which child exited and what to do about it). 38478 38479 * tree-expr.h (tree_oct_obj): New class. 38480 38481 * tree-expr.h (tree_multi_assignment_expression::preserve): New 38482 data member. Add arg with default value to constructors. Change 38483 callers as necessary. 38484 * tree-expr.cc (~tree_multi_assignment_expression): Conditionally 38485 delete lhs. 38486 38487 * parse.y (make_multi_val_ret): Pass matrix instead of getting it 38488 from the global matrix list. 38489 (expression): Extract matrix from matrix list before calling 38490 make_multi_val_ret(). 38491 38492 * parse.y (command): Handle new for loop syntax for structures. 38493 38494 * tree-plot.h (subplot_list): Include tree_print_code() in 38495 initializer lists for constructors. 38496 * tree-expr.h (tree_statement_list, tree_argument_list, 38497 tree_parameter_list, tree_return_list, tree_global_init_list, 38498 tree_if_command_list, ): Likewise. 38499 38500 * tree-cmd.h (tree_for_command::id_list): New data member. 38501 (tree_for_command (tree_return_list*, tree_expression*, 38502 tree_statement_list*, int, int)): Likewise. 38503 * tree-cmd.cc (tree_for_command::eval): Handle for loops with 38504 structures. 38505 (do_for_loop_once (tree_return_list*, Octave_object&, int&)): 38506 New form for handling for loops with structures. 38507 38508 * sysdep.cc (octave_ieee_init): Determine floating point format 38509 here. 38510 (native_float_format): New global variable. 38511 (Fisieee): Compute return value from native_float_format, not by 38512 using preprocessor macros. 38513 * sysdep.h (enum floating_point_format): Move declaration here. 38514 * load-save.cc: From here. 38515 Always define all floating point format conversion routines. 38516 (do_double_format_conversion, do_float_format_conversion): 38517 Use native_float_format instead of preprocessor macros. 38518 38519Sat Apr 8 15:41:35 1995 John Eaton <jwe@schoch.che.utexas.edu> 38520 38521 * Makefile (TEMPLATE_SRC): New variable. 38522 (DISTFILES): Add $(TEMPLATE_SRC). 38523 (SOURCES): Delete Map.cc and SLStack.cc from here. 38524 38525 * variables.cc (install_builtin_variables): Use OCTAVE_VERSION 38526 instead of version_string to initialize OCTAVE_VERSION. 38527 * version.h (version_string): Delete. 38528 38529 * getopt.c (_getopt_internal): Initialize indfound to avoid warning. 38530 38531Fri Apr 7 15:29:41 1995 John Eaton <jwe@schoch.che.utexas.edu> 38532 38533 * tc-inlines.h (REP_RHS_MATRIX): Just check to see if tc is real 38534 or complex. If conversion fails, return. 38535 38536Thu Apr 6 00:10:47 1995 John Eaton <jwe@schoch.che.utexas.edu> 38537 38538 * data.cc (Fstruct_contains): New function. 38539 38540 * tc-rep.cc (print_code): Add extra parens around while condition 38541 to avoid warning. 38542 * utils.cc (undo_string_escapes): Likewise. 38543 * input.cc (decode_prompt_string): Likewise. Also rewrite if 38544 statement to avoid warning. 38545 38546Tue Apr 4 22:54:17 1995 John Eaton <jwe@schoch.che.utexas.edu> 38547 38548 * tree-expr.cc (tree_multi_assignment_expression::eval, 38549 tree_simple_assignment_expression::eval): Call print_constant 38550 even if user_pref.print_answer_id_name is false. 38551 38552Mon Apr 3 17:57:14 1995 John Eaton <jwe@schoch.che.utexas.edu> 38553 38554 * tc-inlines.h (TC_REP): Avoid redefinition. 38555 38556 * tree-const.h (do_binary_op, do_unary_op): Declare as friends of 38557 tree_constant class too. 38558 38559 * tree-plot.h (subplot_using::have_values): Delete data member. 38560 * tree-plot.cc (subplot_using::eval): Always recompute values. 38561 38562Fri Mar 31 10:18:32 1995 John Eaton <jwe@schoch.che.utexas.edu> 38563 38564 * tc-rep.cc (print): Print open brace for structures here. 38565 * tree-expr.cc (print_constant): Not here. 38566 38567 * symtab.cc (define): Don't delete arg if sv_fcn fails. 38568 38569 * tree-const.cc (print): New function. Create ostrstream buffer 38570 and pass it to rep->print(). 38571 * tree-const.h (eval (int)): Call print(), not rep->print(). 38572 * tc-rep.cc (structure_indent_level): New file-scope variable. 38573 (print): New arg, output_buf, is stream to print to. 38574 Print values of structure elements too. 38575 38576 * user-prefs.h (user_preferences): New field, struct_levels_to_print. 38577 * user-prefs.cc (struct_levels_to_print): New function. 38578 * variables.cc (install_builtin_variables): Add DEFVAR for new 38579 variable struct_levels_to_print. 38580 38581 * tree-const.cc (print_as_scalar, print_as_structure): Move here 38582 from tree-expr.cc and make extern. 38583 38584 * tree-expr.cc (print_as_structure): New function. 38585 (print_constant): Use it. 38586 38587 * tree-expr.cc (print_constant): New arg, print_padding. 38588 (tree_simple_assignment_expression::eval): Use print_constant 38589 instead of duplicating code here. 38590 (tree_multi_assignment_expression::eval): Likewise. 38591 38592Thu Mar 30 13:24:11 1995 John Eaton <jwe@schoch.che.utexas.edu> 38593 38594 * Makefile.in (SOURCES): Add resource.cc. 38595 * resource.cc: New file, extracted from timefns.cc. 38596 (Fgetrusage): New function. 38597 * timefns.cc (cputime): Delete (now implemented in a function file 38598 using new getrusage function). 38599 38600Wed Mar 29 22:52:42 1995 John Eaton <jwe@schoch.che.utexas.edu> 38601 38602 * Makefile.in (SOURCES): Add strftime.c. 38603 * strftime.c: New file, from sh-utils distribution. 38604 38605 * timefns.cc (mk_tm_map, extract_tm, Ftime, Fgmtime, Flocaltime, 38606 Fmktime, Fstrftime): New basic time functions. 38607 (Fclock, Fdate): Delete (now implemented in function files using new 38608 time functions). 38609 38610Tue Mar 28 17:51:51 1995 John Eaton <jwe@schoch.che.utexas.edu> 38611 38612 * file-io.cc (return_valid_file, do_printf, do_scanf, 38613 fclose_internal, feof_internal, ferror_internal, fflush_internal, 38614 fgets_internal, fopen_internal, fread_internal, freport_internal, 38615 frewind_internal, fseek_internal, ftell_internal, 38616 fwrite_internal): Declare static. 38617 * file-io.h: Delete extern declarations for them. 38618 38619Fri Mar 24 09:52:50 1995 John Eaton <jwe@schoch.che.utexas.edu> 38620 38621 * pr-output.cc (pr_col_num_header): New function. 38622 (compact_format): New file-scope variable. 38623 (set_format_style): Handle loose and compact formats. 38624 (octave_print_internal (ostream&, const ComplexMatrix&, int)): 38625 Replace duplicate code with call to pr_col_num_header(). 38626 (octave_print_internal (ostream&, const Matrix&, int): Likewise. 38627 (octave_print_internal (ostream&, const Range&, int): Likewise. 38628 38629Tue Mar 21 08:44:48 1995 John Eaton <jwe@schoch.che.utexas.edu> 38630 38631 * mappers.cc (xgamma): Always use Slatec library function. 38632 * (xlgamma): Likewise. 38633 * Makefile.in (SOURCES): Don't include lgamma.c. 38634 38635Fri Mar 17 22:38:39 1995 John Eaton <jwe@schoch.che.utexas.edu> 38636 38637 * tc-rep.cc (TC_REP::new): Don't try to keep track of newlist_tail. 38638 Explicitly initialize newlist to zero. 38639 * tree-const.cc (tree_constant::operator new): Likewise. 38640 38641Fri Mar 10 12:40:24 1995 John Eaton <jwe@schoch.che.utexas.edu> 38642 38643 * tree-cmd.cc (quit_loop_now): Declare inline. 38644 (tree_for_command::do_for_loop_once): Split into two versions, one 38645 for the general case and one for when the loop variable is a 38646 simple identifier. 38647 (DO_LOOP): New macro. Move tests outside of loop. 38648 (tree_for_command::eval): Speed up by checking to see if loop 38649 variable is a simple identifier and by using DO_LOOP. 38650 38651 * tree-const.h: New union of rep and freeptr. The freeptr element 38652 is used for our custom memory management functions. 38653 38654 * tc-rep.h: Add freeptr element to anonymous union (for our custom 38655 memory management functions). 38656 38657 * tree-const.cc (newlist, newlist_grow_size, newlist_tail): New 38658 static variables. 38659 (tree_constant::operator new): Always define to allow more 38660 efficient allocation of single tree_constants. 38661 (tree_constant::operator delete): Likewise, handle deletion of the 38662 memory we allocate. 38663 38664 * tc-rep.cc (newlist, newlist_grow_size, newlist_tail): New static 38665 variables. 38666 (tree_constant::operator new): Always define to allow more 38667 efficient allocation of single tree_constants. 38668 (tree_constant::operator delete): Likewise, handle deletion of the 38669 memory we allocate. 38670 38671Fri Mar 3 14:00:08 1995 John Eaton <jwe@schoch.che.utexas.edu> 38672 38673 * error.cc (verror): Terminate output_buf with ends. 38674 38675 * statdefs.h: Use C-style comment in first line instead of 38676 C++-style comment. 38677 38678Mon Feb 27 10:11:18 1995 John Eaton <jwe@schoch.che.utexas.edu> 38679 38680 * parse.y (maybe_convert_to_ans_assign): Only lookup ans once. 38681 * variables.cc (bind_ans): New function. 38682 * tree-expr.cc (tree_identifier::eval (int)): Use it here. 38683 (tree_identifier::eval (int, int, const Octave_object&): And here. 38684 38685 * tree-expr.cc (install_nargin_and_nargout): New function. 38686 * tree-expr.h (tree_function::tree_function (tree_statement_list *, 38687 symbol_table *, int, int)): Call it. 38688 38689 * tree-expr.cc (tree_function::bind_nargin_and_nargout): New function. 38690 (tree_function::eval): Call it insead of the one from variables.cc. 38691 38692 * variables.cc (bind_nargin_and_nargout): #if 0 out. 38693 38694Sun Feb 26 00:17:06 1995 John Eaton <jwe@schoch.che.utexas.edu> 38695 38696 * load-save.cc (Fload, Fsave): Free fname returned by tilde_expand(). 38697 * dirfns.cc (Fls): Likewise. 38698 38699 * tree-expr.cc (tree_multi_assignment_expression::eval (int, int, 38700 const Octave_object&)): Call tree_return_list::operator () (Pix) 38701 explicitly. 38702 38703 * octave.cc (initialize_globals): Put TEXMF in the environment for 38704 kpthsea. 38705 38706 * Makefile.in (OCTAVE_LIBS): Use @LIBINFO@ and @LIBREADLINE@, 38707 substituted by configure. Use kpathsea.a, not libkpathsea, so we 38708 don't have to modify the kpathsea Makefile. 38709 38710Sat Feb 25 18:59:26 1995 John Eaton <jwe@schoch.che.utexas.edu> 38711 38712 * pathsearch.cc: New file. 38713 * pathsearch.h: New file. 38714 * Makefile.in (INCLUDES): Include it in the list. 38715 * dynamic-ld.cc, help.cc, utils.cc: Use it instead of repeating 38716 identical code multiple times. 38717 38718 * variables.cc (install_builtin_variables): Only DEFVAR 38719 suppress_verbose_help_message if USE_GNU_INFO. 38720 38721 * help.cc (Fhelp): Only handle -i if USE_GNU_INFO. 38722 (additional_help_message): Only print message if USE_GNU_INFO. 38723 (builtin_help): New function. 38724 (help_from_info): New function. Print warning if not USE_GNU_INFO. 38725 38726See ChangeLog.1 in the top level directory for earlier changes. 38727