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