changeset 2330:12ff450cbb1f

[project @ 1996-07-19 01:39:22 by jwe] Initial revision
author jwe
date Fri, 19 Jul 1996 01:49:31 +0000
parents 30c606bec7a8
children 798a4d06ba7d
files Announce CHECKLIST CLASSES COPYING ChangeLog ChangeLog.1 INSTALL MAKEINFO.PATCH NEWS PROJECTS README README.NLP README.doc README.ftp README.mirrors README.snapshots ROADMAP SENDING-PATCHES TESTERS THANKS announce-others doc/ChangeLog info/ChangeLog install-sh kpathsea/ChangeLog libcruft/ChangeLog libcruft/fftpack/fftpack.doc libcruft/fsqp/COPYRIGHT libcruft/fsqp/README libcruft/fsqp/README.MISSING libcruft/fsqp/Version libcruft/fsqp/macros.tex libcruft/fsqp/manua2.tex libcruft/fsqp/manual.sty libcruft/fsqp/manual.tex libcruft/fsqp/sampl1.for libcruft/fsqp/sampl2.for libcruft/fsqp/sampl3.for libcruft/npsol/README.MISSING libcruft/qpsol/README.MISSING libcruft/ranlib/Basegen.doc libcruft/ranlib/README libcruft/ranlib/ranlib.chs libcruft/ranlib/ranlib.fdoc libcruft/ranlib/tstbot.for libcruft/ranlib/tstgmn.for libcruft/ranlib/tstmid.for liboctave/ChangeLog make/ChangeLog mkinstalldirs move-if-change scripts/ChangeLog src/ChangeLog test/ChangeLog
diffstat 54 files changed, 30141 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
new file mode 100644
--- /dev/null
+++ b/Announce
@@ -0,0 +1,133 @@
+Subject: ANNOUNCING:  Octave Version 1.2
+
+Octave version 1.2 is now available for ftp from ftp.che.wisc.edu
+in the directory /pub/octave.  Gzipped tar files are available along
+with a patch file relative to 1.1.0.  Please read the comments at the
+top of the patch file if you choose to use it to upgrade your
+installation.
+
+This is a primarily a bug-fixing release, but there are a few new
+features.  A list of user-visible changes since the last release is
+available in the file NEWS.  The file ChangeLog in the source
+distribution contains a more detailed record of changes made since the
+last release.
+
+Most bugs reported since the release of 1.1.0 have been fixed.  You
+can help make Octave more reliable by reporting any bugs you find.
+Please see the directions at the end of this announcement to find out
+how to ensure that the bugs you report will be fixed.
+
+Binaries for several popular systems are also available.  If you would
+like help out by making binaries available for other systems, please
+contact bug-octave@bevo.che.wisc.edu.
+
+What is Octave?
+---------------
+
+Octave is a high-level interactive language, primarily intended for
+numerical computations that is mostly compatible with Matlab.
+
+Octave can do arithmetic for real and complex scalars and matrices,
+solve sets of nonlinear algebraic equations, integrate functions over
+finite and infinite intervals, and integrate systems of ordinary
+differential and differential-algebraic equations.
+
+Octave uses the GNU readline library to handle reading and editing
+input.  By default, the line editing commands are similar to the
+cursor movement commands used by GNU Emacs, and a vi-style line
+editing interface is also available.  At the end of each session, the
+command history is saved, so that commands entered during previous
+sessions are not lost.
+
+The Octave distribution includes a 200+ page Texinfo manual.  Access
+to the complete text of the manual is available via the help command
+at the Octave prompt.
+
+Two and three dimensional plotting is fully supported using gnuplot.
+
+The underlying numerical solvers are currently standard Fortran ones
+like Lapack, Linpack, Odepack, the Blas, etc., packaged in a library
+of C++ classes.  If possible, the Fortran subroutines are compiled
+with the system's Fortran compiler, and called directly from the C++
+functions.  If that's not possible, you can still compile Octave if
+you have the free Fortran to C translator f2c.
+
+Octave is also free software; you can redistribute it and/or modify it
+under the terms of the GNU General Public License as published by the
+Free Software Foundation.
+
+Instructions for obtaining Octave are given below.
+
+Where to get Octave
+-------------------
+
+If you are on the Internet, you can copy the latest distribution
+version of Octave from the file /pub/octave/octave-M.N.tar.gz, on the
+host ftp.che.wisc.edu.  This tar file has been compressed with GNU
+gzip, so be sure to use binary mode for the transfer.  M and N stand
+for version numbers; look at a listing of the directory through ftp to
+see what version is available.  After you unpack the distribution, be
+sure to look at the files README and INSTALL.
+
+Installation
+------------
+
+Octave requires approximately 50MB of disk storage to unpack and
+install (significantly less if you don't compile with debugging
+symbols).  In order to build Octave, you will need a current version
+of g++, libg++, and GNU make.  If you don't have these tools, you can
+get them from many anonymous ftp archives, including ftp.che.wisc.edu,
+ftp.uu.net, prep.ai.mit.edu, and wuarchive.wustl.edu, or by writing to
+the FSF at 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
+
+Octave has been compiled and tested with g++ and libg++ on a
+SPARCstation 2 running SunOS 4.1.2, an IBM RS/6000 running AIX 3.2.5,
+DEC Alpha systems running OSF/1 1.3 and 3.0, a DECstation 5000/240
+running Ultrix 4.2a, and i486 systems running Linux.  It should work
+on most other Unix systems that have a working port of g++ and libg++.
+
+Implementation
+--------------
+
+Octave is being developed with GNU make, bison (a replacement for
+YACC), flex (a replacement for lex), gcc/g++, and libg++ on Sun
+SPARCstations, DEC DECstations, and IBM RS/6000s. It should be
+easy to port it to any machine that has a working port of gcc/g++.
+
+The underlying numerical solvers are currently standard Fortran ones
+like Lapack, Linpack, Odepack, the Blas, etc., packaged in a library
+of C++ classes (see the files in the libcruft and liboctave
+subdirectories).  If possible, the Fortran subroutines are compiled
+with the system's Fortran compiler, and called directly from the C++
+functions.  If that's not possible, they are translated with f2c and
+compiled with a C compiler.  Better performance is usually achieved if
+the intermediate translation to C is avoided.
+
+The library of C++ classes may also be useful by itself, and they are
+distributed under the same terms as Octave.
+
+Bugs
+----
+
+Please report any problems you have to
+
+  bug-octave@bevo.che.wisc.edu
+
+Your bug reports play an essential role in making Octave reliable.
+
+Reporting a bug may help you by bringing a solution to your problem,
+or it may not.  In any case, the principal function of a bug report
+is to help the entire community by making the next version of Octave
+work better.  Bug reports are your contribution to the maintenance of
+Octave.
+
+The file BUGS in the top level directory of the source distribution
+contains more information about how to provide useful bug reports.
+
+Comments and suggestions are also always welcome.
+
+--
+John W. Eaton
+jwe@bevo.che.wisc.edu
+University of Wisconsin-Madison
+Department of Chemical Engineering
new file mode 100644
--- /dev/null
+++ b/CHECKLIST
@@ -0,0 +1,23 @@
+Things to do before making a release:
+
+  * Ask testers for the type(s) of machines they are using.
+
+  * Update the version number in src/version.h.
+
+  * Update the version number in doc/refcard.tex.
+
+  * Add a `Version M.N.P released.' line to the ChangeLog.
+
+  * Update the NEWS file.
+
+  * Check the README file.
+
+  * Create a new Announce.M.N.P file for the current release.
+
+  * Run autoconf, autoheader, and configure before making tar files.
+
+  * Update the NEWS and README.octave files in the anonymous ftp
+    directory.
+
+  * Don't forget to use -static when linking the binaries for the
+    binary distributions.
new file mode 100644
--- /dev/null
+++ b/CLASSES
@@ -0,0 +1,212 @@
+numerical stuff:
+===============
+
+  Array<T>
+    ^
+    |
+    +-- MArray<T>
+    |     ^
+    |     |
+    |     +-- ColumnVector (T = double)
+    |     +-- ComplexColumnVector (T = Complex)
+    |     +-- RowVector (T = double)
+    |     +-- ComplexRowVector (T = Complex)
+    |
+    +-- DiagArray<T>
+    |     ^
+    |     |
+    |     +-- MDiagArray<T>
+    |           ^
+    |           |
+    |           +-- DiagMatrix (T = double)
+    |           +-- ComplexDiagMatrix (T = Complex)
+    |
+    +-- Array2<T>
+	  ^
+	  |
+	  +-- MArray2<T>
+	  |     ^
+	  |     |
+	  |     +-- Matrix (T = double)
+	  |     +-- ComplexMatrix (T = Complex)
+	  |     +-- chMatrix (T = char)
+	  |
+	  +-- Array3<T>
+
+
+  AEPBAL
+  ComplexAEPBAL
+
+
+  CHOL
+  ComplexCHOL
+
+
+  DET
+  ComplexDET
+
+
+  EIG
+
+
+  GEPBAL
+
+
+  HESS
+  ComplexHESS
+
+
+  LU
+  ComplexLU
+
+
+  SCHUR
+  ComplexSCHUR
+
+
+  SVD
+  ComplexSVD
+
+
+   QR
+    ^
+    |
+    +-- QRP
+
+
+  ComplexQR
+    ^
+    |
+    +-- ComplexQRP
+
+
+  base_diff_eqn
+    ^
+    |
+    +-- ODE --> ODEFunc
+    |    ^
+    |    |
+    |    +-- LSODE --> LSODE_options
+    |
+    +-- DAE --> DAEFunc
+	 ^
+	 |
+	 +-- DASSL --> DASSL_options
+
+
+  NLEqn
+
+
+  Bounds
+  LinConst
+  NLConst
+
+  base_minimizer
+    ^
+    |
+    +-- LP
+    |   ^
+    |   |
+    |   +-- LPsolve --> LPsolve_options
+    |
+    +-- QP 
+    |   ^
+    |   |
+    |   +-- QPSOL --> QPSOL_options
+    |
+    +-- NLP
+	^
+	|
+	+-- NPSOL --> NPSOL_options
+
+
+  Quad
+
+  Range
+
+  CollocWt
+
+
+utilities:
+=========
+
+  command_history
+  dir_entry
+  dir_path
+  file_stat
+  glob_match
+  idx_vector
+  prog_args
+  string_vector
+
+parser stuff:
+============
+
+  tree_print_code
+    ^
+    |
+    +-- tree_statement
+    +-- tree_statement_list ----> SLList<tree_statement*>
+    +-- tree_if_clause
+    +-- tree_if_command_list ---> SLList<tree_if_clause*>
+    +-- tree_global
+    +-- tree_global_init_list --> SLList<tree_global*>
+    +-- tree_argument_list -----> SLList<tree_expression*>
+    +-- tree_parameter_list ----> SLList<tree_identifier*>
+    +-- tree_return_list -------> SLList<tree_index_expression*>
+    +-- tree_va_return_list ----> SLList<tree_constant>
+    +-- tree_matrix_row --------> SLList<tree_expression*>
+    |
+    +-- plot_limits
+    +-- plot_range
+    +-- subplot_using
+    +-- subplot_style
+    +-- subplot
+    +-- subplot_list ---> SLList<subplot*>
+    |
+    +-- tree
+	  ^
+	  |
+	  +-- tree_command
+	  |     ^
+	  |     |
+	  |     +-- tree_global_command
+	  |     +-- tree_while_command
+	  |     +-- tree_for_command
+	  |     +-- tree_if_command
+	  |     +-- tree_unwind_protect_command
+	  |     +-- tree_try_catch_command
+	  |     +-- tree_break_command
+	  |     +-- tree_continue_command
+	  |     +-- tree_return_command
+	  |     +-- tree_plot_command
+	  |
+	  +-- tree_expression
+		^
+		|
+		+-- tree_prefix_expression
+		+-- tree_postfix_expression
+		+-- tree_unary_expression
+		+-- tree_binary_expression
+		+-- tree_simple_assignment_expression
+		+-- tree_colon_expression
+		+-- tree_matrix --> SLList<tree_matrix_row*>
+		+-- tree_multi_val_ret
+		       ^
+		       |
+		       +-- octave_value_list
+		       +-- tree_index_expression
+		       +-- tree_multi_assignment_expression
+		       +-- tree_fvc
+			     ^
+			     |
+			     +-- tree_identifier
+			     +-- tree_indirect_ref
+			     +-- tree_builtin
+			     +-- tree_function
+			     +-- octave_value
+
+
+other interpreter classes:
+=========================
+
new file mode 100644
--- /dev/null
+++ b/COPYING
@@ -0,0 +1,339 @@
+		    GNU GENERAL PUBLIC LICENSE
+		       Version 2, June 1991
+
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.
+                          675 Mass Ave, Cambridge, MA 02139, USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+			    Preamble
+
+  The licenses for most software are designed to take away your
+freedom to share and change it.  By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users.  This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it.  (Some other Free Software Foundation software is covered by
+the GNU Library General Public License instead.)  You can apply it to
+your programs, too.
+
+  When we speak of free software, we are referring to freedom, not
+price.  Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+  To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+  For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have.  You must make sure that they, too, receive or can get the
+source code.  And you must show them these terms so they know their
+rights.
+
+  We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+  Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software.  If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+  Finally, any free program is threatened constantly by software
+patents.  We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary.  To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+  The precise terms and conditions for copying, distribution and
+modification follow.
+
+		    GNU GENERAL PUBLIC LICENSE
+   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+  0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License.  The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language.  (Hereinafter, translation is included without limitation in
+the term "modification".)  Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope.  The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+  1. You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+  2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+    a) You must cause the modified files to carry prominent notices
+    stating that you changed the files and the date of any change.
+
+    b) You must cause any work that you distribute or publish, that in
+    whole or in part contains or is derived from the Program or any
+    part thereof, to be licensed as a whole at no charge to all third
+    parties under the terms of this License.
+
+    c) If the modified program normally reads commands interactively
+    when run, you must cause it, when started running for such
+    interactive use in the most ordinary way, to print or display an
+    announcement including an appropriate copyright notice and a
+    notice that there is no warranty (or else, saying that you provide
+    a warranty) and that users may redistribute the program under
+    these conditions, and telling the user how to view a copy of this
+    License.  (Exception: if the Program itself is interactive but
+    does not normally print such an announcement, your work based on
+    the Program is not required to print an announcement.)
+
+These requirements apply to the modified work as a whole.  If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works.  But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+  3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+    a) Accompany it with the complete corresponding machine-readable
+    source code, which must be distributed under the terms of Sections
+    1 and 2 above on a medium customarily used for software interchange; or,
+
+    b) Accompany it with a written offer, valid for at least three
+    years, to give any third party, for a charge no more than your
+    cost of physically performing source distribution, a complete
+    machine-readable copy of the corresponding source code, to be
+    distributed under the terms of Sections 1 and 2 above on a medium
+    customarily used for software interchange; or,
+
+    c) Accompany it with the information you received as to the offer
+    to distribute corresponding source code.  (This alternative is
+    allowed only for noncommercial distribution and only if you
+    received the program in object code or executable form with such
+    an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it.  For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable.  However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+  4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License.  Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+  5. You are not required to accept this License, since you have not
+signed it.  However, nothing else grants you permission to modify or
+distribute the Program or its derivative works.  These actions are
+prohibited by law if you do not accept this License.  Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+  6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions.  You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+  7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License.  If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all.  For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices.  Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+  8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded.  In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+  9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time.  Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number.  If the Program
+specifies a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation.  If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+  10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission.  For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this.  Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+			    NO WARRANTY
+
+  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+		     END OF TERMS AND CONDITIONS
+
+	Appendix: How to Apply These Terms to Your New Programs
+
+  If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+  To do so, attach the following notices to the program.  It is safest
+to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+    <one line to give the program's name and a brief idea of what it does.>
+    Copyright (C) 19yy  <name of author>
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this
+when it starts in an interactive mode:
+
+    Gnomovision version 69, Copyright (C) 19yy name of author
+    Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+    This is free software, and you are welcome to redistribute it
+    under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License.  Of course, the commands you use may
+be called something other than `show w' and `show c'; they could even be
+mouse-clicks or menu items--whatever suits your program.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the program, if
+necessary.  Here is a sample; alter the names:
+
+  Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+  `Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+  <signature of Ty Coon>, 1 April 1989
+  Ty Coon, President of Vice
+
+This General Public License does not permit incorporating your program into
+proprietary programs.  If your program is a subroutine library, you may
+consider it more useful to permit linking proprietary applications with the
+library.  If this is what you want to do, use the GNU Library General
+Public License instead of this License.
new file mode 100644
--- /dev/null
+++ b/ChangeLog
@@ -0,0 +1,642 @@
+Mon Jul 15 14:26:48 1996  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* config.sub: Update to new version from FSF (gcc sources).
+
+Thu Jun 13 16:38:51 1996  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* configure.in: Look for g77 before other fortran compilers.
+
+Thu Jun  6 00:05:47 1996  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* configure.in: Add check for multiple plot windows in gnuplot.
+	* acconfig.h: Add #undef for GNUPLOT_HAS_FRAMES.
+
+Wed May 22 15:05:40 1996  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* configure.in (UCB_INCFLAGS): Another kluge to try to find
+	getrusage on Solaris systems.
+	* Makeconf.in Substitute it.
+
+	* configure.in (SH_LIBS, SH_FLIBS, SH_TERMLIBS): Define.
+	* Makeconf.in: Substitute.
+
+Wed May 22 02:42:32 1996  Kurt Hornik <Kurt.Hornik@tuwien.ac.at>
+
+	* emacs/octave.el (octave-indent-new-line): Protect
+	octave-indent-line with save-excursion.
+	(octave-calc-indent-this-line): Attempt to handle end tokens that
+	are not on separate lines.
+	(octave-electric-semi): Make `;' self-insert if inside comment.
+	(octave-previous-line): Don't try to go back past the beginning of
+	the buffer.
+
+Tue May 21 23:11:46 1996  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* configure.in (F77): Also check for f90.
+
+Mon May 20 12:22:54 1996  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* emacs/octave.el (octave-indent-new-line): Make it do what the
+	docstring says it does.
+
+	* octave-bug.in: Fix previous change so it also matches things
+	like 1.90, not just 1.1.90.
+
+Fri May 17 09:58:49 1996  Kurt Hornik <Kurt.Hornik@tuwien.ac.at>
+
+	* emacs/octave.el (octave-electric-semi): Also call octave-indent-line
+	to indent the current line after inserting a semicolon.
+
+Fri May 17 02:53:49 1996  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* octMakefile.in (DIRS_TO_MAKE): Add octincludedir.
+	(all): Add mkoctfile.
+
+	* configure.in: Don't set values for exec_prefix, bindir, datadir,
+	libdir, libexecdir, includedir, mandir, or infodir, so that they
+	can be set from the configure command line.
+
+	* configure.in, Makeconf.in: Handle mandir, man1dir and man1ext.
+	Change topincludedir to includedir.  Use octincludedir as the
+	subdirectory of includedir where we really install include files.
+
+	* octave-bug.in (BUGADDR): Also set to octave-maintainers if this
+	looks like a pretest version number.
+
+	* Makeconf.in (do-subst-config-vals): Use $< instead of
+	referencing $(srcdir) directly.
+	(do-subst-default-vals): Likewise.
+
+	* octMakefile.in (octave-bug): Depend on octave-bug.in
+	(mkoctfile): Likewise, depend on mkoctfile.in.
+
+Thu May 16 11:49:46 1996  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* octMakefile.in (DISTFILES): Add mkoctfile.in.
+	(install): Install mkoctfile too.
+
+	* aclocal.m4 (OCTAVE_F2C_F77_COMPAT): Fix typo in last change
+
+Mon May 13 04:02:29 1996  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* configure.in (UGLY_DEFS): Quote " with more \'s.
+
+	* Makeconf.in (do-subst-config-vals): Quote substitutions here.
+	* octave-bug.in, mkoctfile: Not here.
+
+	* octMakefile.in (octave-bug, mkoctfile): Depend on Makeconf,
+	octMakefile.
+
+	* Makeconf.in (do-subst-default-vals): New definition, from
+	src/Makefile.in.
+
+	* Makeconf.in (do-subst-config-vals): Define here.
+	* octMakefile.in: Not here.
+
+	* octave-bug.in: Handle more configuration stuff.
+
+	* configure.in (config_opts): Set from ac_configure_args and subst.
+	* Makeconf.in: Handle config_opts.
+	* octMakefile.in (do-subst-config-vals): Substitute them.
+
+Sun May 12 03:37:55 1996  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* Makeconf.in (TERMLIBS): Substitute here.
+
+	* configure.in (topincludedir): New variable.
+	* Makeconf.in (libexecdir): Substitute it.
+
+	* octMakefile.in (do-subst-config-vals): Define new command.
+	(octave-bug): Use it.
+	(mkoctfile): New target.
+
+	* Makefile.in (TARGETS): Add mkoctfile.
+
+	* examples: New subdirectory.
+	* octMakefile.in: Add it to the appropriate lists.
+	* configure.in: Create examples/Makefile.
+
+	* octMakefile.in (DIRS_TO_MAKE): Add $(libdir) here.
+	(install): Use INSTALL_PROGRAM to install octave-bug script.
+	Also install config.h.
+
+	* aclocal.m4 (OCTAVE_F2C_F77_COMPAT): Provide a definition for
+	MAIN__ on Linux systems.
+
+Tue Apr 30 05:44:29 1996  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* configure.in: Handle --enable-bounds-check.
+	* acconfig.h: Add undef for BOUNDS_CHECKING
+
+Mon Apr 29 01:42:38 1996  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* configure.in (AC_FUNC_SETVBUF_REVERSED): Delete.  Octave doesn't
+	need this check (it was for info, which has its own configure now).
+
+Sun Apr 28 05:41:26 1996  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* configure.in (DEFAULT_PAGER): Don't append -e to less here.
+
+Sat Apr 27 22:23:51 1996  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* configure.in: Check for pid_t and sys/types.h.
+
+Tue Apr 23 17:44:18 1996  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* configure.in: Check for fcntl.h, not sys/fcntl.h.
+	Add checks for various system calls.
+
+Sun Apr  7 16:42:54 1996  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* configure.in: Check for strdup.
+
+	* Makefile.in (TARGETS): Add dlfcn.
+	* octMakefile.in (DISTSUBDIRS): Add dlfcn.
+	(SUBDIRS): Add @DLFCN_DIR@.
+	* configure.in: On AIX systems: set DLFCN_DIR=dlfcn when doing
+	shared libraries, bypass checks for dlopen, etc., set and
+	substitute LIBDLFCN and DLFCN_INCFLAGS.  Create dlfcn/Makefile.
+
+Sat Apr  6 21:45:40 1996  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* Makeconf.in (%.d : %.cc, %.d : %.c): Add dependency for pic/%.o.
+
+Fri Mar 29 13:38:40 1996  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* octMakefile.in (maintainer-clean distclean): Delete mk-oct-links.
+
+Wed Mar 27 09:05:01 1996  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* aclocal.m4 (OCTAVE_FLIBS): Fix typo in message.
+
+Tue Mar 26 02:41:16 1996  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* configure.in (UGLY_DEFS): Undo previous change.
+	When checking for various libraries, don't check for main(), but
+	instead look for functions that are actually supposed to be in
+	those libraries.
+	Require autoconf 2.9.
+	If using solaris2, don't add /usr/ucblib/libucb.a to LIBS until
+	near the very end, then check for for getrusage and times just
+	after that.
+
+	* Makeconf.in (UGLY_DEFS): Ditto.
+
+	* octave-bug.in: Don't send empty bug reports.
+
+Sat Mar 23 04:55:46 1996  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* octMakefile.in (DISTDIRS): Omit plplot for now.
+	* Makefile.in (TARGETS): Likewise.
+
+Fri Mar 22 06:15:44 1996  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* configure.in: Add checks for sys/times.h and times().
+	(GCC_IEEE_FP_FLAG): Define this if using gcc 2.8.x or later on
+	Alpha/OSF systems.
+
+Wed Mar 20 02:04:08 1996  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* octMakefile.in (octave.info): cd to doc/interpreter, not doc.
+
+Sun Mar  3 10:01:13 1996  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* config.h.bot: Define HEAVYWEIGHT_INDEXING here.
+
+	* Makefile.in (TARGETS): Remove dld.
+	* octMakefile.in (DISTSUBDIRS): Ditto.
+	* configure.in: Don't create dld/Makefile.
+	Do create doc/fac/Makefile, doc/interpreter/Makefile,
+	doc/liboctave/Makefile, and doc/refcard/Makefile.
+
+Thu Feb 29 08:55:25 1996  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* Makeconf.in (%.o : %.c): Use pattern rule instead of suffix rule.
+	(%.o : %.cc): Likewise.
+	(pic/%.o : %.c, pic/%.o : %.cc): Use separate rules instead of
+	expecting one rule to generate two output files.
+	* configure.in (f77_rules_frag): Use separate rules here too.
+
+Mon Feb 26 03:34:12 1996  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* configure.in: If --disable-dl or --disable-shl, don't check for
+	dynamic linking functions.
+	(includedir): Append version.
+
+Wed Feb 14 12:20:57 1996  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* octMakefile.in (snapshot-version): Don't quote version number.
+
+	* aclocal.m4 (OCTAVE_FLIBS): Avoid setting FLIBS=" ".
+
+Sat Feb 10 12:59:22 1996  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* glob/Makefile.in (install): New target.
+
+Fri Feb  9 14:00:53 1996  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* configure.in: Fix help text for --enable-shared option.
+
+Thu Feb  8 10:17:55 1996  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* octMakefile.in (CONF_DISTFILES): New variable.
+	(DISTFILES): Use it instead of listing things twice.
+	(CONF_DISTSUBDIRS): New variable.
+	(conf-dist): New target.
+
+	* Makefile.in (TARGETS): Add conf-dist.
+
+	* configure.in (CXX_VERSION, CC_VERSION): Substitute them.
+	* octMakefile.in (octave-bug): Substitute them here too.
+	* octave-bug.in: Put them in the configuration message.
+
+Sat Feb  3 08:53:56 1996  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* configure.in: RLD_FLAG should be empty by default, but give it a
+	value for alpha-dec-osf* systems.	
+
+Fri Feb  2 23:03:40 1996  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* Makeconf.in: Actually do add substitutions for FPICFLAG,
+	CPICFLAG, and CXXPICFLAG.
+
+Thu Feb  1 14:58:16 1996  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* configure.in (%.c : %.f): Fix typo.
+
+Wed Jan 24 14:47:58 1996  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* configure.in: Also configure in glob subdirectory.
+	Make pattern rule say how to make .o from .f, not .f from .o.  Duh.
+
+	* octMakefile.in: Add glob stuff to the appropriate lists.
+	* Makeconf.in: Likewise.
+
+	* aclocal.m4: Add test for program_invocation_name.
+	* configure.in: Use it here.
+
+	* acconfig.h: Add #undef here.
+
+Mon Jan 22 17:32:00 1996  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* configure.in: Add checks for mode_t, off_t, size_t, uid_t,
+	dev_t, ino_t, and nlink_t typedefs.
+	* acconfig.h: Add undefs for dev_t, ino_t, and nlink_t.
+
+Sat Jan 20 21:05:49 1996  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* configure.in: For Fortran rules, use pattern rules instead of
+	suffix rules.
+
+Fri Jan 19 12:38:23 1996  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* configure.in: When checking for libf2c.a, add -lm and an extra lib.
+
+Wed Jan 10 16:36:43 1996  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* configure.i: Add missing colon in .o.f pattern for f2c rules.
+
+Mon Jan  8 23:18:39 1996  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* configure.in (AC_PROG_LN_S): New check.
+	* Makeconf.in (LN_S): Substitute it.
+
+	* configure.in (libexecdir): New variable.
+	(archlibdir, octfiledir, localoctfiledir): Use it instead of libdir.
+	(datadir): Default to $(prefix)/share instead of $(prefix)/lib.
+
+	* Makeconf.in (libexecdir): Substitute it.
+
+	* configure.in (localoctfiledir): Use $(libdir), not $(datadir).
+
+Sun Jan  7 18:40:00 1996  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* aclocal.m4 (OCTAVE_SMART_PUTENV): New macro, extracted from
+	the kpathsearch library.
+	* configure.in: Call it.
+
+Fri Dec 29 22:07:52 1995  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* Makeconf.in (subdir-for-command): New definition for
+	SUBDIR_FOR_COMMAND using GNU Make `foreach' instead of shell `for'
+	command.
+	* libcruft/Makefile.in, scripts/Makefile.in, octMakefile.in:
+	Invoke new definition with `@'.
+
+Wed Dec 27 14:27:48 1995  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* octMakefile.in (SUBDIRS): Delete DLD_DIR.
+	(distclean): Delete Makerules.f77.
+
+	* Makeconf.in (WITH_DLD): Delete variable.
+
+	* configure.in: Delete support for dynamic linking with dld.
+
+	* configure.in, Makeconf.in: Use consistent names for WITH_DL,
+	WITH_SHL, OCTAVE_LITE, and SHARED_LIBS
+	
+	* config.h.bot: Undo previous change.
+	* acconfig.h: Add #undef for WITH_DYNAMIC_LINKING.
+	* Makeconf.in: Substitute it here too.
+	* configure.in: Set it here.
+
+Tue Dec 26 00:12:14 1995  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* configure.in (AC_CONFIG_SUBDIRS): Delete libcruft.
+	(AC_OUTPUT): List libcruft files here.
+
+	* configure.in, Makeconf.in: Handle Fortran compilation rules
+	using an included fragment in Makeconf.
+
+Mon Dec 25 22:14:21 1995  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* configure.in (CPICFLAG, CXXPICFLAG, FPICFLAG): New variables.
+	* Makeconf.in: Substitute them.
+
+	* configure.in: Handle --enable-shared option.
+	Handle Fortran source files differently.
+	* Makeconf.in (SHARED_LIBS): Substitute shared_libs.
+	(SHLEXT, RLD_FLAG, fortran_rules_flag): Substitute these too.
+	(.c.o, .cc.o): Handle creating position independent code for
+	shared libraries.
+
+Sun Dec 24 00:29:12 1995  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* config.h.bot: Maybe define WITH_DYNAMIC_LINKING.
+
+	* Makeconf.in (WITH_DL, WITH_SHL): Substitute values.
+	* acconfig.h: Add undefs for WITH_DL and WITH_SHL.
+	* configure.in: Handle --enable-dl and --enable-shl.
+	Check for -ldl and dlopen, dlsym, dlclose, and dlerror.
+	Check for -ldld and shl_load, shl_findsym.
+	(have_fortran_compiler): Quit if no suitable Fortran compiler is
+	found.
+
+Fri Nov  3 03:33:42 1995  John Eaton  <jwe@bevo.che.wisc.edu>
+
+	* emacs/octave-mode.el: Rename from octave.el.
+
+Wed Oct 11 19:22:12 1995  John Eaton  <jwe@bevo.che.wisc.edu>
+
+	* configure.in (GNUPLOT_BINARY): When checking for multiplot,
+	issue a `set term unknown' command first.
+
+Wed Oct  4 01:42:35 1995  John Eaton  <jwe@bevo.che.wisc.edu>
+
+	* config.guess: Add entry for PowerPC Macs running Machten.
+
+	* octMakefile.in (dist-z): Remove old .gz file before creating new one.
+
+Mon Oct  2 19:17:22 1995  John Eaton  <jwe@bevo.che.wisc.edu>
+
+	* configure.in: Check to see if it looks like gnuplot supports
+	multiplot.
+	* acconfig.h: Add undef for GNUPLOT_HAS_MULTIPLOT.
+
+	* acconfig.h: #undefs for HAVE_FINITE, HAVE_ISNAN, HAVE_ISINF,
+	HAVE_TERMIOS_H, HAVE_TERMIO_H, and HAVE_SGTTY_H removed.  This
+	file should only have things that autoheader can't figure out.
+
+Sun Oct  1 17:08:37 1995  John Eaton  <jwe@bevo.che.wisc.edu>
+
+	* octMakefile.in (clean-tar): Also omit directories called OLD and
+	files beginning with =.
+
+Fri Sep 29 01:04:31 1995  John Eaton  <jwe@bevo.che.wisc.edu>
+
+	* ROADMAP: New file.
+	* (DISTFILES): Include it.
+
+	* emacs: New subdirectory for Emacs-related stuff.
+	* octMakefile.in (DISTDIRS, BINDISTSUBDIRS): Include emacs.
+	(DISTFILES, BINDISTFILES): Don't include octave-mode.el.
+
+Tue Sep 26 03:56:39 1995  John Eaton  <jwe@bevo.che.wisc.edu>
+
+	* configure.in: Don't add -Wno-unused to CFLAGS or CXXFLAGS.
+	* config.h.bot: Remove definition of UNUSED.
+
+	* config.sub: Replace with current version from FSF.
+	* config.guess: Likewise.
+
+Thu Sep 21 20:29:00 1995  John Eaton  <jwe@bevo.che.wisc.edu>
+
+	* configure.in (AR, ARFLAGS): Set defaults for these, but also
+	allow them to come from the environment.
+	* Makeconf.in (AR, ARFLAGS): New variables to substitute.
+
+Wed Sep 20 00:51:24 1995  John Eaton  <jwe@bevo.che.wisc.edu>
+
+	* octMakefile.in (maintainer-clean): Also remove Makeconf,
+	config.cache, config.h, and config.log.
+
+Tue Sep 19 17:20:32 1995  John Eaton  <jwe@bevo.che.wisc.edu>
+
+	* sighandlers.h [HAVE_SIGACTION && HAVE_SIGPROCMASK &&
+	HAVE_SIGPENDING && HAVE_SIGSUSPEND]: #define HAVE_POSIX_SIGNALS.
+
+	* configure.in: Check for sigaction(), sigprocmask(),
+	sigpending(), and sigsuspend() functions.
+	Don't do anything special about checking for termios.h, termio.h,
+	and sgtty.h.
+
+Mon Sep 18 22:39:33 1995  John Eaton  <jwe@bevo.che.wisc.edu>
+
+	* config.h.bot [__GNUC__]: Define NORETURN.
+
+Fri Sep 15 05:12:29 1995  John Eaton  <jwe@bevo.che.wisc.edu>
+
+	* configure.in (AC_C_BIGENDIAN): Remove test.
+
+Thu Sep 14 02:07:51 1995  John Eaton  <jwe@bevo.che.wisc.edu>
+
+	* configure.in (LIBPLPLOT): Disable plplot by default for now.
+	Check for mkdir, rmdir, rename, and umask.
+
+	* All Makefile.in files: Convert from realclean to
+	maintainer-clean, for GNU coding standards.
+
+	* configure.in: Call AC_FUNC_CLOSEDIR_VOID.
+
+Wed Sep 13 03:25:37 1995  John Eaton  <jwe@bevo.che.wisc.edu>
+
+	* configure.in: Do check for IEEE functions on the Alpha.
+
+Mon Sep 11 19:08:47 1995  John Eaton  <jwe@bevo.che.wisc.edu>
+
+	* configure.in: Call AC_STRUCT_ST_BLKSIZE, AC_STRUCT_ST_BLOCKS,
+	and AC_STRUCT_ST_RDEV.
+
+Tue Sep  5 02:02:35 1995  John Eaton  <jwe@bevo.che.wisc.edu>
+
+	* configure.in: Check for sys/param.h and sys/stat.h
+	Use AC_HEADER_TIME, not AC_TIME_WITH_SYS_TIME.
+	Use AC_HEADER_SYS_WAIT.
+
+Thu Aug 24 15:35:44 1995  John Eaton  <jwe@bevo.che.wisc.edu>
+
+	* configure.in: Don't set or call AC_SUBST for CXXFLAGS or CFLAGS,
+	and don't call AC_SUBST for LDFLAGS -- autoconf takes care of this.
+	If adding -Wall, add -Wno-unused too.
+
+Tue Aug 22 01:37:02 1995  John Eaton  <jwe@bevo.che.wisc.edu>
+
+	* Makefile.in (all): Update message.
+
+	* config.h.bot: New file.
+	* octMakefile.in (DISTFILES): Add it to the list.
+
+	* acconfig.h (USE_PLPLOT): Add #undef.
+
+Mon Aug 21 19:33:33 1995  John Eaton  <jwe@bevo.che.wisc.edu>
+
+	* Makefile.in (NO_DEP_TARGETS): New variable, for targets that can
+	be made without updating dependency files.
+
+Sun Jun 25 18:27:49 1995  John Eaton  <jwe@schoch.che.utexas.edu>
+
+	* configure.in (FFLAGS): Add -fpe1 on alpha-dec-osf1 systems.
+
+Thu May  4 22:26:34 1995  John Eaton  <jwe@schoch.che.utexas.edu>
+
+	* configure.in: export CC, CXX, and F77 before calling
+	AC_CONFIG_SUBDIRS.
+
+Mon May  1 14:17:07 1995  John Eaton  <jwe@schoch.che.utexas.edu>
+
+	* configure.in: Handle --with-plplot.
+	(AC_CONFIG_SUBDIRS): Add plplot directory if --with-plplot.
+	* plplot: New subdirectory.
+	* Makefile.in (plplot): New target.
+	* octMakefile.in (SUBDIRS): Add @PLPLOT_DIR@.
+	(DISTDIRS): Add plplot.
+
+	* acconfig.h: Add #undef for GETTIMEOFDAY_NO_TZ.
+
+	* configure.in: Improve check for gettimeofday.
+
+Mon May  1 12:50:03 1995  John Eaton  (jwe@bullwinkle.che.utexas.edu)
+
+	* acconfig.h (OCTAVE_LITE): Fix comment.
+
+Tue Apr 11 20:31:52 1995  John Eaton  <jwe@schoch.che.utexas.edu>
+
+	* configure.in (INFO_DIR, READLINE_DIR): New variables.
+	If $USE_GNU_INFO, AC_DEFINE it, don't AC_SUBST it.
+	Likewise, for USE_READLINE.
+
+	* octMakefile.in (SUBDIRS): Substitute INFO_DIR and READLINE_DIR.
+
+	* aclocal.m4 (OCTAVE_F77_UPPERCASE_NAMES): New macro.
+	(OCTAVE_F77_APPEND_UNDERSCORES): Require it.
+	* configure.in: Use it.
+	(info_subdir): If $USE_GNU_INFO, then run configure in info
+	subdirectory too.
+	Don't check for sys/ttold.h or sys/ptem.h.
+
+Mon Apr 10 00:17:57 1995  John Eaton  <jwe@schoch.che.utexas.edu>
+
+	* configure.in (UGLY_DEFS): Delete commands to create this.
+	* Makeconf.in (UGLY_DEFS): Delete substitution.
+	* Makeconf.in (UGLY_ALL_CFLAGS): Delete definition.
+
+	* configure.in: Add scripts and libcruft to CONFIG_SUBDIRS.
+	Don't edit scripts or libcruft Makefiles here.
+	Reorganize checking for the Fortran compiler.
+
+	* octMakefile.in (DISTFILES): Delete f2c-compat.sh flibs.sh
+	cxxlibs.sh from list.  Add aclocal.m4.
+	* configure.in: Use new macros defined in aclocal.m4.  Don't use
+	external shell scripts.  Cache values.
+
+	* aclocal.m4: New file.
+
+Sun Apr  9 12:47:27 1995  John Eaton  <jwe@schoch.che.utexas.edu>
+
+	* configure.in: Print status message before exiting.
+	Cache CXXLIBS and FLIBS.
+
+	* acconfig.h: Delete #undefs for floating point format.
+	* octMakefile.in (DISTFILES): Delete float-type.c from list.
+	* configure.in: Don't try to determine floating point format at
+	configuration time.
+
+Mon Apr  3 21:46:10 1995  John Eaton  <jwe@schoch.che.utexas.edu>
+
+	* configure.in: Create scripts/time/Makefile too.
+
+	* configure.in (gxx_version): Handle new gcc version message.
+	(gcc_version): Likewise.
+
+Wed Mar 29 22:59:42 1995  John Eaton  <jwe@schoch.che.utexas.edu>
+
+	* configure.in (AC_STRFTIME): Delete check.
+	(AC_STRUCT_TIMEZONE): New check.
+
+Wed Mar 22 08:31:21 1995  John Eaton  <jwe@schoch.che.utexas.edu>
+
+	* Makeconf.in (ALL_FFLAGS, FUGLY): New variables.
+
+	* configure.in: Use AC_ARG_ENABLE and AC_ARG_WITH consistently.
+	Handle --with-g77.  Substitute new variable FUGLY.  If F77 is g77,
+	set it to -fugly.  Substitute command for making .o from .f.
+
+Tue Mar 21 14:24:32 1995  John Eaton  <jwe@schoch.che.utexas.edu>
+
+	* cxxlibs.sh: Extract -R options like -L options.
+	* configure.in (FLIB_PATH, FLIB_LIST): Extract -R options along
+	with -L options.
+
+Tue Mar 21 14:20:55 1995  Paul Eggert  <eggert@twinsun.com>
+
+	* configure.in (CXX): Export; cxxlibs.sh needs this.
+	(FLIB_LIST, CXXLIB_LIST): Extract -R options along with -L options.
+
+	* flibs.sh: Treat `-L foo' like `-Lfoo'.  Extract -R options
+	like -L options.
+
+Tue Mar 21 08:08:06 1995  John Eaton  <jwe@schoch.che.utexas.edu>
+
+	* flibs.sh: Search for values-X*.o, not values-*.o.
+
+Fri Mar 10 10:32:27 1995  John Eaton  <jwe@schoch.che.utexas.edu>
+
+	* Makeconf.in (SUBDIR_FOR_COMMAND): New command definition.
+	* octMakefile.in: Use it.
+
+	* octMakefile.in (install, uninstall, tags, TAGS, clean,
+	mostlyclean, distclean, realclean): Combine actions.
+
+Tue Feb 28 21:24:35 1995  John Eaton  <jwe@schoch.che.utexas.edu>
+
+	* configure.in (FC): Set to $F77 and substitute it.
+	* Makeconf.in (FC): Add substitution line.
+
+Sun Feb 26 00:20:19 1995  John Eaton  <jwe@schoch.che.utexas.edu>
+
+	* dointsall.sh: Create ls-R database.
+
+	* configure.in: Configure kpathsea using AC_CONFIG_SUBDIRS().
+	Remove check for SMART_PUTENV.
+	Remove kpathsea/c-auto.h from AC_CONFIG_HEADER().
+
+	* make: New directory, for kpathsea configuration.
+	* octMakefile.in (DISTDIRS): Add it
+
+	* kpathsea: Update with 2.6 distribution.
+
+	* Makefile.in (TARGETS): New variable.  Combine all identical targets.
+
+	* configure.in (LIBINFO, LIBREADLINE): New variables to substitute.
+
+Sat Feb 25 18:47:11 1995  John Eaton  <jwe@schoch.che.utexas.edu>
+
+	* acconfig.h (USE_READLINE): Add #undef.
+	* configure.in: Add support for --enable-readline.
+
+	* acconfig.h (USE_GNU_INFO): Add #undef.
+	* configure.in: Add support for --enable-info.
+
+	* acconfig.h (RUN_IN_PLACE): Delete #undef.
+
+See ChangeLog.1 for earlier changes.
new file mode 100644
--- /dev/null
+++ b/ChangeLog.1
@@ -0,0 +1,10392 @@
+Thu Feb 23 09:32:01 1995  John Eaton  <jwe@schoch.che.utexas.edu>
+
+	* Version 1.1.1 released.
+
+	* src/idx-vector.cc (idx_vector (const Range&)): Always initialize
+	data to 0.
+	(idx_vector (const Matrix&, int, const char *, int)): Likewise.
+	(idx_vector (const idx_vector&): Likewise, do it first.
+	* src/idx-vector.h (~idx_vector): Simply delete data.
+
+	* octMakefile.in: Combine libcruft, liboctave,dld, info, readline,
+	kpathsea, src, scripts, and doc targets into just one.
+	(all): Depend on $(SUBDIRS).
+	* libcruft/Makefile.in (make-objects): Change to $(SUBDIRS)
+	target that doesn't use a loop.
+	(all): Depend on $(SUBDIRS).
+
+Wed Feb 22 07:27:18 1995  John Eaton  <jwe@schoch.che.utexas.edu>
+
+	* Don't leave @LIBDLD@ on a line by itself.
+
+	* src/tc-rep-idx.cc (fortran_style_matrix_index): Handle zero-one
+	indexing as a separate case.
+	(fortran_style_matrix_index): Check for out-of-bounds index.
+
+	* src/idx-vector.cc (init_state): Don't forget len, num_zeros, and
+	the one_zero flag for vectors of all zero elements.
+	(convert_one_zero_to_idx): Set data to zero after deleting it.
+
+	* src/data.cc (check_dimensions):
+	Handle case of treat_neg_dim_as_zero = "warn".
+
+Tue Feb 21 08:18:19 1995  John Eaton  <jwe@schoch.che.utexas.edu>
+
+	* src/tree-misc.cc (initialize_undefined_elements): Don't declare
+	arg const.
+
+	* src/sysdepl.cc (octave_getcwd): Declare arg as char *, not
+	const char *.
+
+	* src/input.cc (match_sans_spaces): Initialize ep from copy of
+	arg, not arg itself.
+
+	* octMakefile.in (snapshot-version): Look for OCTAVE_VERSION,
+	not just VERSION.  Don't end #define with a semicolon.
+
+Mon Feb 20 15:57:17 1995  John Eaton  <jwe@schoch.che.utexas.edu>
+
+	* scripts/image/Makefile.in (clean): Delete octtopnm.o and octtopnm.
+
+Fri Feb 17 08:12:09 1995  John Eaton  <jwe@schoch.che.utexas.edu>
+
+	* src/variables.cc (maybe_add_default_load_path): New function,
+	extracted from default_path(), which no longer needs it.
+	* src/user-prefs.cc (sv_loadpath): Call it here.
+
+Wed Feb 15 15:13:22 1995  John Eaton  <jwe@schoch.che.utexas.edu>
+
+	* src/octave.cc (verbose_usage): Format help message more like
+	the help messages of other GNU programs.
+
+	* src/variables.cc (install_builtin_variables): New builtin
+	variable, suppress_verbose_help_message.
+	* src/user-prefs.cc (user_prefs): New field,
+	suppress_verbose_help_message.
+	* src/user-prefs.cc (suppress_verbose_help_message): New function.
+	* src/help.cc (additional_help_message): Check
+	user_pref.suppress_verbose_help_message before printing message.
+
+Tue Feb 14 15:36:01 1995  John Eaton  <jwe@schoch.che.utexas.edu>
+
+	* src/sysdep.cc (octave_chdir): New function.
+	* src/dirfns.cc (change_to_directory): Use it.
+
+	* src/sysdep.cc (octave_getcwd): New function.
+	* src/dirfns.cc (get_working_directory, Fpwd): Use it.
+	* src/input.cc (decode_prompt_string): Likewise.
+
+	* src/version.h (VERSION): New #define.
+	(version_string): Use it.
+	(OCTAVE_COPYRIGHT): New #define.
+	(OCTAVE_NAME_AND_VERSION): New #define.
+	(OCTAVE_NAME_VERSION_AND_COPYRIGHT): New #define.
+	(OCTAVE_STARTUP_MESSAGE): New #define.
+	* src/octave.cc (main): Use new macros from version.h
+	(print_version_and_exit): Likewise.
+	(verbose_usage): Likewise.
+	(Fwarranty): Likewise.
+
+	* Makeconf.in (version): Make work with new version.h.
+	* octMakefile.in (snapshot-version): Likewise.
+
+	* src/variables.cc (default_path): Use SEPCHAR instead of literal ':'.
+	* src/utils.cc (pathstring_to_vector): Likewise.
+	* src/octave.cc (initialize_globals): Likewise, use SEPCHAR_STR to
+	construct format string instead of using literal `:'.
+
+	* configure.in: Call AC_DEFINE for SEPCHAR and SEPCHAR_STR.
+	* acconfig.h: Add #undefs for SEPCHAR and SEPCHAR_STR.
+
+	* src/dynamic-ld.cc: Don't include dld.h unless WITH_DLD.
+
+	* src/octave.cc (parse_and_execute): Close file.
+
+Mon Feb 13 19:39:12 1995  John Eaton  (jwe@bullwinkle.che.utexas.edu)
+
+	* scripts/general/linspace.m: Delete.
+	* src/data.cc (Flinspace): New function.
+	* liboctave/dRowVector.cc (linspace): New function.
+	* liboctave/CRowVector.cc (linspace): New function.
+
+Sun Feb 12 21:23:54 1995  John Eaton  <jwe@schoch.che.utexas.edu>
+
+	* src/load-save.cc (read_mat_binary_data): Only convert to string
+	if the number of rows is 1.
+
+	* scripts/image/saveimage.m: Force ASCII save.
+
+Thu Feb  9 08:46:09 1995  John Eaton  <jwe@schoch.che.utexas.edu>
+
+	* scripts/elfun/sec.m: Returned variable is `w', not `y'.
+	* scripts/elfun/sech.m: Likewise.
+
+Wed Feb  8 10:51:33 1995  John Eaton  <jwe@schoch.che.utexas.edu>
+
+	* src/f-find.cc (find_nonzero_elem_idx): Increment i, j indices by
+	1 before stashing them.
+
+Fri Feb  3 15:44:03 1995  John Eaton  <jwe@schoch.che.utexas.edu>
+
+	* src/tree-misc.cc
+	(tree_parameter_list::initialize_undefined_elements): New function. 
+	* src/tree-expr.cc (tree_function::eval): Use it to define return
+	values.
+	(tree_simple_assignment_expression:eval): Complain if RHS is undefined.
+	(tree_multi_assignment_expression:eval): Complain if any of the
+	RHS values are undefined. 
+	* src/user-prefs.h (init_user_prefs): New structure element,
+	define_all_return_values.
+	* src/user-prefs.cc (define_all_return_values): New function.
+	* src/variables.cc (install_builtin_variables): Add DEFVARs for
+	default_return_value and define_all_return_values.
+	(builtin_any_variable): New function.
+
+Wed Feb  1 08:02:28 1995  John Eaton  <jwe@schoch.che.utexas.edu>
+
+	* src/parse.y (parse_error): Call yyerror() here.
+	(input): Not here.	
+
+	* src/lex.l (handle_string): Call have_continuation and
+	have_ellipsis_continuation with 0 arg, to disallow comments after
+	continuation characters inside strings.
+	(have_continuation): New arg, trailing_comments_ok with default
+	value of 1.  If !trailing_comments_ok, don't allow comments to
+	follow continuation token.
+	(have_ellipsis_continuation): New arg, trailing_comments_ok, with
+	default value of 1.  Pass it along to have_continuation.
+
+	* src/parse.y (yyerror): Call parse_error with first arg == "%s",
+	since msg might contain format specifiers.
+
+	* src/tree-expr.cc (tree_index_expression::eval (int)): Detect
+	undefined elements in argument list and print error message.
+	(tree_index_expression::eval (int, int, const Octave_object&)):
+	Likewise.
+
+	* configure.in: Only set CFLAGS, CXXFLAGS, LDFLAGS, FFLAGS, and
+	F2CFLAGS if they are not already set in the environment.
+
+	* doinstall.sh: Add -print to find commands.
+
+Tue Jan 31 13:26:53 1995  John Eaton  <jwe@schoch.che.utexas.edu>
+
+	* src/lex.l (<MATRIX>{S}*\,{S}*): Eat any trailing continuation
+	here.  Use value returned from eat_continuation to decide whether
+	to insert a row separator.
+	(<MATRIX>{S}+): Likewise.
+	(<MATRIX>{SNLCMT}*\n{SNLCMT}*): Eat any trailing whitespace here.
+
+	* lex.l (ATE_SPACE_OR_TAB, ATE_NEWLINE): New macros.
+	(eat_whitespace): Use them to set return value.
+
+Mon Jan 30 14:02:24 1995  John Eaton  <jwe@schoch.che.utexas.edu>
+
+	* src/user-prefs.cc (set_output_precision): Don't pass NaN to NINT.
+	(set_output_max_field_width): Likewise.
+	(set_save_precision): Likewise.
+	* src/file-io.cc (return_valid_file): Likewise.
+	(fgets_internal): Likewise.
+	(fseek_internal): Likewise.
+	(process_printf_format): Likewise.
+	(fread_internal): Likewise.
+	* src/f-colloc.cc (Fcolloc): Likewise.
+	* src/f-fft.cc (Ffft): Likewise.
+	* src/f-fft2.cc (Ffft2): Likewise.
+	* src/f-ifft.cc (Fifft): Likewise.
+	* src/f-ifft2.cc (Fifft2): Likewise.
+	* src/f-npsol.cc (do_npsol_option): Likewise.
+	* src/f-qpsol.cc (do_qpsol_option): Likewise.
+	* src/f-rand.cc (Frand): Likewise.
+	* src/pr-output.cc (all_elements_are_ints): Likewise.
+	* src/tree-plot.cc (subplot_using::eval): Likewise.
+	(subplot_style::print): Likewise.
+	* src/sysdep.cc (Fpause): Likewise.
+	* src/tc-rep.cc (TC_REP::valid_as_scalar_index): Likewise.
+	(TC_REP::valid_as_zero_index): Likewise.
+	(TC_REP::convert_to_str): Likewise.
+	* src/tc-rep-idx.cc (TC_REP::do_scalar_index): Likewise.
+	(TC_REP::fortran_style_matrix_index): Likewise.
+	* src/tc-rep-ass.cc (TC_REP::fortran_style_matrix_assignment):
+	Likewise.
+
+Sat Jan 28 13:09:44 1995  John Eaton  <jwe@schoch.che.utexas.edu>
+
+	* scripts/general/tril.m: Allow the k == nc for k > 0 and
+	-k == nr for k < 0.  Make faster by eliminating nested loops.
+	* scripts/general/triu.m: Likewise.
+
+Fri Jan 27 08:32:10 1995  John Eaton  <jwe@schoch.che.utexas.edu>
+
+	* libcruft/lapack: Update with files from LAPACK 2.0.
+
+	* src/lex.l (\[{S}*): Don't call fixup_column_count() here.
+	Don't use TOK_RETURN here, since we call eat_whitespace().
+	(eat_whitespace): Decrement current_input_column when calling
+	yyunput().
+	(<MATRIX>{SNLCMT}*\n{SNLCMT}): Always call fixup_column_count().
+
+	* src/parse.y (rows): Don't accept repeated semicolons.
+	(matrix_row): Likewise, for commas.
+
+	* src/Makefile.in (LIBOBJS): Delete.
+
+	* liboctave/f77-uscore.h: Don't use C++ style comments.
+
+	* octMakefile.in (DISTDIRS): Don't include bsd-math.
+	* src/Makefile.in (VPATH): Don't include bsd-math directory.
+	(SOURCES): Include acosh.c, asinh.c, atanh.c, erf.c erfc.c, and
+	lgamma.c.
+	* configure.in: Create libcruft/slatec-fn/Makefile.
+	Use AC_CHECK_FUNCS to look for acosh, asinh, atanh.
+	Don't do anything special if they are missing.
+	* src/acosh.c, src/asinh.c, src/atanh.c, src/erf.c, src/erfc.c,
+	src/lgamma.c: New files.
+	* acconfig.h: Delete #undefs for ACOSH_MISSING, ASINH_MISSING,
+	and ATANH_MISSING.
+	* libcruft/Makefile.in (CRUFT_DIRS): Add slatec-fn.
+	* libcruft/slatec-fn: New directory.
+
+	* configure.in: Don't try to use IEEE floating point on m68k HP
+	systems.
+	
+Thu Jan 26 12:57:05 1995  John Eaton  <jwe@schoch.che.utexas.edu>
+
+	* src/lex.l (maybe_unput_comma):  New function, extracted from
+	handle_identifier().  Correctly handle the dot in things like
+	`a.b' inside matrix lists.
+	(handle_identifier): Use it.  Don't allow things like [a .1] or
+	[a.b .1] to fool us.
+
+Wed Jan 25 08:04:16 1995  John Eaton  <jwe@schoch.che.utexas.edu>
+
+	* scripts/Makefile.in (realclean): Don't depend on distclean.  Do
+	delete Makefile here.
+
+	* flibs.sh: Also check for /*values-*.o, for Sun Fortran 2.x.
+	* configure.in (FLIB_LIST, CXXLIB_LIST, FLIB_PATH, CXXLIB_PATH):
+	Delete any .o files found here.
+	When checking for -lm, also append -lc on Linux systems.
+
+	* mkinstalldirs: Create directories with mode 0755, to avoid
+	problems because the installers umask is too restrictive.
+
+	* octave-bug.in: Don't use rmail, it crashes on Ultrix systems if
+	the message file isn't just right.  Use nested if statements
+	instead of ||, for Ultrix /bin/sh.  Avoid Ultrix awk crash.
+
+	* scripts/linear-algebra/trace.m: Handle row and column vectors as
+	a special case.
+	* scripts/linear-algebra/null.m: Likewise.
+	* scripts/linear-algebra/orth.m: Likewise.
+
+Tue Jan 24 08:11:51 1995  John Eaton  <jwe@schoch.che.utexas.edu>
+
+	* octave-bug.in: Add F2C, F2CFLAGS, FLIBS, and LDFLAGS to report.
+	* Makefile.in (octave-bug): Substitute them.
+
+Mon Jan 23 20:42:55 1995  John Eaton  <jwe@schoch.che.utexas.edu>
+
+	* src/tree-misc.cc (tree_if_clause::is_else_clause): New function.
+	(tree_if_command_list::print_code): Use it to decide whether to
+	print "else" or "elseif" here.
+	(tree_if_clause::print_code): Don't print "else" here.
+
+	* scripts/image/colormap.m: Fix logic for initializing default
+	colormap and handling subsequent calls with no arguments.
+
+	* src/lex.h (TOK_PUSH_AND_RETURN): Correct last change.
+
+Sun Jan 22 18:02:37 1995  John Eaton  <jwe@schoch.che.utexas.edu>
+
+	* src/lex.l (handle_identifier): Handle incrementing
+	current_input_column here.
+	({IDENT}{S}*): Not here.
+
+	* src/lex.h (TOK_PUSH_AND_RETURN): New macro.
+	* src/lex.l: Use it.
+
+	* src/parse.y (yyerror): If printing input line, always print `^'
+	error marker too.
+
+	* src/parse.y (command [BREAK]): Allow break to occur in function
+	bodies too.
+	* src/tree-expr.cc (tree_function::eval): Also check to see if
+	function exited because of a break statement.
+
+Fri Jan 20 10:48:18 1995  John Eaton  <jwe@schoch.che.utexas.edu>
+
+	* config.guess: Replace with current version from FSF.
+	* config.sub: Likewise.
+
+	* src/tempname.c: Include statdefs.h.
+
+	* src/tree-expr.cc (eval): Improve error messages.
+
+Thu Jan 19 08:33:50 1995  John Eaton  <jwe@schoch.che.utexas.edu>
+
+	* src/lex.l (handle_string): Properly handle pending escapes.
+	Call error() for unterminated string constants.
+	* src/parse.y (input): For parse errors, call yyerror().
+
+	* test/config/unix-octave.exp (octave_start): Correctly set OSPATH
+	from $OCTAVE_SCRIPT_PATH, not to the string OCTAVE_SCRIPT_PATH.
+
+	* test/Makefile.in (OCTAVE_SCRIPT_PATH): Delete surrounding quotes
+	in definition.
+
+	* doc/texinfo.tex: Move to version 2.140.
+
+	* src/f-rand.cc (Frand): Use different method for generating
+	initial seed so that it varies more each time Octave starts.
+
+	* src/file-io.cc (feof_internal): Use args(0), not args(1).
+
+	* src/Makefile.in (SOURCES): Use tempnam.c, not tmpnam.c.
+	* src/tempnam.c: New file, from the GNU C library.
+
+Wed Jan 18 08:10:31 1995  John Eaton  <jwe@schoch.che.utexas.edu>
+
+	* src/user-prefs.h (user_prefs): New field, read_only_constants.
+	* src/user-prefs.cc (read_only_constants): New function.
+	* src/variables.cc (install_builtin_variables): Add DEFVAR for
+	read_only_constants, but leave it #if 0'd out since we're not
+	really ready for it yet..
+	* src/symtab.cc (symbol_record::read_only_error): Check
+	user_prefs.read_only_constants to see if it is ok to redefine
+	constants that are marked as read-only.
+
+	* src/user-prefs.h (user_prefs): New field, ps4.
+	* src/user-prefs.cc (sv_ps4): New function.
+	* src/variables.cc (install_builtin_variables): Add DEFVAR for PS4.
+	* src/input.cc (do_input_echo): New function.  Use PS4 variable as
+	prefix of echoed input.  Send echoed input through the pager.
+
+	* flibs.sh: Ignore -lang* options.
+
+	* src/load-save.cc (Fsave): Send `save - ...' output through the
+	pager.
+
+	* doc/Makefile.in: Create and distribute refcards of various sizes.
+	Delete rules for making refcard.tex from refcard.tex.in.
+	Don't make or distribute refcard-local.
+	* doc/refcard.tex: Handle setting paper size with \refcardsize.
+	* doc/refcard-a4.tex, doc/refcard-legal.tex, doc/refcard-letter.tex:
+	New files.
+
+Mon Jan 16 13:19:29 1995  John Eaton  <jwe@schoch.che.utexas.edu>
+
+	* src/tc-rep-ass.cc (TC_REP::do_scalar_assignment): Handle
+	assignments like a(0) = [].
+	* src/tc-inlines.h (valid_zero_index): New function.
+	* src/tc-rep.cc (valid_as_zero_index): New function.
+	* src/tree-const.h (valid_as_zero_index): New function.
+
+	* src/parse.y (func_def2): Check user_prefs before warning about
+	function name and function file name conflict.
+	* src/user-prefs.h (user_prefs): New field, warn_function_name_clash.
+	* src/user-prefs.cc (warn_function_name_clash): New function.
+	* src/variables.cc (install_builtin_variables): Add DEFVAR for
+	warn_function_name_clash.
+
+	* scripts/image/octtopnm.c: Include stdlib.h instead of malloc.h.
+
+Sun Jan 15 15:08:04 1995  John Eaton  <jwe@schoch.che.utexas.edu>
+
+	* readline/rldefs.h: Use new #defines for directory headers now
+	that we are using autoconf 2.
+
+	* scripts/special-matrix/hankel.m: Use .', instead of '.
+
+	* src/input.cc (match_sans_spaces): Use strcmp, not strncmp.
+
+	* src/tc-rep-ass.cc (TC_REP::fortran_style_matrix_assignment):
+	For scalar index, don't do assignment if RHS and LHS are both empty.
+
+	* src/data.cc (Fsize): Handle optional second arg.
+
+	* src/tree-expr.cc (tree_function::eval (int)): Correctly set
+	nargin and nargout to zero when evaluating function.
+
+	* src/lex.l (handle_string): Correct handling of string escapes.
+
+Thu Jan 12 15:25:34 1995  John Eaton  <jwe@schoch.che.utexas.edu>
+
+	* Version 1.1.0 released.
+
+	* octMakefile.in (bin-dist-tar): Ignore errors on strip commands.
+
+	* src/tree-expr.cc (tree_builtin::eval (int)): Set nargout to 0
+	when calling function.
+
+	* doc/Makefile.in (FORMATTED): Add refcard.dvi and refcard.ps so
+	that they are distributed along with the other docs.
+	* octMakefile.in (clean-doc-dist-tar): Delete target.
+	(doc-dist): Depend on doc-dist-tar, not	clean-doc-dist-tar. 
+
+Tue Jan 10 14:29:43 1995  John Eaton  <jwe@schoch.che.utexas.edu>
+
+	* src/help.cc (print_usage): Print warning if symbol isn't found.
+
+	* src/utils.cc (Fundo_string_escapes): Fix typo in call to
+	print_usage().
+
+	* src/octave.cc (Fsystem): Correctly compute exit code.
+
+	* scripts/miscellaneous/etime.m: Complain if args are not the
+	right length, not if they are.  Reverse sense of test for years.
+	Duh.
+
+	* src/f-find.cc (find_to_fortran_idx): For the case of one output
+	argument, return a row vector if the original argument to find was
+	a row vector.
+
+Mon Jan  9 12:57:27 1995  John Eaton  <jwe@schoch.che.utexas.edu>
+
+	* src/lex.l (grab_help_text): Always overwrite help_buf.
+	({CCHAR}): Don't call grab_help_text() if there is already
+	something in help_buf.
+
+Sat Jan  7 12:28:35 1995  John Eaton  <jwe@schoch.che.utexas.edu>
+
+	* configure.in (HOST_CXXFLAGS): New variable to substitute.
+	* Makeconf.in (ALL_CXXFLAGS, UGLY_ALL_CXXFLAGS, BUG_CXXFLAGS):
+	Add $(HOST_CXXFLAGS).
+
+Fri Jan  6 13:07:09 1995  John Eaton  <jwe@schoch.che.utexas.edu>
+
+	* scripts/special-matrix/toeplitz.m: Use .' instead of '.
+
+Tue Jan  3 18:14:33 1995  John Eaton  <jwe@schoch.che.utexas.edu>
+
+	* test: Rewrite many tests to not run Octave interactively.  This
+	makes the log files much more readable.
+
+	* octMakefile.in (clean-tar): Delete octave-test/npsol directory,
+	not just test/octave.test/npsol.exp.  Likewise, add a command for
+	deleting qpsol tests.
+
+Mon Jan  2 20:02:10 1995  John Eaton  <jwe@schoch.che.utexas.edu>
+
+	* src/octave.cc (main): Return 0 if error_state is not set.
+
+	* src/error.cc (error_1): New function.
+	(error): Use it.
+	(parse_error): New function.
+	* src/parse.y: Never call error and yyerror; just use yyerror.
+	(yyerror): Improve logic.  Use new parse_error() function so that
+	error_state is always set for a parse error.  Don't use
+	ostream::form().
+	(ABORT_PARSE): Don't call reset parser here.
+	(colon_expr): Don't call yyerror here.  An error message is
+	printed by tree_colon_expression::chain() if it fails.
+
+Mon Dec 26 20:11:01 1994  John Eaton  <jwe@schoch.che.utexas.edu>
+
+	* src/tree-expr.cc (eval): Only call multi-arg form of eval for
+	object_to_eval if necessary.
+
+Fri Dec 23 00:08:08 1994  John Eaton  <jwe@schoch.che.utexas.edu>
+
+	* src/lex.l: Don't increment promptflag anywhere.
+	(eat_continuation): New function.
+	(eat_whitespace): Handle embedded continuations.  Return nonzero
+	if whitespace consumed.
+	(handle_close_brace): Don't pass yytext.  Do pass flag indicating
+	whether whitespace follows brace.
+	(handle_identifier): Check for next token being `=' here.  Pass
+	flag indicating whether whitespace follows identifier.
+	(<MATRIX>{SNLCMT}*;{SNLCMT}*): Call eat_whitespace() here.
+	({IDENT}{S}*): Call eat_continuation() here.
+	(do_comma_insert_check): And here, but put a space back if
+	whitespace is gobbled.
+	(have_continuation, have_ellipsis_continuation): Decrement
+	promptflag here.
+
+Wed Dec 21 09:56:49 1994  John Eaton  <jwe@schoch.che.utexas.edu>
+
+	* src/tree-plot.cc (Fclearplot): Send "set nolabel" too.
+
+Mon Dec 19 17:50:15 1994  John Eaton  <jwe@schoch.che.utexas.edu>
+
+	* src/tree-plot.h, src/tree-plot.cc (subplot): Rename using to
+	using_clause to avoid new C++ keyword.  Rename title and style to
+	match.
+
+Fri Dec 16 00:09:01 1994  John Eaton  <jwe@schoch.che.utexas.edu>
+
+	* configure.in: Don't check for fpsetmask.
+	* src/sysdep.cc (sysdep_init): Don't check HAVE_FPSETMASK
+
+Thu Dec 15 00:28:52 1994  John Eaton  <jwe@schoch.che.utexas.edu>
+
+	* src/variables.cc (install_builtin_variables) [default_save_format]: 
+	Fix doc string.
+
+	* configure.in: Rework DEFAULT_DOT_O_FROM_DOT_F and
+	DEFAULT_DOT_C_FROM_DOT_F to avoid embedded newlines.
+	* Makeconf.in: Likewise.
+
+	* src/pager.cc (flush_output_to_pager): Close stream before
+	resetting signal handler.
+
+	* src/help.cc (Fhelp): Call fcn_file_in_path here.  Delete it too.
+	Print file name before help message.
+	* src/variables.cc (get_help_from_file): Don't call
+	fcn_file_in_path here.
+	(gobble_leading_white_space): Correctly grab only first set of
+	comments.
+	
+Wed Dec 14 11:42:13 1994  John Eaton  <jwe@schoch.che.utexas.edu>
+
+	* src/parse.y (pager_buf): Don't make it a fixed-size array.
+	* src/variables.cc (get_help_from_file): New function.
+	(gobble_leading_white_space): Return first block of comments for
+	later use as help string.
+	(looks_like_octave_copyright): New function.
+	(parse_fcn_file): Stash help from gobble_leading_white_space in
+	global help_buf.
+	* src/lex.l (grab_help_text): Don't overwrite help found by
+	gobble_leading_white_space.
+	(reset_parser): Delete help_buf.
+	* src/help.cc (Fhelp): Only try to get help from symbol records
+	that are defined.  If all else fails, try get_help_from_file.
+
+	* src/pager.cc (flush_output_to_pager): Re-initialize pager_buf
+	immediately after extracting message.  Delete message immediately
+	after sending it to the output stream.  Ignore interrupts while
+	running pager.
+
+	* octMakefile.in (clean-tar): Delete npsol.exp and any .m files
+	that are in the test/octave.test directory.
+	(install): Use $(INSTALL), not just install.
+
+	* src/lex.l (reset_parser): Don't reset input column or line
+	number if reading from a script file or a function file.
+	(is_keyword): Don't set line number to 1 if reading function file
+	or script file.
+	* src/variables.cc (gobble_leading_whitespace): Count lines.
+	* src/octave.cc (main): If reading file, set reading_script_file
+	and curr_fcn_file_name before calling get_input_from_file().
+
+	* src/tc-rep.cc (TC_REP::matrix_value): If implicit_str_to_num_ok,
+	convert empty string to empty matrix.
+
+Tue Dec 13 20:25:34 1994  Frederick (Rick) A Niles <niles@axp745.gsfc.nasa.gov>
+
+	* liboctave/dbleQR.cc, liboctave/dbleQRP.cc, liboctave/CmplxQR.cc,
+	liboctave/CmplxQRP.cc: Get economy-sized dimensions correct.
+
+	* libcruft/misc/i1mach.f, libcruft/misc/gen-d1mach.c,
+	libcruft/ranlib/ignuin.f: Prevent warnings about variable may be
+	used before defined.
+
+Tue Dec 13 11:07:34 1994  John Eaton  <jwe@schoch.che.utexas.edu>
+
+	* src/variables.cc: Change commas_in_literal_matrix to
+	whitespace_in_literal_matrix.
+	* src/user-prefs.h (user_preferences): Likewise.
+	* src/user-prefs.cc (init_user_prefs): Likewise.
+	(whitespace_in_literal_matrix): Likewise, rename function.
+	* src/lex.l: Likewise.
+	(nesting_level): Rename from in_brace_or_paren.
+	(<MATRIX>{SNLCMT}*\n{SNLCMT}*): Make separate case from
+	<MATRIX>{SNLCMT}*;{SNLCMT}.  Check nesting level to decide whether
+	to convert newline to semicolon.
+	({NL}, {CCHAR}): Check nesting level to decide whether to eat
+	or return newline. 
+	("("): Decrement promptflag.
+	(")"): Increment promptflag.
+
+Mon Dec 12 00:02:51 1994  John Eaton  <jwe@schoch.che.utexas.edu>
+
+	* scripts/Makefile.in, scripts/*/Makefile.in (install): Don't
+	depend on all.
+
+	* octMakefile.in: Put doc dir last.
+	* doc/Makefile.in (dir): New file.
+	(DISTFILES): Distribute dir.
+	(install): Install dir if it does not already exist in $(infodir).
+	Otherwise, print message.
+
+	* src/lex.l: Handle {IDENT}{S}*/= with yyinput() instead of
+	trailing context.
+	(handle_close_brace): New function.
+	(handle_number): New function.
+	(have_continuation, handle_ellipsis_continuation, handle_string):
+	New functions for handling strings and continuation lines in
+	string constants.
+	(eat_whitespace): New function eliminates need for NEW_MATRIX
+	start state.
+
+Sun Dec 11 15:53:03 1994  John Eaton  <jwe@schoch.che.utexas.edu>
+
+	* src/lex.l: Eliminate special case for eating whitespace when
+	start state is <TEXT_FCN>.
+	Merge three cases for handling `]' for <MATRIX> start state.
+
+Fri Dec  9 12:21:35 1994  John Eaton  <jwe@schoch.che.utexas.edu>
+
+	* src/lex.l: Handle `\' as a continuation character too.
+	Allow comments and blanks to follow continuation characters.
+	Improve handling of comments in matrices.  Create a few more
+	definitions for patterns.  Restructure source.
+
+	* configure.in: Check for bcopy too.
+
+	* configure.in (gxx_version): Don't use -fno-implicit-templates on
+	AIX systems with g++ 2.6.x.
+
+	* octave-bug.in: Check for CC: lines too.  Use case-insensitive
+	match for To: and Cc: lines.  Actually send file that has header
+	separator stripped.  Print list of CC: addresses too.
+
+	* src/input.cc (get_user_input): If user enters empty string,
+	return empty matrix or empty string.
+
+	* src/help.cc (Fhelp, Ftype, Fwhich): Don't allow lookup_by_name
+	to execute script files.
+
+Thu Dec  8 23:20:02 1994  John Eaton  <jwe@schoch.che.utexas.edu>
+
+	* src/tc-rep.cc (print): Don't check `print', which is not a
+	variable in this context.
+
+Wed Dec  7 10:52:59 1994  John Eaton  <jwe@schoch.che.utexas.edu>
+
+	* src/configure.in: Check for fpsetmask.
+	* src/sysdep.cc (sysdep_init): Check HAVE_FPSETMASK.  Only call it
+	if either __386BSD__ or __FreeBSD__ is defined.
+	Don't check __386BSD__ as a condition for including
+	floatingpoint.h.
+
+Mon Dec  5 12:29:07 1994  John Eaton  <jwe@schoch.che.utexas.edu>
+
+	* src/utils.cc: Update directory header macro names for autoconf 2.
+	* src/dirfns.cc: Likewise.
+
+Sun Dec  4 22:00:40 1994  John Eaton  <jwe@schoch.che.utexas.edu>
+
+	* octMakefile.in (DISTFILES): Don't distribute GCC.PATCH, since it
+	is not needed with gcc 2.6.3.
+
+	* configure.in: Really do disable IEEE floating point functions on
+	the Alpha.
+
+Wed Nov 30 11:42:44 1994  John Eaton  <jwe@schoch.che.utexas.edu>
+
+	* doc/FAQ.texi: New file.
+	* doc/Makefile.in: Create info, dvi, and ps files and distribute
+	them.
+
+	* Makefile.in (all): Expand initial message.
+
+Sat Nov 26 21:47:05 1994  John Eaton  <jwe@schoch.che.utexas.edu>
+
+	* src/octave.cc (Fcomputer): Always append ios::ends to ostrstream
+	before returning.
+
+Mon Nov 21 09:41:34 1994  John Eaton  <jwe@schoch.che.utexas.edu>
+
+	* src/lex.l: When start state is TEXT_FCN, gobble blanks with
+	pattern that matches only blanks before other patterns that can
+	also match just blanks.  Always check whether in_brace_or_paren
+	stack is empty before trying to use it.
+
+	* src/parse.y (make_multi_val_ret): Call constructor for
+	tree_simple_assignment_expression with correct number of args.
+
+	* scripts/plot/shg.m: New function.
+
+	* src/f-qpsol.cc (Fqpsol): Correct for changes in meaning of
+	nargin and the way args is loaded.
+	* src/f-npsol.cc (Fnpsol): Likewise.
+
+	* scripts/polynomial/roots.m: Return empty matrix for scalar or
+	empty matrix args.
+
+	* src/tree-plot.cc (gnuplot_terminal_type): New static variable.
+	(Fset): If this is a set term command, set gnuplot_terminal_type.
+	(open_plot_stream): Use gnuplot_terminal_type if it is set.
+
+	* src/idx-vector.cc (idx_vector::init): Don't check max value of
+	index vector against dimension here.  We may need to resize.
+	* src/tc-rep-idx.cc (do_scalar_index): Do check idx-vector max
+	value here.
+
+	* src/lex.l (is_plot_keyword): Don't set past_plot_range here.
+	Don't accept abbreviations for clear.
+	(handle_identifier): Don't call is_plot_keyword unless plotting.
+	Set past_plot_range here, before checking for plot option keywords.
+
+Fri Nov 18 17:25:59 1994  John Eaton  <jwe@schoch.che.utexas.edu>
+
+	* src/data.cc (Fis_struct): New function.
+
+Thu Nov 17 18:13:56 1994  John Eaton  <jwe@schoch.che.utexas.edu>
+
+	* octMakefile.in (DISTFILES): Distribute GCC.PATCH.  Don't
+	distribute LIBG++.PATCH.
+
+	* src/tree-plot.cc (Fclearplot): Turn off grid and reset
+	plot_line_count to zero.
+
+	* configure.in: Check for sys/resource.h.
+	Create scripts/strings/Makefile too.
+
+	* src/timefns.cc: Surround inclusion of sys/resource.h in extern "C".
+	Only include sys/resource.h if both HAVE_SYS_RESOURCE_H and
+	HAVE_GETRUSAGE are defined.
+
+Wed Nov 16 09:26:10 1994  John Eaton  <jwe@schoch.che.utexas.edu>
+
+	* scripts/plot/plot_opt.m: New function.
+	* scripts/plot/semilogx.m, scripts/plot/semilogx.m,
+	scripts/plot/loglog.m, scripts/plot/plot.m: Handle additional
+	args and format strings.
+	* scripts/plot/polar.m: Handle format arg.
+	* scripts/plot/polar_int_1.m, scripts/plot/polar_int_2.m: Extract
+	from polar_int.m.
+	* scripts/plot/plot_int_1.m, scripts/plot/plot_int_2.m: Extract
+	from plot_int.m.
+	* scripts/plot/plot_2_s_s.m, scripts/plot/plot_2_v_v.m,
+	scripts/plot/plot_2_m_m.m, scripts/plot/plot_2_v_m.m,
+	scripts/plot/plot_2_m_v.m: Handle format arg.
+
+	* scripts/strings/strcmp.m: Move here.
+	* scripts/general/strcmp.m: From here.
+
+	* src/xdiv.cc (result_ok): Issue warning instead of error if warn
+	is nonzero.
+
+Tue Nov 15 15:54:19 1994  John Eaton  <jwe@schoch.che.utexas.edu>
+
+	* src/tree-plot.cc (Fcloseplot): Clear title and labels too.
+
+	* src/help.cc (keywords): Add entries for all_va_args,
+	unwind_protect, unwind_protect_cleanup, and end_unwind_protect.
+
+	* liboctave/Makefile.in: Use -include for dependency files.
+	* src/Makefile.in: Likewise.
+
+Mon Nov 14 10:28:23 1994  John Eaton  <jwe@schoch.che.utexas.edu>
+
+	* src/tree-misc.cc (convert_to_const_vector): Resize vector before
+	returning.
+
+	* src/lex.l (plot_style_token): Also allow "steps", "boxes", and
+	"boxerrorbars".
+
+	* src/parse.y (UNWIND): Rename from UNWIND_PROTECT.
+	(CLEANUP): Rename from UNWIND_PROTECT_CLEANUP.
+	(command): Allow optsep after UNWIND and CLEANUP tokens.
+	* src/lex.l (is_keyword): Use new token names
+
+	* src/tree-const.h (tree_constant::all_va_args): New enum.
+	(tree_constant (tree_constant::all_va_args t)): New constructor.
+	(is_all_va_args): New function.
+	(is_empty, is_zero_by_zero, make_numeric_or_magic,
+	make_numeric_or_range_or_magic): Handle	all_va_args type.
+	* src/tc-rep.h (constant_type::all_va_args): New enum element.
+	(is_all_va_args): New function.
+	* src/tc-rep.cc (TC_REP::tree_constant_rep (TC_REP::constant_type),
+	TC_REP::print_code): Handle all_va_args.
+	* src/tree-misc.cc (tree_argument_list::convert_to_const_vector):
+	Handle all_va_args.
+	* src/tree-expr.cc (tree_index_expression::eval): After call to 
+	tree_argument_list::convert_to_const_vector (), check error_state.
+	(tree_simple_assignment_expression::eval): Likewise.
+	(tree_function::octave_all_va_args): New function.
+	* src/parse.y (ALL_VA_ARGS): New token.
+	(arg_list): Handle ALL_VA_ARGS.
+	* src/lex.l (is_keyword): Handle all_va_args.
+
+	* src/tree-expr.cc (tree_identifier::bump_value): Check read-only
+	status of sym before altering value.
+	(tree_prefix_expression::eval): Check error_state after call to
+	tree_identifier::bump_value ().
+
+	* src/variables.cc (bind_nargin_and_nargout): Don't make nargin
+	and nargout read only.
+
+	* scripts/strings: New subdirectory for string functions.
+	* scripts/Makefile.in (SUBDIRS): Add strings.
+	* scripts/strings/strcat.m: New function.
+
+Fri Nov 11 14:17:31 1994  John Eaton  <jwe@schoch.che.utexas.edu>
+
+	* src/load-save.cc (extract_keyword): Allow trailing blanks on the
+	input line. 
+
+Thu Nov 10 09:53:35 1994  John Eaton  <jwe@schoch.che.utexas.edu>
+
+	* scripts/general/reshape.m, scripts/image/ind2gray.m,
+	scripts/image/ind2gray.m, scripts/image/ind2rgb.m,
+	scripts/image/rgb2ind.m: unwind_protect do_fortran_indexing.
+	* scripts/general/strcmp.m: unwind_protect implicit_str_to_num_ok.
+	* scripts/miscellaneous/menu.m: unwind_protect page_screen_output.
+
+	* src/parse.y (UNWIND_PROTECT, UNWIND_PROTECT_CLEANUP): New tokens.
+	(command): Handle unwind-protect.
+	* src/lex.l (is_keyword): Handle unwind_protect,
+	unwind_protect_cleanup, and end_unwind_protect.
+	* src/tree-cmd.cc (tree_unwind_protect_command): New class, to
+	handle unwind-protect.
+
+	* src/token.h (end_tok_type): New field, end_unwind_protect.
+
+	* src/error.cc (verror): Flush pending output to pager here.
+	(error): Not here.
+
+	* src/tc-rep.cc (force_numeric): Don't jump to top level on error.
+	* src/tc-rep.cc, src/tc-rep-ass.cc, src/tc-rep-idx.cc: Check
+	error_state after calls to make_numeric* functions.
+
+	* src/f-lpsolve.cc: Define Flp_solve and Flp_solve_options, not
+	Flpsolve or Flpsolve_options.
+
+	* src/utils.cc (Ffile_in_path): Define Ffile_in_path, not
+	Ffile_in_pat.
+
+	* src/f-inv.cc: Add DEFUN for inverse.
+
+Wed Nov  9 09:30:15 1994  John Eaton  <jwe@schoch.che.utexas.edu>
+
+	* src/load-save.cc (read_mat_file_header): Check for mopt < 0 too.
+	Don't fail if reading mopt fails.
+	(save_mat_binary_data): Handle range data as a special case.
+	(get_default_save_format): Also accept `mat-binary' and
+	`mat_binary'.
+	(Fsave): Add ios::trunc to flags for opening output file.
+
+	* src/parse.y (func_def2): Stash function name before stashing
+	file name.
+
+	* src/utils.cc (fcn_file_in_path): Don't append `.m' if the name
+	already ends in `.m'.
+	(oct_file_in_path): Likewise, for `.oct'.
+
+	* src/error.cc (usage): Set error state to -1, so we get traceback
+	information after a call to usage.
+
+	* src/tree-expr.cc (stash_fcn_file_name): Store full name of the
+	file.
+
+	* scripts/*/*.m: Change messages to say `invalid' instead of
+	`illegal', since no laws are being broken by using these functions
+	incorrectly.
+
+	* src/timefns.cc (Fcputime): New function.
+	* configure.in: Check for getrusage.
+
+	* src/scripts/miscellaneous/tic.m: New function.
+	* src/scripts/miscellaneous/toc.m: New function.
+	* src/scripts/miscellaneous/etime.m: New function.
+	* src/scripts/miscellaneous/is_leap_year.m: New function.
+
+	* src/error.cc (Fwarning, Fusage): New functions.
+	* scripts/*/*.m: Use them instead of printing warning and usage
+	messages directly with disp, printf, or fprintf.
+
+	* src/file-io.cc (close_files): Check Pix before using.
+	(file_count): Delete unnecessary variable.  Instead, use
+	DLList::length to get the number of files in the list.
+
+	* src/sighandlers.cc (install_signal_handlers): Explicitly ignore
+	SIGPOLL and SIGIO.
+
+Tue Nov  8 15:26:50 1994  John Eaton  <jwe@schoch.che.utexas.edu>
+
+	* scripts/general/logspace.m: Lose fractional part of third arg.
+	Don't round, for compatibility with Matlab.
+	* scripts/general/linspace.m: Likewise.
+
+	* liboctave/CMatrix.cc (row_min, row_max, row_min_loc, row_max_loc):
+	Handle case of row containing only real elements.
+	(column_min, column_max, column_min_loc, column_max_loc):
+	Likewise, for columnwise operations.
+	* src/f-minmax.cc (two-complex-arg min, max): Handle case of both
+	columns containing only real elements.
+
+	* src/variables.cc (Fclear): Pass 0 to symbol_table::list() for
+	pats and npats.
+
+Mon Nov  7 20:22:36 1994  John Eaton  <jwe@schoch.che.utexas.edu>
+
+	* liboctave/dColVector.cc (operator +=): Don't return reference to
+	temporary.
+	(operator -=): Likewise.
+	* liboctave/CMatrix.cc (operator +=, operator -=): Likewise.
+
+Sun Nov  6 23:15:24 1994  John Eaton  <jwe@schoch.che.utexas.edu>
+
+	* octMakefile.in (DISTSUBDIRS): Don't use $(SUBDIRS) here.
+
+	* src/load-save.cc (Fsave): Open output file with mode ==
+	ios::out, not ios::in.
+
+Sat Nov  5 18:18:11 1994  John Eaton  <jwe@schoch.che.utexas.edu>
+
+	* configure.in (HAVE_SYS_SIGLIST): Check for sys_siglist variable,
+	even if it isn't declared in a system header.
+	* acconfig.h (HAVE_SYS_SIGLIST): Add #undef.
+	* src/sighandlers.cc (sys_siglist): Define our own if
+	HAVE_SYS_SIGLIST is not defined, not if SYS_SIGLIST_DECLARED is
+	not defined.
+
+	* src/tree-plot.cc (Fclearplot): New function.
+	(clg): Alias for clearplot.
+
+	* src/parse.y (CLEAR): New token.
+	(statement): Handle PLOT CLEAR as a special case.
+	* src/lex.l (is_plot_keyword): Handle CLEAR here too.
+
+Fri Nov  4 08:44:57 1994  John Eaton  <jwe@schoch.che.utexas.edu>
+
+	* All: Remove remaining #pragma interface/implementation statements.
+
+	* src/tree-plot.cc (subplot): Move actual code here from .h file.
+
+	* src/tree-expr.cc (tree_expression): Declare destructor virtual.
+	Delete unnecessary destructors.
+
+	* src/SLStack.h, src/SLStack.cc (operator =): Return reference to
+	SLStack, not void.
+
+	* src/f-qzval.cc (Fqzval): Rename from Fqzvalue.  Change Help
+	and usage messages too.
+
+	* scripts/plot/plot_int.m: Really figure out if there are any
+	imaginary parts.
+
+	* scripts/control/are.m: Fix typo.
+
+Thu Nov  3 18:44:11 1994  John Eaton  <jwe@schoch.che.utexas.edu>
+
+	* src/load-save.cc (save_ascii_data): Handle new arg,
+	strip_nan_and_inf.  Change callers.
+	(strip_infnan): New functions.
+	(save_three_d): Strip inf and nan values here too.
+
+	* src/tree-plot.h (subplot_using): New data have_values and val.
+	* src/tree-plot.cc (subplot_using::eval, subplot_using::values):
+	New functions.
+	(subplot_style::errorbars): New function.
+	(subplot::extract_plot_data, subplot::handle_plot_data): New functions.
+	(subplot::print): Improve handling of data.
+
+Wed Nov  2 08:11:08 1994  John Eaton  <jwe@schoch.che.utexas.edu>
+
+	* src/file-io.cc (do_scanf): If reading from stdin, flush stdout
+	first.
+
+	* configure.in: Leave some comments in the configure file.
+	Improve checking for termios.h, termio.h, and sgtty.h.
+
+	* src/variables.cc (install_builtin_variables): DEFVAR realmax and
+	realmin here.
+	* src/sysdep.cc: Instead of DEFUNing them here.
+
+	* src/variables.cc (do_who): Accept globbing patterns as args.
+	(maybe_list): Handle them here.
+
+	* src/symtab.cc (matches_patterns): New function.
+	(symbol_table::list, symbol_table::long_list): Accept list of
+	patterns, and use matches_patterns to see if the given string is a
+	match.  Change all callers.
+
+	* src/load-save.cc (read_binary_data): Don't fail if reading
+	name_len fails.
+	(do_load): Quit quietly if nothing is left to read.  Clean up doc
+	and name in all cases.
+
+Tue Nov  1 16:34:20 1994  John Eaton  <jwe@schoch.che.utexas.edu>
+
+	* src/lex.l (")"): Set cant_be_identifier to 1 here too.
+
+	* src/tree-plot.cc: Use abbreviations for gnpulot plot, splot,
+	replot, with, using, and title commands.
+
+Mon Oct 31 14:26:12 1994  John Eaton  <jwe@schoch.che.utexas.edu>
+
+	* src/variables.cc (Fclear): Look in global symbol table for
+	user-defined function names.
+
+	* src/load-save.cc (do_load): New function.
+	(Fload): Use it to avoid assigning streams.
+	(write_binary_header): New function.
+	(save_vars): New function.
+	(Fsave): Use it to avoid assigning streams.
+
+	* libcruft/linpack/zgesl.f (zgesl): Comment out unused varialbes
+	and statement functions.
+
+	* src/sysdep.cc (Fisieee): New function.
+	(Frealmax, Frealmin): Ditto.
+
+	* scripts/miscellaneous/version.m: New file.
+
+Fri Oct 28 14:52:08 1994  John Eaton  <jwe@schoch.che.utexas.edu>
+
+	* octMakefile.in (distclean): Also delete config.cache and
+	config.log.
+
+	* Makeconf.in (CPPFLAGS): Allow substitution.
+
+	* configure.in: Use AC_PREFIX_DEFAULT.
+
+	* configure.in: Use AC_CANONICAL_HOST instead of doing this
+	ourselves.
+
+	* install-sh: Rename from install.sh.
+	* octMakefile.in (DISTFILES): Distribute install-sh, not install.sh.
+
+Mon Oct 24 10:04:27 1994  John Eaton  <jwe@schoch.che.utexas.edu>
+
+	* octave-bug.in: Print message if bug report appears to have been
+	mailed successfully.  Otherwise, exit with error status.
+
+Fri Oct 21 14:05:10 1994  John Eaton  <jwe@schoch.che.utexas.edu>
+
+	* src/tc-rep-ass.cc (TC_REP::do_vector_assign (rhs, idx-vector)):
+	Handle all four cases of row/colum mixing.  Report an error if the
+	RHS is a matrix.
+
+	* src/tc-rep-idx.cc (TC_REP::do_index): Don't barf on indexing an
+	empty matrix with colon(s).
+	(TC_REP::do_scalar_index): Create index vector with  z_len = 1.
+	(TC_REP::do_matrix_index (Range, tree_constant)): Correctly handle
+	case of colon as second arg.
+
+	* octave-bug.in: Put mail commands in subshells so error message
+	really do go away.
+
+Thu Oct 20 11:05:36 1994  John Eaton  <jwe@schoch.che.utexas.edu>
+
+	* octave-bug.in: If passing $SUBJECT on the command line to a
+	mailer, quote it.  Don't assume /bin/mail takes any args other
+	than a recipient address.  Do the right thing if the To: line
+	changes.
+
+	* src/tc-rep.cc (TC_REP::rows, TC_REP::columns): Return -1 for
+	anything that doesn't really have rows or columns.
+
+	* src/tc-rep-idx.cc (fortran_style_matrix_index): Check max and
+	min index values.
+
+	* Makefile.in (FORCE): New phony target.  Used instead of .PHONY
+	to be portable.
+
+	* octave-bug.in: Try harder to mail the message.
+
+	* src/dynamic-ld.cc: Undefine true, false, and boolean after
+	including kpathse/pathsearch.h.
+
+	* src/sysdep.cc: Include <float.h>.
+
+Wed Oct 19 10:28:49 1994  John Eaton  <jwe@schoch.che.utexas.edu>
+
+	* configure.in (CXXLIB_LIST, FLIB_LIST, CXXLIB_PATH, FLIB_PATH):
+	Be careful not to match -l or -L in the middle of a word.
+
+	* src/f-minmax.cc: Correctly handle mixed scalar/matrix args.
+
+	* octMakefile.in: Rename from Makefile.in.
+	* Makefile.in: New file.  For `all' target, print message and
+	execute make again using octMakefile.  For other targets, just
+	execute make again using octMakefile.
+
+	* configure.in: Check for sys_siglist.
+	* src/sighandlers.h [! HAVE_SYS_SIGLIST]: Provide an external
+	declaration.
+	* src/sighandlers.cc (generic_sig_handler): New function, replaces
+	most individual signal handler functions.
+	(sigint_handler, sigpipe_handler): Restore signal handler before
+	doing anything else.
+	[! HAVE_SYS_SIGLIST] (sys_siglist): Provide our own definition.
+
+	* config.guess: Update from FSF sources.
+
+Tue Oct 18 23:36:24 1994  John Eaton  <jwe@schoch.che.utexas.edu>
+
+	* flibs.sh: Don't pass -Y P,path.  Instead, turn it into a series
+	of -L dir args.
+
+	* configure.in: Update for autoconf 2.0.
+	Delete support for --enable-run-in-place (it is too hard to make
+	this work reliably...).
+
+Mon Oct 17 11:40:49 1994  John Eaton  <jwe@schoch.che.utexas.edu>
+
+	* src/user-prefs.cc (init_user_prefs): Declare to return void,
+	not int.
+
+	* configure.in: Change quote characters around tr command.  Some
+	systems actually do need the []'s for ranges...
+
+Sun Oct 16 12:22:14 1994  John Eaton  <jwe@schoch.che.utexas.edu>
+
+	* src/tempname.c, src/tmpnam.c: New files.
+	* src/Makefile.in (SOURCES): Add them.
+	* src/dirfns.cc: Delete functions extracted from glibc.
+
+	* configure.in (localfcnfiledir, localoctfiledir, imagedir):
+	New variables.  Use them to define localfcnfilepath,
+	localoctfilepath, and imagepath.
+	* Makeconf.in: Substitute them here.
+
+	* src/utils.cc (get_fcn_file_names) [WITH_DLD]: Also match .oct
+	files.
+
+	* dld/find_exec.c (dld_find_executable): Don't be fooled by
+	directories or other special files in PATH.
+	(ABSOLUTE_FILENAME_P): Also return true if the name includes a
+	`/'.  This isn't necessarily an absolute path, but we will turn it
+	into one later.
+	* src/dynamic-ld.cc (octave_dld_init): Call make_absolute() on
+	value returned from dld_find_executable().
+
+Sat Oct 15 08:35:13 1994  John Eaton  <jwe@schoch.che.utexas.edu>
+
+	* flibs.sh: Undo previous change.  Only substitute spaces for
+	commas if it looks like we have output from xlf.  Handle -Y and
+	LD_RUN_PATH using gcc's -Xlinker option.
+
+	* Makefile.in (snapshot-version): Use move-if-change for version.h.
+
+Fri Oct 14 09:18:08 1994  John Eaton  <jwe@schoch.che.utexas.edu>
+
+	* scripts/image/Makefile.in (SOURCES): Don't forget octtopnm.c.
+
+	* Makefile.in (BINDISTFILES): Distribute octave-bug too.
+
+	* configure.in (imagepath): Install at same level as fcnfiledir,
+	not below it.
+
+	* doinstall.sh: Correctly extract version numbers that are not all
+	digits.  Also install images too.  Also install octaverc.  Ask
+	octave for the target host type.  Also create site/m and
+	site/oct directories.  Also install octave-bug.
+
+	* scripts/image/Makefile.in (DISTFILES): Distribute demo image
+	files too.
+
+	* doinstall.sh: Update for new directory organization.
+
+	* src/variables.cc (subst_octave_home): Make it work for multiple
+	substitutions.
+
+	* flibs.sh: Handle -Y P,path:of:lib:dirs output from f77 on Solaris.
+
+	* src/strfns.cc (Ftoascii): New file, new function.
+	(Fisstr, Fsetstr): Move here, fromd ata.cc.
+
+	* src/Makefile.in (SOURCES): Include it.
+
+Thu Oct 13 11:58:03 1994  John Eaton  <jwe@schoch.che.utexas.edu>
+
+	* scripts/signal/filter.m: Postpad `b' before reshaping.
+
+	* mkinstalldirs: New file.
+	* Makefile.in: Distribute it, don't make mkpath.
+	* All Makefile.in files: Use it instead of mkpath.
+
+	* src/utils.cc (Foctave_tmp_file): New function.
+
+	* src/utils.cc (undo_string_escape): Move here from tc-rep.cc,
+	rename from undo_string_escapes, and make extern.
+	(undo_string_escapes): New function, for undoing a whole string.
+	(Fundo_string_escapes): New function.
+
+	* scripts/miscellaneous/dump_prefs.m,
+	scripts/miscellaneous/dump_1_pref.m: New functions.
+	* scripts/miscellaneous/bug_report.m: Record user preferences in a
+	file and pass the name of the file to octave-bug.  Use
+	octave_tmp_file to generate tmp file name.
+	* octave-bug.in: Accept a final file-name arg as a file that
+	contains a list of user-preferences.
+
+Wed Oct 12 09:09:37 1994  John Eaton  <jwe@schoch.che.utexas.edu>
+
+	* configure.in: Redefine archlibdir and octfiledir so that oct
+	and exec directories are at the same level as the m directory.
+	Redefine localoctfilepath so that site/oct is a the same level as
+	site/m.
+
+	* Makeconf.in (F77): Substitute it.
+	(BUG_CFLAGS, BUG_CXXFLAGS): New vars.
+	* configure.in:
+	* scripts/bug_report.m: New file.
+	* octave-bug.in: New file.
+	* Makefile.in (DISTFILES): Distribute octave-bug.in.
+	(dirs_to_make): Add $bindir.
+	(all): Add octave-bug.
+	(octave-bug): New target.
+	(install): Install it.
+	* src/defaults.h.in: Add defines for bindir.
+	* src/Makefile.in (defaults.h): Substitute it.
+	* src/variables.cc (octave_bin_dir): New function.
+	* src/octave.cc (initialize_globals): Also add $bindir to path.
+
+	* configure.in: Check for gettimeofday. Add AC_TIME_WITH_SYS_TIME.
+	* src/systime.h: New file.
+	* src/timefns.h: Use gettimeofday if available.
+	* src/Makefile.in (INCLUDES): Add systime.h.
+
+Mon Oct 10 14:34:56 1994  John Eaton  <jwe@schoch.che.utexas.edu>
+
+	* src/octave.cc (verbose_flag): New global variable.
+	(long_opts): Add "verbose".
+	(usage_string): Update.
+	(main): Set verbose_flag if given --verbose.
+	(execute_startup_files): Don't print messages about reading
+	startup files if verbose_flag is not set.
+
+	* src/tree-expr.cc (apply_mapper_fcn): Handle scalars as a special
+	case, but then just try to convert other arg types to a matrix.
+
+	* src/f-det.cc (Fdet): Check if arg is complex type, but not
+	necessarily a complex matrix.
+	* src/f-schur.cc (Fschur): Likewise, and also for real types.
+	* src/f-lu.cc (Flu): Likewise.
+	* src/f-minmax.cc (Fmin, Fmax): Likewise.
+
+Sun Oct  9 21:04:17 1994  John Eaton  <jwe@schoch.che.utexas.edu>
+
+	* src/tc-rep-ass.cc (TC_REP::assign): If LHS is undefined, don't
+	try to force it to be a numeric type.
+
+Fri Oct  7 09:05:10 1994  John Eaton  <jwe@schoch.che.utexas.edu>
+
+	* configure.in: Define LD_STATIC_FLAG for Alpha OSF/1 1.3 systems.
+
+	* src/tc-rep-idx.cc (TC_REP::do_index): Only work for numeric
+	types, but don't panic if conversion doesn't work.
+	* src/tc-rep-ass.cc (TC_REP::assign): Likewise.
+
+	* src/tc-rep.cc (TC_REP::gripe_wrong_type_arg): New function.
+
+	* src/gripes.cc (gripe_wrong_type_arg): Define here.
+	* src/tree-const.cc: Not here.
+
+Wed Oct  5 16:24:38 1994  John Eaton  <jwe@schoch.che.utexas.edu>
+
+	* src/file-io.cc (do_scanf): Don't panic if string is NULL.
+
+	* src/gripes.cc (gripe_unrecognized_float_fmt): New function.
+	(gripe_2_or_3_dim_plot): Ditto.
+	(gripe_unrecognized_data_fmt): Ditto.
+	(gripe_data_conversion): Ditto.  Use it in load-save.cc data
+	conversion routines that aren't implemented yet.
+
+	* src/load-save.cc (do_double_format_conversion): Don't panic on
+	unrecognized floating point formats.
+	(do_float_format_conversion): Likewise.
+	(write_doubles): Don't panic if data format is unrecognized.
+	(do_save): Likewise
+	(install_loaded_variable): Don't panic for unknown symbol types.
+	(read_binary_data): Also check error_state after calls to read_doubles.
+
+	* src/symtab.cc (symbol_table::rename): Don't panic if symbol
+	can't be renamed.
+	* src/parse.y (return_list): Abort parse if renaming results in an
+	error.
+
+	* src/tree-misc.cc (tree_if_command::eval): Don't panic if all
+	(all (cond)) is not a scalar.
+
+	* src/tree-expr.cc (tree_unary_expression::print_code): Don't
+	panic if expression type is unknown.
+
+	* src/tree-plot.cc (tree_plot_command::eval): Don't panic if plot
+	is not 2 or 3 dimensional.
+	(tree_plot_command::print_code, subplot::print, save_in_tmp_file):
+	Likewise.
+
+	* src/variables.cc (alias_builtin): Panic with better message.
+	(subst_octave_home): Don't panic if OCTAVE_HOME doesn't contain
+	OCTAVE_PREFIX.
+
+	* src/tc-inlines.h (REP_RHS_MATRIX): Use panic_impossible()
+	instead of abort().
+	(REP_ELEM_ASSIGN, CRMATRIX): Likewise.
+
+	* src/data.cc (Fdiag, make_diag): Do work here.
+	* src/tc-rep.cc (TC_REP::diag, make_diag): Not here.
+	* src/tc-rep.h (TC_REP::diag): Delete.
+	* src/tree-const.h (tree_constant::diag): Delete.
+
+Tue Oct  4 08:35:37 1994  John Eaton  <jwe@schoch.che.utexas.edu>
+
+	* src/f-fft.cc (Ffft): Correctly set n_points for row vectors if
+	nargin == 1.
+	* src/f-ifft.cc (Fifft): Likewise.
+
+	* src/load-save.cc (Fsave): Declare file and stream static.
+
+Mon Oct  3 10:40:50 1994  John Eaton  <jwe@schoch.che.utexas.edu>
+
+	* src/tree-expr.cc (octave_va_arg): Correct arg count and index to
+	match recent change to arg passing/nargin.
+	(define_param_list): Always set num_named_args = param_list->length ().
+
+	* readline/Makefile.in (install): Don't install libreadline.a by
+	default.
+	(uninstall): Now no need to delete it.
+
+	* configure.in (localfcnfilepath, localoctfilepath): Change to 
+	match organization of system fcn and oct files, and enable
+	recursive searching in both.  Enable recursive searching in
+	$(octfiledir).
+	(includedir): Change to $(prefix)/include/octave.
+
+Sun Oct  2 10:14:18 1994  John Eaton  <jwe@schoch.che.utexas.edu>
+
+	* configure.in: For now, disable IEEE floating point functions on
+	the Alpha.  This is braindead, but at least prevents divide by
+	zero crashes...
+
+	* src/file-io.cc (fseek_internal): Use values for origin that
+	match what we use to define SEEK_SET, SEEK_CUR, and SEEK_END in
+	variables.cc.
+
+	* dld: Merge various changes for Linux from dld 3.2.4 that is
+	being distributed with jacal.
+
+	* src/file-io.cc (fwrite_internal): Correct indexing of args.
+
+	* src/tree-expr.cc (apply_mapper_fcn): New function.
+	(tree_builtin::eval): Use it instead of tree_constant::mapper().
+	* src/tree-const.h (tree_constant::mapper): Delete.
+	* src/tc-rep.cc, src/tc-rep.h (TC_REP::mapper): Delete.
+
+	* src/data.cc (Fcumprod, Fcumsum, Fprod, Fsum, Fsumsq): Do work here.
+	* src/tc-rep.cc (TC_REP::cumprod, TC_REP::cumsum, TC_REP::prod,
+	TC_REP::sum, TC_REP::sumsq): Not here.  Delete. 
+	* src/tc-rep.h (TC_REP::cumprod, TC_REP::cumsum, TC_REP::prod,
+	TC_REP::sum, TC_REP::sumsq): Delete
+	* src/tree-const.h (tree_constant::cumprod, tree_constant::cumsum,
+	tree_constant::prod, tree_constant::sum, tree_constant::sumsq):
+	Delete.
+
+	* tree-const.h: Don't check gcc minor version number.
+	* tc-rep.h: Likewise.
+
+	* src/file-io.h (class file_info): Declare here.
+	* src/file-io.cc: Not here.
+
+	* configure.in (LIBOCTDLD, LIBDLD): Remove ../ prefix.
+	* Makefile.in (distclean, realclean): Don't remove *.a.
+	* src/Makefile.in (OCTAVE_LIBS): Correct directory spec for libs.
+	Build, install, and clean liboctdld.a, not ../liboctdld.a.
+	* dld/Makefile.in: Build, install, and clean libdld.a, not ../libdld.a.
+	* info/Makefile.in: Likewise, for libinfo.a.
+	* kpathsea/Makefile.in: Likewise, for libkpathsea.a.
+	* libcruft/Makefile.in: Likewise, for libcruft.a.
+	* liboctave/Makefile.in: Likewise, for liboctave.a.
+	* readline/Makefile.in: Likewise, for libreadline.a.
+
+	* configure.in (gxx_version): Require 2.6.x or later.  Don't
+	define EXTERNAL_TEMPLATES.  Do define NO_IMPLICIT_TEMPLATES.
+	* liboctave/Array-C.cc, liboctave/Array-d.cc, src/Array-tc.cc,
+	src/DLList-fi.cc src/SLStack-tok.cc, src/SLStack-ue.cc,
+	src/SLStack-tm.cc, src/SLStack-pc.cc, src/SLStack-i.cc,
+	src/SLList-tc.cc, src/SLStack-sym.cc, src/SLStack-ui.cc,
+	src/SLList-misc.cc, src/SLList-expr.cc, src/SLList-plot.cc,
+	src/Map-tc.cc: New files.  Instantiate templates here.
+	* libocave/Array.cc, src/Map.cc, src/Stack.cc, src/SLStack.cc:
+	Not here.  Remove #pragma implementation hack.
+	* liboctave/Array.h, src/Stack.h, src/Map.h, src/SLStack.h: Remove
+	#pragma interface hack.
+	* Makeconf.in: Substitute NO_IMPLICIT_TEMPLATES, not
+	EXTERNAL_TEMPLATES.
+	(ALL_CXX_FLAGS, UGLY_ALL_CXX_FLAGS): Use $(NO_IMPLICIT_TEMPLATES),
+	not $(EXTERNAL_TEMPLATES).
+	* acconfig.h: Remove USE_EXTERNAL_TEMPLATES #undef.
+	* src/Makefile.in (XALL_CXX_FLAGS): Delete -fno-implicit-templates.
+	(TI_SRC, TI_OBJ): New variables.
+	(libtinst.a): New target.
+	* liboctave/Makefile.in (TI_SRC): New variable.
+	(SOURCES): Add it to list.
+
+Fri Sep 30 09:52:15 1994  John Eaton  <jwe@schoch.che.utexas.edu>
+
+	* src/Makefile.in: Automatically generate more lists.
+	Use := in more places.
+	* src/Array-C.cc src/Array-d.cc src/Array-tc.cc src/Map-tc.cc
+	src/Stack-i.cc src/SLStack-pc.cc src/SLStack-sym.cc
+	src/SLStack-tok.cc src/SLStack-tm.cc src/SLStack-ue.cc:
+	New template instantiation files.
+	* configure.in: If using gcc 2.6.x or later, use
+	-fno-implicit-templates instead of -fexternal-templates.
+
+	* src/tc-inlines.h: Rename from tc-inlines.cc.
+
+	* src/parse.y (looking_at_indirect_ref): New global flag, for
+	parser feedback.
+	(tree_indirect_ref_type): New token type.
+	(TEXT_ID): New token.
+	(indirect_ref): New non-terminal.
+	(make_index_expression): New function.
+	(variable): Use it to build variable from indirect_ref, not just
+	identifier.
+
+	* src/lex.l (handle_identifier): Handle identifiers differently if
+	looking at an indirect reference.  Add `.' to list of other ops.
+
+	* src/tree-expr.cc (tree_identifier::do_lookup): Handle new
+	exec_script arg.
+	(tree_identifier::assign): New functions for assignment to a
+	strucutre element.
+	(print_constant): New function.
+	(tree_identifier::eval, tree_indirect_ref::eval): Use it.
+	(
+	
+	* src/tree-expr.h (tree_indirect_ref): New class for handling
+	structure references.
+	(tree_expression::is_indirect_ref): New virtual function.
+	(tree_fvc::lookup_map_element): New virtual function.
+	(tree_index_expression, tree_simple_assignment_expression):
+	Add new constructors for handling indirect references.
+
+	* src/oct-map.h: New file, for class managing Octave's
+	structure/map type.
+
+	* src/tree-misc.cc (tree_global::eval): Don't allow individual
+	structure elements to be tagged global.
+
+	* src/tc-rep.h (tree_constant_rep): Add new field, a_map, and a
+	new type_tag, map_constant.
+	* src/tree-const.cc (tree_constant::is_map): New function.
+	* src/tree-const.cc (tree_constant::map_value,
+	tree_constant::assign_map_element, tree_constant::make_unique,
+	tree_constant::lookup_map_element,
+	tree_constant::make_unique_map_element): New functions.
+
+	* src/Map.h (CHNode::CHNode): Copy key.
+	(CHNode::~CHNode): Delete it.
+	(CHMap::contents): Don't declare return value const.
+
+	* src/tc-inlines.cc: Move some macros here from tc-rep.cc so they
+	can appear in one place and be shared by tc-rep-idx.cc,
+	tc-rep-ass.cc, and tc-pre.cc.
+
+	* src/tc-rep-idx.cc, src/tc-rep-ass.cc: New files, extracted from
+	tc-rep.cc to make compilation of tc-rep stuff faster and require
+	less memory.
+
+	* src/variables.cc (Fwhos): Correctly insert "-long" into arg list
+	for Fwho.
+
+Mon Sep 26 12:59:55 1994  John Eaton  <jwe@schoch.che.utexas.edu>
+
+	* test/Makefile.in (OCTAVE_SCRIPT_PATH): Append `//' for recursive
+	searching.
+
+Fri Sep 23 07:53:13 1994  John Eaton  <jwe@schoch.che.utexas.edu>
+
+	* scripts/plot/bar.m: Don't return values if nargout == 0.
+	* scripts/plot/hist.m: Likewise.
+	* scripts/plot/stairs.m: Likewise.
+
+	* src/tree-plot.cc (Fishold): New function.
+	(plot_line_count, parametric_plot, clear_before_plotting):
+	Declare static.
+
+	* src/f-fft.cc (Ffft): Handle row vector as a special case.
+	* src/f-ifft.cc (Fifft): Ditto.
+
+Thu Sep 22 13:20:53 1994  John Eaton  <jwe@schoch.che.utexas.edu>
+
+	* src/help.cc (print_symbol_type): New function, extracted from Fwhich.
+	(Fwhich): Use it.
+	(Fhelp): Use it to print type info before help message.
+
+	* src/dynamic-ld.cc: Hide all DLD-specific functions behind
+	#ifdef WITH_DLD.
+
+	* scripts/startup: New directory.
+	* scripts/startup/Makefile.in: New file.
+	* scripts/startup/octaverc: New file.  Don't overwrite existing
+	file when nstalling.
+	* configure.in: Generate Makefile in scripts/startup.
+	* scripts/Makefile.in (SUBDIRS): Add startup.
+	* src/defaults.h.in (OCTAVE_STARTUPFILEDIR): New macro.
+	* src/variables.cc (get_site_defaults): Look for octaverc in
+	OCTAVE_STARTUPFILEDIR.
+
+	* configure.in (fcnfiledir): Make it end in `//'.
+
+	* src/error.cc (Ferror): Correct indexing error.
+
+	* src/Map.h, src/Map.cc: New files implementing associative arrays.
+	* src/Makefile.in: Include them in the list of files to distribute
+	and compile.
+
+Wed Sep 21 09:50:19 1994  John Eaton  <jwe@schoch.che.utexas.edu>
+
+	* Makefile.in (DISTSUBDIRS): Add dld to the list.
+
+	* scripts/plot/hist.m: New function file.
+
+	* src/tc-rep.cc (TC_REP::do_matrix_index (tree_constant,
+	tree_constant): For case of scalar as first arg, move call to
+	index check to the TC_REP::do_matrix_index (int, tree_constant)
+	function.
+	(TC_REP::do_matrix_index (int, tree_constant): Be compatible with
+	Matlab for indexing of the form row_vector (0, :).
+	(TC_REP::do_matrix_index (tree_constant, int): Likewise, for
+	indexing of the form col_vector (:, 0).
+	(TC_REP::do_matrix_assignment): Similar changes for assignment.
+
+Tue Sep 20 17:48:39 1994  John Eaton  <jwe@schoch.che.utexas.edu>
+
+	* src/parse.y (return_list, return_list1): New nonterminals.
+	Rename from func_def1a.  Handle variable number of return values.
+	* src/tree-expr.h (tree_function::vr_list): New field.
+	* src/tree-expr.cc (delete_vr_list): New function.
+	(tree_function::octave_vr_val, tree_function::takes_var_return):
+	New functions, for variable return lists.
+	(tree_function::define_ret_list, tree_function::eval): Handle vr_list.
+	(Fvr_val): New function.
+	* src/tree-misc.h (tree_va_return_list): New list class.
+	* src/tree-misc.cc (tree_parameter_list::convert_to_const_vector):
+	Take pointer to tree_va_return_list as arg, and append the values
+	found there.
+
+	* src/arith-ops.cc (mx_stupid_bool_op): Correctly handle empty
+	matrices for == and != ops.
+
+	* src/variables.cc (Fis_global): Check args(0), not args(1).
+	(Fexist): Likewise.
+	(install_builtin_mapper): Set nargin_max to 1, not 2.
+
+	* src/dynamic-ld.cc (octave_dld_init): Make raw program name
+	absolute before calling dld_find_executable.
+
+	* src/octave.cc (initialize_error_handlers): New function.
+	(main): Call init_user_prefs and initialize_error_handlers.
+	Rearrange order of calls to initialization functions.
+
+	* src/user-prefs.cc (init_user_prefs): New function.
+
+	* src/data.cc (map): Correct condition for assert ().  Correct
+	handling of empty args.
+
+	* src/f-lsode.cc src/f-dassl.cc src/f-quad.cc src/f-npsol.cc
+	src/f-fsolve.cc: Pass correct number of args to
+	takes_correct_nargs ().
+	* src/variables.cc (takes_correct_nargs): Use %s, not %c in format
+	string.
+
+	* src/f-ifft2.cc src/f-expm.cc src/f-det.cc src/f-svd.cc
+	src/f-syl.cc src/f-schur.cc src/f-qzval.cc src/f-qr.cc
+	src/f-pinv.cc src/f-lu.cc src/f-log.cc src/f-inv.cc src/f-hess.cc
+	src/f-eig.cc src/f-chol.cc src/f-balance.cc src/f-lsode.cc
+	src/f-dassl.cc src/f-quad.cc src/f-npsol.cc src/f-fsolve.cc:
+	Correctly handle return value from empty_arg ().
+	* src/utils.cc (empty_arg): Clarify usage, correct return value if
+	arg is empty but no message is printed.
+
+	* src/Makefile.in (dist): Delete builtins.cc too.
+
+	* configure.in (DYNAMIC_LD_OBJ): Delete.
+	* src/Makefile.in (OBJECTS): Don't substitute DYNAMIC_LD_OBJ.
+	Always include dynamic-ld.o.
+
+	* configure.in: Generate Makefile in scripts/elfun and
+	scripts/specfun.
+
+	* Makeconf.in (version): Use `:=' and `$(shell )', not just `='
+	and backticks, so we only extract the version number once.
+
+Mon Sep 19 09:04:30 1994  John Eaton  <jwe@schoch.che.utexas.edu>
+
+	* src/tc-rep.h (represent_strings_with_doubles): New field in
+	tree_constant_rep class.
+
+	* tree-misc.cc (tree_argument_list::convert_to_const_vector):
+	Don't allocate extra arg for function name.
+	* sysdep.cc, pr-output.cc, input.cc, file-io.cc, error.cc,
+	tc-rep.cc, tree-expr.cc, f-svd.cc, f-sort.cc, f-schur.cc,
+	f-rand.cc, f-qzval.cc, f-quad.cc, f-qr.cc, f-qpsol.cc, f-pinv.cc,
+	f-npsol.cc, f-minmax.cc, f-lu.cc, f-lsode.cc, f-log.cc, f-inv.cc,
+	f-ifft2.cc, f-ifft.cc, f-hess.cc, f-givens.cc, f-fsolve.cc,
+	f-fft2.cc, f-fft.cc, f-expm.cc, f-eig.cc, f-det.cc, f-dassl.cc,
+	f-colloc.cc, f-chol.cc, f-balance.cc, f-syl.cc, variables.cc,
+	tree-misc.cc, data.cc, octave.cc, utils.cc, defun-int.h:
+	Change meaning and usage of nargin and args.length() to cope with
+	above change.  This makes nargin mean the same thing in built-in
+	functions as it does in M-files.
+
+Sat Sep 17 09:29:08 1994  John Eaton  <jwe@schoch.che.utexas.edu>
+
+	* scripts/general/nargchk.m: New function.
+
+Fri Sep 16 08:48:13 1994  John Eaton  <jwe@schoch.che.utexas.edu>
+
+	* Makeconf.in (FLIB_LIST, FLIB_PATH, CXXLIBS, CXXLIB_LIST,
+	CXXLIB_PATH): Set these.
+
+	* cxxlibs.sh: New file.
+	* configure.in: Use it to determine extra C++ libraries to link
+	to.  Use sed magic to extract list of libraries and directories
+	from FLIBS and CXXLIBS.
+	* Makefile.in: (DISTFILES): Include cxxlibs.sh.
+
+	* configure.in: Change AC_VERBOSE messages to match
+	autoconf-generated messages.
+
+	* src/dynamic-ld.cc (dld_octave_resolve_reference): Search library
+	path for list of files to link.
+
+	* src/utils.cc (pathstring_to_vector): Un-#if 0 it.
+
+	* Makefile.in: Install liboctdld.a if not linking to it.
+	(defaults.h): Substitute FLIB_LIST, FLIB_PATH, CXXLIB_LIST,
+	CXXLIB_PATH.
+
+Thu Sep 15 09:31:29 1994  John Eaton  <jwe@schoch.che.utexas.edu>
+
+	* Makeconf.in (LD_STATIC_FLAG): Actually substitute LD_STATIC_FLAG.
+	(ALL_LDFLAGS): Include it here.
+
+	* configure.in: Check for signgam declaration in math.h
+	* acconfig.h: Add #undef for SIGNGAM_DECLARED.
+	* src/mappers.h: Provide our own declaration of signgam if
+	HAVE_LGAMMA but not SIGNGAM_DECLARED.
+
+Wed Sep 14 11:28:09 1994  John Eaton  <jwe@schoch.che.utexas.edu>
+
+	* src/dynamic-ld.cc (mangled_octave_builtin_name,
+	mangle_octave_oct_file_name, load_octave_builtin,
+	load_octave_oct_file, init_dynamic_linker): New functions.
+	[WITH_DLD] (octave_dld_init, dld_octave_resolve_reference,
+	dld_octave_builtin, dld_octave_oct_file): New functions to handle
+	details of dynamic linking using dld.
+
+	* src/variables.cc (load_fcn_from_file) [WITH_DLD]: Handle looking
+	for .oct file to link at run time.
+
+	* src/tree-expr.cc (tree_builtin::tree_builtin): Always init my_name.
+	(tree_builtin::eval): If no definition, try to load one using
+	load_octave_builtin().
+
+	* src/octave.cc (main): Initialize dynamic linking here.
+
+	* src/defun-int.h (DEFINE_FUN_STRUCT, DEFINE_FUN_STRUCT_FUN):
+	New macros.
+	* src/defun-dld.h (DEFUN_DLD_BUILTIN): Rename from DEFUN_DLD and
+	handle case of WITH_DLD && OCTAVE_LITE && MAKE_BUITLINS.
+	(DEFUN_DLD): Use this for external user-supplied functions that
+	are intended to be dynamically linked.
+
+	* configure.in: Handle --enable-lite-kernel.  Call AC_SUBST for
+	use_dld and lite_kernel.  Define LIBOCTDLD unless doing dynamic
+	linking and small kernel requested.
+	* acconfig.h: Add #undefs for OCTAVE_LITE and SMART_PUTENV.
+	* Makeconf.in: Define WITH_DLD from @use_dld@ and OCTAVE_LITE from
+	@lite_kernel@.
+
+	* src/octave.cc (Fsystem): Rename from shell_cmd.
+	(Fshell_cmd): Define as alias to Fsystem.
+
+Mon Sep 12 20:19:20 1994  John Eaton  <jwe@schoch.che.utexas.edu>
+
+	* src/mappers.cc: Include error.h and math.h.
+
+Sat Sep 10 11:49:11 1994  John Eaton  (jwe@schoch.che.utexas.edu)
+
+	* Makefile.in: Clean up rules for making distributions.
+	(DISTDIRS): Distribute kpathsea
+
+Fri Sep  9 08:46:03 1994  John Eaton  (jwe@schoch.che.utexas.edu)
+
+	* liboctave/dMatrix.cc (pseudo_inverse): New function.
+	* liboctave/CMatrix.cc (pseudo_inverse): New function.
+	* src/f-pinv.cc: New file, for pinv().
+	* src/Makefile.in (DLD_SRC): Add f-pinv.cc.
+	(DLD_OBJ): Add f-pinv.o.
+	* scripts/linear-algebra/pinv.m: Delete.
+
+	* configure.in: Define and substitute $imagepath.
+	* src/Makefile.in: Substitute OCTAVE_IMAGEPATH.
+	* src/defaults.h.in: Add OCTAVE_IMAGEPATH.
+	* src/variables.cc (install_builtin_variables): Define IMAGEPATH.
+	* src/user-prefs.cc (image_path): New function.
+	* Makeconf.in (imagepath): substitute it.
+
+	* src/octave.cc (initialize_globals): Ensure that $archlibdir is
+	in the user's PATH.
+
+	* utils.cc (search_path_for_file, Ffile_in_path): New functions.
+
+	* configure.in: Append `//' to $fcnfiledir, for recursive
+	searching.
+	(AC_OUTPUT): Edit makefiles in script subdirectories too.
+
+	* scripts: Regroup function files in the following directories,
+	each with its own Makefile.in:
+
+           image           plot        signal          control
+	   linear-algebra  polynomial  special-matrix  general
+           miscellaneous   set         statistics
+
+	* src/help.cc (simple_help): Use kpathsea functions to find files
+	in path.
+	* src/utils.cc (get_fcn_file_names): Likewise.
+	(pathstring_to_vector): #if 0 out.
+
+Thu Sep  8 16:59:42 1994  John Eaton  (jwe@schoch.che.utexas.edu)
+
+	* src/Makefile.in (OCTAVE_LIBS): Include ../libkpathsea.a.
+	* configure.in: Include configure stuff for kpathsea here too.
+	* Makefile.in (kpathsea): New target.
+	* src/utils.cc (file_in_path): Use kpathsea function instead of
+	doing our own searching.
+	* kpathsea/Makefile.in (lib): Define as ../libkpathsea.a, not just
+	kpathsea.a.
+
+Wed Sep  7 09:39:20 1994  John Eaton  (jwe@schoch.che.utexas.edu)
+
+	* src/user-prefs.cc (check_str_pref): Fix comment.
+
+	* src/utils.cc (empty_arg): Check flag == 0, not is_empty > 0.
+
+	* src/f-fft2.cc (Ffft2): New file and function.
+	* src/f-ifft2.cc (Fifft2): Likewise.
+	* src/fft2.m, src/ifft2.m: Delete.
+
+	* src/f-fft.cc (Ffft): Handle second arg.  Depending on value of
+	propagate_empty_matrices, return empty matrix for empty arg.
+	* src/f-ifft.cc (Fifft): Likewise.
+
+	* liboctave/CMatrix.cc (fourier2d, ifourier2d): New functions.
+	* liboctave/dMatrix.cc (fourier2d, ifourier2d): New functions.
+
+	* src/tree-misc.cc (eval (int, int)): New function.
+	* src/octave.cc (eval_string, Feval): Handle multiple output args.
+
+	* src/error.cc (suppress_octave_error_messages): New global.
+	(error): Check it to see if messages should be printed.
+	* src/octave/cc (Feval): Set it if `catch' arg is supplied.
+
+	* src/octave.cc (Feval): Handle second `catch' arg.
+
+	* src/load-save.cc (read_mat_file_header): Init swap to zero.
+
+	* doc/octave.1: New simple man page.
+	* doc/Makefile.in: Distribute and install it.
+
+	* src/variables.cc (Fclear): Handle -x option for exclusive clear.
+
+Tue Sep  6 16:00:34 1994  John Eaton  (jwe@schoch.che.utexas.edu)
+
+	* src/load-save.cc (save_mat_binary_data): New function.
+	(do_save): Handle LS_MAT_BINARY.
+	(Fsave): Handle -mat-binary.
+	(Changes from G. Beyerle <gbeyerle@AWI-Potsdam.DE>.)
+
+	* src/variables.cc (subs_octave_home, octave_arch_lib_dir):
+	New functions.
+	(octave_home, octave_info_dir, octave_lib_dir, default_path):
+	Fix for new directory organization.
+
+	* src/tree-expr.h (tree_multi_val_ret): New class to serve as a
+	base for objects that can produce more than one value when
+	evaluated.
+	(tree_fvc, tree_index_expression, tree_multi_assignment_expression):
+	Use it as a base. 
+
+	* src/parse.y (make_multi_val_re): New function.
+	(expression): Use it to construct multiple value assignments.
+
+	* configure.in, Makefile.in, Makeconf.in, src/defaults.h.in:
+	Revamp directory structure used for installed versions of Octave.
+
+	* src/f-schur.cc (Fschur): Correct argument count in error message.
+
+	* src/octave.cc (Fcomputer): New function.
+	* scripts/computer.in: Delete.
+	* scripts/Makefile.in: Don't edit or distribute computer.in.
+
+Thu Sep  1 09:02:06 1994  John Eaton  (jwe@schoch.che.utexas.edu)
+
+	* src/variables.cc (install_builtin_variables): New builtin
+	variable, OCTAVE_VERSION.
+
+Tue Aug 30 17:18:14 1994  John Eaton  (jwe@schoch.che.utexas.edu)
+
+	* tree-expr.cc: Include string.h
+	(tree_matrix::eval): Fix handling of strings to work as in 1.0.
+
+Mon Aug 29 14:55:14 1994  John Eaton  (jwe@schoch.che.utexas.edu)
+
+	* src/lex.l: Handle ".+" and ".-" too.
+
+	* src/dirfns.cc (dir_acess, exists, gen_tempname, tempnam): New
+	functions from glibc.
+	* src/utils.cc (octave_tmp_file_name): Use tempnam.
+	(choose_temp_base_try): Delete.
+	* configure.in: Check for tempnam.
+
+	* src/load-save.cc (Fsave): Only write floating point format if
+	doing binary save.
+
+	* liboctave/Array.cc (operator =): Check to see if assignment is
+	to same object.
+
+Sun Aug 28 23:32:59 1994  John Eaton  (jwe@schoch.che.utexas.edu)
+
+	* liboctave/CollocWt.cc (CollocWt::init): Call delete [] on vectors.
+	* liboctave/NPSOL.cc (NPSOL::minimize): Eliminate some memory leaks.
+	* liboctave/QPSOL.cc (QPSOL::minimize): Likewise.
+	* liboctave/NLEqn.cc (NLEqn::solve): Likewise.
+
+Thu Aug 25 09:27:04 1994  John Eaton  (jwe@schoch.che.utexas.edu)
+
+	* info/session.c (info_get_input_char): Don't exit immediately if
+	we see EOF on the input stream.
+
+	* scripts/kurtosis.m, scripts/skewness.m: Update from KH.
+
+Wed Aug 24 00:19:49 1994  John Eaton  (jwe@schoch.che.utexas.edu)
+
+	* dld/Makefile.in, scripts/Makefile.in, doc/Makefile.in,
+	readline/Makefile.in, info/Makefile.in, libcruft/Makefile.in,
+	liboctave/Makefile.in, src/Makefile.in (INSTALL, INSTALL_PROGRAM,
+	INSTALL_DATA): Define here.
+	* Makeconf.in: Not here.
+
+	* src/tree-plot.cc (send_to_plot_stream): Handle
+	user_pref.automatic_replot.
+	* src/variables.cc (install_builtin_variables):
+	Add DEFVAR for automatic_replot.
+	* src/user-prefs.cc (automatic_replot): New function.
+	* src/user-prefs.h (user_preferences): Add automatic_replot to the
+	list.
+
+	* src/data.cc (Fatan2): Make work for mixed scalar and Matrix args.
+	(map): New functions for two arg mappers (like atan2).
+
+	* src/f-fsqp.cc: Don't surround everything in FSQP_MISSING, so
+	that trying to use fsqp will result in a message about fsqp not
+	being freely redistributable.
+	* src/f-npsol.cc: Likewise, for NPSOL_MISSING.
+	* src/f-qpsol.cc: Likewise, for QPSOL_MISSING.
+
+Tue Aug 23 12:56:47 1994  John Eaton  (jwe@schoch.che.utexas.edu)
+
+	* src/tree-expr.cc (tree_identifier::eval): Don't call delete for
+	ans_id.  The destructor for tree_simple_assignment_expression does
+	this now.
+
+	* src/Makefile.in (%.def : %.cc): Use sed, not awk.
+	(realclean, distclean, local-dist, dist): Delete .d and .def files.
+
+	* liboctave/Array.h (DiagArray::Proxy): Make compilation
+	conditional on gcc version, not just _AIX.
+
+	* src/utils.cc (octave_tmp_file_name, choose_temp_base_try): New
+	functions, stolen from GCC.  If HAVE_MKTEMP is not defined, just
+	call tmpnam; otherwise, try harder to please.
+	* src/tree-plot.cc (save_in_tmp_file): Use it, instead of calling
+	tmpnam() directly.
+	* src/file-io.cc (do_scanf): Likewise.
+	* src/octave-hist.cc (mk_tmp_hist_file): Likewise.
+	* configure.in: Check for mktemp.
+
+	* src/tree-const.h (is_matrix_type, is_scalar_type): Make private.
+	* src/tc-rep.h (is_matrix_type, is_scalar_type): Likewise.
+
+	* src/tc-rep.h (force_numeric, make_numeric,
+	make_numeric_or_magic, make_numeric_or_range_or_magic): Make
+	private.
+	(make_numeric_or_range): #if 0 out.
+
+	* src/utils.cc (empty_arg): Correctly set return value.
+
+	* src/arith-ops.cc: Don't include setjmp.h.
+	* src/utils.cc: Surround setjmp.h with extern "C".
+	* src/octave.cc: Likewise.
+
+	* src/sighandlers.cc (octave_new_handler): New function.
+	(install_signal_handlers): Call it.
+
+	* src/f-qzval.cc (Fqzvalue): Don't call make_numeric for args.
+	Check error state after attempting to extract values.  Simplify
+	where possible.
+	* src/f-colloc.cc (Fcolloc): Likewise.
+	* src/f-rand.cc (Frand): Likewise.
+	* src/f-sort.cc (Fsort): Likewise.
+	* src/f-find.cc (Ffind): Likewise.
+	* src/f-minmax.cc (Fmin, Fmax): Likewise.
+	* src/f-fft.cc (Ffft): Likewise.
+	* src/f-ifft.cc (Fifft): Likewise.
+	* src/f-svd.cc (Fsvd): Likewise.
+	* src/f-inv.cc (Finv): Likewise.
+	* src/f-det.cc (Fdet): Likewise.
+	* src/f-eig.cc (Feig): Likewise.
+	* src/f-lu.cc (Flu): Likewise.
+	* src/f-hess.cc (Fhess): Likewise.
+	* src/f-qr.cc (Fqr): Likewise.
+	* src/f-givens.cc (Fgivens): Likewise.
+	* src/f-syl.cc (Fsyl): Likewise.
+	* src/f-log.cc (Flog): Likewise.
+	* src/f-expm.cc (Fexpm): Likewise.
+	* src/f-balance.cc (Fbalance): Likewise.
+	* src/f-schur.cc (Fschur): Likewise.
+	* src/f-chol.cc (Fchol): Likewise.
+	* src/f-npsol.cc (Fnpsol, npsol_options): Likewise.
+	* src/f-fsolve.cc (Ffsolve, fsolve_options): Likewise.
+	* src/f-dassl.cc (Fdassl, dassl_options): Likewise.
+	* src/f-lsode.cc (Flsode, lsode_options): Likewise.
+	* src/f-quad.cc (Fquad, quad_options): Likewise.
+	* src/tree-expr.cc (tree_matrix::eval): Likewise, while building
+	matrix.
+	(tree_colon_expression::eval): Likewise, for elements of range.
+	* src/variables.cc (is_valid_function, Fis_global, Fexist):
+	Likewise.
+	* src/sysdep.cc (Fgetenv, Fpause): Likewise.
+	* src/octave.cc (eval_string, Fshell_cmd): Likewise.
+	* src/input.cc (get_user_input): Likewise.
+	* src/file-io.cc (return_valid_file, fopen_file_for_user,
+	fgets_internal, fseek_internal, process_printf_format, do_printf,
+	do_scanf, fread_internal, fwrite_internal, feof_internal):
+	Likewise.
+
+	* src/tc-rep.cc (TC_REP::string_value): Call error() and return 0
+	instead of crashing if not string_constant.
+
+	* src/file-io.cc (fopen_file_for_user): Take string as first arg,
+	not tree_constant.  Change callers.
+	(fgets_internal, fseek_internal): Correct check for int arg.
+	(process_scanf_format): Use isspace instead of checking directly
+	(and incorrectly) for white space characters.
+
+	* src/tree-expr.cc (tree_matrix::eval, tree_unary_expression::eval,
+	tree_binary_expression::eval, tree_colon_expression::eval,
+	tree_simple_assignment_expression::eval ): Eliminate uneccesary
+	conversions to and from Octave_object/tree_constant.
+
+Mon Aug 22 18:35:05 1994  John Eaton  (jwe@schoch.che.utexas.edu)
+
+	* src/data.cc (Fatan2): New function.
+
+	* src/data.cc (get_dimensions): Don't call make_numeric for args.
+	Check error state after attempting to extract values.
+
+Fri Aug 19 08:28:24 1994  John Eaton  (jwe@schoch.che.utexas.edu)
+
+	* src/tree-misc.h (tree_parameter_list::tree_parameter_list)):
+	Initialize marked_for_varargs to zero.
+
+	* src/load-save.cc: Add float variants of the conversion routines.
+	(LS_DO_READ): Add swap parameter and only swap bytes if it is true.
+	(read_doubles): Pass swap to LS_DO_READ.  Handle float data.
+	(LS_DO_WRITE): Copy data to tmp buffer to avoid destroying data.
+	(do_double_format_conversion): Rename from do_float_format_conversion.
+	(do_float_format_conversion): New function to handle conversion
+	for float data.
+	(read_mat_binary_data): Use read_doules for all cases.  Handle
+	float data.
+	(too_large_for_float): New function.
+	(save_binary_data): Save data format for scalars and ranges too.
+	(read_binary_data): Read data format for scalars and ranges too.
+	(do_save, save_vars): New arg, save_as_floats.
+	(Fsave): New option, -float-binary.
+
+	* src/utils.cc (empty_arg): New function.
+	* src/f-balance.cc (Fbalance): Use it to simplify handling of
+	empty arguments.
+	* src/f-chol.cc (Fchol): Likewise.
+	* src/f-det.cc (Fdet): Likewise.
+	* src/f-eig.cc (Feig): Likewise.
+	* src/f-expm.cc (Fexpm): Likewise.
+	* src/f-fft.cc (Ffft): Likewise.
+	* src/f-hess.cc (Fhess): Likewise.
+	* src/f-ifft.cc (Fifft): Likewise.
+	* src/f-inv.cc (Finv): Likewise.
+	* src/f-log.cc (Flogm, Fsqrtm): Likewise.
+	* src/f-lu.cc (Flu): Likewise.
+	* src/f-qr.cc (Fqr): Likewise.
+	* src/f-schur.cc (Fschur): Likewise.
+	* src/f-svd.cc (Fsvd): Likewise.
+
+	* src/tc-rep.cc (tupe_as_string): Move here.
+	* src/tree-const.cc: From here.
+
+	* src/gripes.cc (gripe_invalid_conversion): New function.
+
+Thu Aug 18 21:02:19 1994  John Eaton  (jwe@schoch.che.utexas.edu)
+
+	* src/(print_empty_matrix): New function.
+	* src/pr-output.cc (octave_print_internal): Use it to print empty
+	matrices.
+	* src/tc-rep.cc (TC_REP::print_code, TC_REP::print): Rely on
+	octave_print_internal() to handle printing empty matrices.
+
+	* src/pr-output.cc (octave_print_internal (all variants)):
+	New arg, pr_as_read_syntax.  If nonzero, print the value in a form
+	that Octave can parse.	Declare os as ostream&, not ostrstream&.
+	* src/tc-rep.cc (TC_REP::print_code): Handle all types, not just
+	real and imaginary constants.
+	* src/help.cc (Ftype): Also print values of variables.
+
+Wed Aug 17 08:46:44 1994  John Eaton  (jwe@schoch.che.utexas.edu)
+
+	* src/octave.cc (Fshell_cmd): Return output if nargout > 0 or
+	nargin > 2, otherwise, just send output to the pager.
+
+	* src/mappers.cc (xerf, xerfc, xgamma, xlgamma): New functions.
+	Put preprocessor conditionals here.
+	(install_mapper_functions): Not here.
+
+Tue Aug 16 09:55:25 1994  John Eaton  (jwe@schoch.che.utexas.edu)
+
+	* configure.in: Check for erf, erfc, and lgamma.
+	* src/mappers.cc (erf, erfc, lgamma): New mappers.
+	* src/mappers.h (Mapper_fcn): Add new field `name'.
+	* src/variables.cc (install_builtin_mapper): Save the name.
+	* src/tc-rep.cc (TC_REP::mapper): Don't crash if a mapper function
+	is missing.
+
+	* src/tc-rep-1.cc (warn_invalid_conversion): New function.
+	* src/gripes.cc (gripe_invalid_conversion): New function.
+
+	* src/parse.y (list1, parse_error): New non-terminals.
+	(list): Use them.
+	* src/lex.l: Return LEXICAL_ERROR instead of calling
+	jump_to_top_level.
+
+	* liboctave/Range.cc (matrix_value): New function.
+	* src/tc-rep.cc (TC_REP::matrix_value): Use it.
+
+	* src/tree-const.h (to_matrix, to_vector, to_scalar): Delete
+	unecessary functions.
+	* src/tc-rep.cc (TC_REP::to_matrix, TC_REP::to_vector,
+	TC_REP::to_scalar): Likewise.  Change all callers to use
+	matrix_value, vector_value, and scalar_value instead. 
+
+	* src/tree-const.cc (TC_REP::matrix_value): If at all possible,
+	produce a matrix from the current constant.  Otherwise, print an
+	error message.  Don't abort or jump to the top level.
+	(TC_REP::scalar_value, TC_REP::complex_scalar_value,
+	TC_REP::vector_value, TC_REP::complex_vector_value,
+	TC_REP::complex_matrix_value): Likewise, for appropriate types.
+
+	* src/utils.cc (empty_arg): New function.
+	* src/f-svd.cc (Fsvd): Use it.	Don't call make_numeric; rely on
+	value functions to do conversion.
+
+	* src/load-save.cc (Fload): Handle -list and -verbose.
+
+Mon Aug 15 09:32:57 1994  John Eaton  (jwe@schoch.che.utexas.edu)
+
+	* src/tc-rep.cc (TC_REP): New define, so we don't have to write
+	tree_constant::tree_constant_rep:: everywhere.
+	* src/tree-const.h (class tree_constant): Nest tree_constant_rep
+	class inside tree_constant class by including tc-rep.h here.
+	* src/tc-rep.h: Don't include any other files, delete forward
+	class declarations.
+
+	* src/tc-rep.h (constant_type): Make private.
+
+	* src/parse.y (arg_list): Use tree_constant::magic_colon in
+	constructor call, not tree_constant_rep::magic_colon.
+	* src/tree-const.h (tree_constant::tree_constant
+	(tree_constant::magic_colon)): Convert arg from
+	tree_constant_rep::constant_type.
+
+	* src/f-svd.cc (Fsvd): Simplify.
+
+	* src/tree-expr.cc (any_arg_is_magic_colon): Don't use values from
+	tree_constant_rep::constant_type enum.
+	(tree_matrix::eval): Likewise.
+	* src/tree-misc.cc (tree_parameter_list::define_from_arg_vector,
+	tree_if_clause::eval):	Likewise.
+	* src/tree-cmd.cc (tree_while_command::eval,
+	tree_for_command::eval): Likewise.
+	* src/symtab.cc (symbol_record_info::symbol_record_info): Likewise.
+	* src/f-colloc.cc (Fcolloc): Likewise.
+	* src/f-npsol.cc (npsol_objective_function): Likewise.
+	* src/f-chol.cc (Fchol): Likewise.
+	* src/f-det.cc (Fdet): Likewise.
+	* src/f-eig.cc (Feig): Likewise.
+	* src/f-expm.cc (Fexpm): Likewise.
+	* src/f-fft.cc (Ffft): Likewise.
+	* src/f-find.cc (Ffind): Likewise.
+	* src/f-hess.cc (Fhess): Likewise.
+	* src/f-ifft.cc (Fifft): Likewise.
+	* src/f-inv.cc (Finv): Likewise.
+	* src/f-log.cc (Flog): Likewise.
+	* src/f-lu.cc (Flu): Likewise.
+	* src/f-minmax.cc (Fmin, Fmax): Likewise.
+	* src/f-qr.cc (Fqr): Likewise.
+	* src/f-rand.cc (rand): Likewise.
+	* src/f-schur.cc (schur): Likewise.
+	* src/f-sort.cc (Fsort): Likewise.
+	* src/f-svd.cc (Fsvd): Likewise.
+
+	* src/f-lu.cc (Flu): Handle case of nargout == 0 the same as
+	nargout == 1.
+
+	* src/tree-const.h (force_numeric): Don't return type info.
+	* src/tc-rep.cc (tree_matrix::eval): Ditto.
+	* src/tree-expr.cc (tree_matrix::eval): Don't use return value
+	from tree_constant::force_numeric().
+
+	* src/tree-const.h (is_magic_colon): New function.
+	* src/tc-rep.h (is_magic_colon): New function.
+
+	* src/load-save.cc (ascii_save_type): New function.
+	(save_binary_data, save_ascii_data, save_three_d): Don't use
+	values from tree_constant_rep::constant_type enum. Fail if write
+	is unsuccessful.  Fail but don't panic if type is unrecognized.
+	(save_vars): Check error state after call to do_save().
+
+	* src/tc-rep.cc (isstr): Delete, since we have is_string.
+	* src/tree-const.h (isstr): Ditto.
+	* src/data.cc (Fisstr): Use is_string(), not isstr().
+
+Sun Aug 14 16:12:10 1994  John Eaton  (jwe@schoch.che.utexas.edu)
+
+	* src/load-save.cc (save_type): Add LS_U_INT, LS_CHAR and LS_FLOAT.
+	(get_save_type): Handle them.
+	(read_doubles, write_doubles): Likewise.
+
+	* src/load-save.cc (get_floating_point_format): New function.
+	(read_mat_binary_data, read_binary_file_header): Use it.
+
+	* src/lex.l: Combine {D}+\.{D}*{EXPON}?{Im} and {D}+{EXPON}?{Im}
+	patterns into the single pattern {D}+\.?{D}*{EXPON}?{Im}
+	Likewise, combine {D}+\.{D}*{EXPON}? and {D}+{EXPON}? into the
+	single pattern {D}+\.?{D}*{EXPON}?
+	({D}+/\.[\*/\\^']): New pattern to force expressions like `1./m'
+	to be parsed the same as `1 ./ m'.
+
+	* src/tree-expr.cc (do_lookup): Correctly set script_file_executed.
+
+	* src/octave.cc (long_opts): Add --silent as an alias for --quiet,
+	and --ignore-init-file as an alias for --norc.
+
+	* src/octave.cc (verbose_usage): Exit successfully to conform to
+	the GNU coding standards.
+
+Sat Aug 13 11:06:23 1994  John Eaton  (jwe@schoch.che.utexas.edu)
+
+	* src/dirfns.cc (chdir): New alias for cd.
+
+	* src/lex.l (")"): Set convert_spaces_to_comma.
+
+	* src/*.cc: Use tree_constant::is_string(), not
+	tree_constant::is_string_type().
+
+	* src/f-balance.cc (Fbalance): Use is_string() rather than
+	checking const_type() against tree_constant_rep::string_constant.
+
+	* src/tc-rep.h (tree_constant_rep::is_string_type): Delete.
+	* src/tree-const.h (tree_constant::is_string_type): Delete.
+
+	* src/Makefile.in (%.def : %.cc): Complain if generated file is
+	empty.
+
+	* configure.in (gcc_version): Set LDFLAGS to -g, not "-g -O".
+
+	* src/lex.l (looks_like_bin_op): Also return true for things like
+	[ 1+ 2 ].
+
+	* src/data.cc (Feye, Fones): With no args, return 1.0.
+	(Fzeros): With no args, return 0.0.
+
+	* src/Makefile.in (XALL_CXXFLAGS): ALL_CXXFLAGS without
+	-fextternal-templates.
+	(%.def : %.cc): Use it instead of ALL_CXXFLAGS.
+
+	* configure.in: Don't use -O for compiling float-type.c.
+
+	* libcruft/misc/Makefile.in (XCC): Use patsubst to delete any -O#
+	flags, not just -O.
+
+Fri Aug 12 18:20:35 1994  John Eaton  (jwe@schoch.che.utexas.edu)
+
+	Changes for binary load/save, and reading .mat files:
+
+	* src/variables.cc (is_globally_visible): Declare extern, not
+	static.
+
+	* src/user-prefs.cc (sv_default_save_format): New function.
+	* src/user-prefs.h (default_save_format): New field in
+	user_preferences struct.
+	src/variables.cc (install_builtin_variables): Add DEFVAR for
+	default_save_format.
+
+	* src/tc-rep.h (tree_constant_rep::is_unknown,
+	tree_constant_rep::is_scalar, tree_constant_rep::is_matrix,
+	tree_constant_rep::is_complex_scalar,
+	tree_constant_rep::is_complex_matrix,
+	tree_constant_rep::is_string, tree_constant_rep::is_range):
+	New functions.
+
+	* src/tree-const.h (tree_constant::is_unknown,
+	tree_constant::is_scalar, tree_constant::is_matrix,
+	tree_constant::is_complex_scalar, tree_constant::is_complex_matrix,
+	tree_constant::is_string, tree_constant::is_range):
+	New functions.
+
+	* src/tc-rep.cc (tree_constant_rep::save,
+	tree_constant_rep::save_three_d): Move to load-save.cc and convert
+	to nonmember functions.
+
+	* src/tree-const.h (tree_constant::save,
+	tree_constant::save_three_d): Delete functions.
+
+	* src/tree-plot.cc (save_in_tmp_file): Call nonmember functions
+	save_ascii_file and save_three_d instead of tree_constant class
+	member functions.
+
+	* src/symtab.cc (symbol_table::glob): New function.
+	(symbol_table::save, symbol_record::save, symbol_def::save):
+	Delete unneeded functions.
+
+	* src/load-save.cc: New file, for load/save related functions
+	extracted from src/variables.cc and src/tc-rep.cc.
+
+	* src/error.cc (verror): Don't print name if it is null.
+
+Tue Aug  9 14:31:43 1994  John Eaton  (jwe@schoch.che.utexas.edu)
+
+	* src/file-io.cc (process_printf_format): Use
+	tree_constant::is_scalar_type() and is_string_type() functions
+	instead of comparing directly with elements of the
+	tree_constant_rep::constant_type enum.
+	* src/variables.cc (builtin_real_scalar_variable): Likewise.
+	(install_loaded_variable): Likewise.
+
+	* src/tree-plot.cc (open_plot_stream): New function.
+	(send_to_plot_stream): Use it.  Do our own check for replot with
+	nothing to plot.
+	(tree_plot_command::eval): Open plot stream before doing anything.
+
+	* src/data.cc (check_dimensions): When changing negative
+	dimensions to zero, handle nr and nc separately.
+
+Mon Aug  8 20:18:17 1994  John Eaton  (jwe@schoch.che.utexas.edu)
+
+	* variables.cc (is_valid_fcn): Use lookup_by_name() instead of
+	looking in the global symbol table directly.
+
+	* variables.cc (load_variable): Move code here.
+	* src/tc-rep.cc (tree_constant_rep::load): From here.
+	* src/tree-const.h (tree_constant::load): Delete.
+
+	* src/tree-plot.cc: Derive classes from tree_print_code and
+	implement print_code() member functions.
+
+	* src/tree-plot.cc (subplot_list::print): New function.
+	(tree_plot_command::print): Use it, and don't crash if plot_list
+	is null.
+
+	* scripts/axis.m: New function file.
+
+Sun Aug  7 17:06:16 1994  John Eaton  (jwe@schoch.che.utexas.edu)
+
+	* configure.in: Check for size of short, int, and long.
+
+	* float-type.c: New file.
+	* configure.in: Use it to determine the native floating point
+	format.
+	* Makefile.in: Add it to the list of files to distribute.
+	* acconfig.h (IEEE_BIG_ENDIAN, IEEE_LITTLE_ENDIAN, VAX_D_FLOAT,
+	VAX_G_FLOAT): Add #undefs.
+
+Sat Aug  6 18:23:47 1994  John Eaton  (jwe@schoch.che.utexas.edu)
+
+	* config.guess: Update with new copy from gcc 2.6.0.
+
+	* src/*.cc, src/*.h, src/*.l, src/*.y: Eliminate need for tree.h.
+	* src/Makefile.in (INCLUDES): Delete it from the list.
+
+	* src/token.cc (token::token (double)): Handle saving original
+	text of constants for later use by print_code() functions.
+	(token::~token): Delete original text.
+	(token::text_rep): New function.
+	* src/lex.l: Save original text for NUM and IMAG_NUM tokens.
+	* src/parse.y: Likewise.
+
+	* src/parse.y (yyerror): Use the pager.
+
+	* src/tree-base.h (tree_print_code): New base class for trees and
+	lists of trees.
+	(tree): Derive from tree_print_code.
+	* src/tree-base.cc: New file, for tree_print_code functions, and
+	for initializing tree_print_code static members.
+	* src/tree-const.cc, src/tc-rep.cc, src/tree-plot.cc,
+	src/tree-expr.cc, src/tree-cmd.cc (all tree classes):
+	Provide print_code() member function. 
+	* src/tree-misc.cc: Also derive list classes from tree-base.h and
+	provide print_code() member functions.
+
+	* src/help.cc (Ftype, Fwhich): New functions.
+
+	* src/octave-hist (do_history): Send history output through the
+	pager.
+
+	* src/variables.cc (do_who, Fwhos): New functions.
+
+	* src/tree-expr.h (tree_expression::in_parens): Declare here.
+	(tree_simple_assignment_expression::in_parens): Not here.
+	* src/parse.y (maybe_warn_assign_as_truth_value): Eliminate cast.
+
+	* src/variables.cc (load_fcn_from_file, lookup, lookup_by_name):
+	New functions, extracted from tree_identifier class.
+	(gobble_leading_whitespace, is_function_file, parse_fcn_file):
+	Move here from tree-expr.cc.
+	* src/help.cc (Fhelp): Use lookup_by_name so that looking up
+	symbols is handled in a consistent way.
+
+	* tree-expr.cc (tree_unary_expression::oper,
+	tree_binary_expression::oper, tree_prefix_expression::oper,
+	tree_postfix_expression::oper): New functions.
+
+	* tc-rep.cc (valid_scalar_indices): Define here.
+	* tc-inlines.cc: Not here.
+
+	* src/tree-const.h (tree_constant::stash_original_text): New
+	function.
+	* src/tc-rep.cc (tree_constant_rep::stash_original_text): Ditto.
+	(undo_string_escapes): Ditto.
+
+	* src/tc-rep (tree_constant_rep::do_matrix_index): Don't just
+	return *this.
+	* src/tree-const.h (tree_constant::tree_constant (tree_constant_re&)):
+	Delete.
+
+	* src/pager.cc (open_diary_file, close_diary_file,
+	maybe_write_to_diary_file, Fdiary): New functions.
+	(flush_output_to_pager): Call maybe_write_to_diary_file before
+	sending output to the screen.
+	* src/input.cc (octave_gets): Call maybe_write_to_diary file to
+	save the prompt and the user input.
+	* src/error.cc (verror): Use C++ streams, not C I/O functions.
+	Call maybe_write_to_diary file to save error messges too.
+	* src/octave.cc (clean_up_and_exit): Close diary file here.
+
+	* src/octave.cc (main): Initialize pager first.
+
+	* src/input.cc (get_user_input): Return empty matrix for no input.
+
+	* src/tree-plot.cc: Include readline/tilde.h instead of declaring
+	tilde_expand() directly.
+	* src/utils.cc: Likewise.
+
+	* src/tree-plot.cc (tree_plot_command::print_code): New function.
+	* src/tree-const.h (tree_constant::print_code): Likewise.
+
+	* src/tree-expr.h (tree_simple_assignment_expression::ans_ass):
+	New data member to flag assignments to ans.
+	* src/tree-expr.cc (tree_identifier::eval): Set it when
+	constructing assignments to ans.
+	* src/parse.y (maybe_convert_to_ans_assign): Likewise.
+
+	* src/tree-expr.h (tree_simple_assignment_expression::preserve):
+	New data member to allow preserving left hand side args that
+	shouldn't be deleted in some cases (ugh).
+	* src/tree-expr.cc (tree_multi_assignment_expression::eval):
+	Create assignment with preserve flag set.
+
+Wed Aug  3 14:27:25 1994  John Eaton  (jwe@schoch.che.utexas.edu)
+
+	Yet another massive reorganization of sources, once again
+	hopefully for the better.  A fair amount of work is not detailed
+	here, but these are the major points.  The grammar file and the
+	derivation of the tree classes are somewhat cleaner now.
+
+	* src/parse.y: Cope with changes to derivation scheme.
+
+	* src/tree-misc.cc: New file.
+	(tree_statement, tree_global): New classes.
+	(tree_global_init_list): New class, derived from SLList for the
+	list of expressions in a global command.
+	* src/tree-cmd.cc (tree_global_command): Use tree_global_init_list.
+
+	* src/tree-misc.cc (tree_argument_list): Move here from
+	tree-expr.cc, and derive from SLList instead of tree.
+	(tree_parameter_list): Likewise.
+	(tree_return_list): Likewise.
+
+	* src/tree-cmd.cc (tree_command_list): Delete class.
+	* src/tree-misc.cc (tree_statement_list): New class for keeping a
+	list of commands or expressions to evaluate.  Derive from SLList,
+	not tree.
+
+	* src/tree-plot.cc (subplot_list, plot_limits, plot_range,
+	subplot_using, subplot_style): Rename from tree_*, and
+	don't derive from tree class.
+
+	* src/tree-plot.cc: Eliminate eval member function for classes not
+	derived from tree class.
+
+	* src/tree-plot.cc, src/tree-cmd.cc: For classes derived from
+	tree-command, the eval() member function is now void eval (void).
+
+	* src/tree-base.h (tree::tree): New constructor, to initialize the
+	line and column info.  For all classes that are derived from the
+	tree class, use it instead of manipulating the data directly.
+	(line_num, column_num): Make private.
+
+	* src/tree-expr.cc (tree_simple_assignment_expression::preserve):
+	New data member, set in constructors and used by the destructor
+	when the left-hand side of the expression should not be deleted
+	(as for some temporary assignments not constructed in the parser).
+
+	* src/tree-expr.h (tree_expression::type) Rename and move here from
+	tree-base.h.  Change all uses.
+	(tree_matrix::dir): Likewise.  Change all uses.
+
+	* src/utils.cc (make_argv): Stash function name in argv[0].
+
+	* src/octave.cc (global_command): Declare as tree_statement_list,
+	not tree.
+
+	* src/parse.y (make_binary_op, make_unary_op, make_prefix_op,
+	make_postfix_op): New functions.
+
+	* src/parse.y (GLOBAL): Make it a tok_val type.
+	* src/lex.l (is_keyword): Give GLOBAL a value.
+
+Mon Aug  1 22:37:22 1994  John Eaton  (jwe@schoch.che.utexas.edu)
+
+	* src/lex.l (grab_help_text): Unput the last character read.
+
+Sun Jul 31 21:17:07 1994  John Eaton  (jwe@schoch.che.utexas.edu)
+
+	* src/pr-output.cc (set_format (double, int&)): Avoid calling
+	log10 for Inf and NaN.
+
+Fri Jul 29 16:08:32 1994  John Eaton  (jwe@schoch.che.utexas.edu)
+
+	* src/octave.cc (reading_startup_message_printed): New flag.
+	(parse_and_execute): New arg, verbose.  If true, print name of
+	file as it is read.
+	(execute_startup_files): Don't print message if
+	inhibit_startup_message is true.
+	(main): Move startup message before reading init files.
+
+Thu Jul 28 00:25:42 1994  John Eaton  (jwe@schoch.che.utexas.edu)
+
+	* liboctave/Makefile.in (MATRIX_INC): Delete CmplxColVec.h from list.
+
+	* src/symtab.cc (symbol_table::rename): New function.
+	* src/parse.y (func_def2): Use it instead of tree_identifier::rename.
+	* src/tree-expr.cc (tree_identifier::rename): Delete unused function.
+
+	* src/tree-expr.cc (tree_identifier::load_fcn_from_file): New function.
+	(tree_identifier::do_lookup): Use it instead of parse_fcn_file.
+	* src/variables.cc (is_valid_function): Ditto.
+	* src/help.cc (Fhelp): Ditto.
+
+	* src/utils.cc (oct_file_in_path): New function.
+
+Wed Jul 27 08:59:32 1994  John Eaton  (jwe@schoch.che.utexas.edu)
+
+	* src/tree-expr.cc (tree_identifier::parse_fcn_file): Combine
+	three functions into one.
+
+	* src/utils.cc: Delete uneeded declaration of ioctl().
+	* src/sysdep.cc: Likewise.
+
+	* install.sh: New file, from autoconf distribution.
+	* Makefile.in (DISTFILES): Distribute it.
+
+Tue Jul 26 16:08:58 1994  John Eaton  (jwe@schoch.che.utexas.edu)
+
+	* scripts/Makefile.in (DISTDIRS): New variable, for directories
+	below scripts to distribute.
+	(dist): Handle distributing whole directories named by $(DISTDIRS).
+	(local-dist): Ditto.
+
+Mon Jul 25 12:57:09 1994  John Eaton  (jwe@schoch.che.utexas.edu)
+
+	* liboctave/CmplxQRP.cc: Provide declaration for zungqr.
+	* liboctave/dbleQRP.cc: Provide declaration for dorgqr.
+
+	* src/Makefile.in (dist): Also remove y.output and defaults.h.
+	(local-dist): Ditto.
+	(realclean): Ditto.
+
+	* src/oct-obj.h (Octave_object::Octave_object (int)): Make
+	private, to avoid problems with different meanings of
+	Octave_object (int) and Octave_object (double) constructors.
+
+	* scripts/amr-image: New files for image processing from Tony
+	Richardson.  These are not in the default octave LOADPATH yet.
+	See the README file in the amr-image directory for more info on
+	how to use them.
+
+	* src/octave.cc (Fshell_cmd): Restore accidentally deleted
+	function.
+
+	* scripts/conv-amr.m, scripts/deconv-amr.m, scripts/roots-amr.m,
+	scripts/poly-amr.m, scripts/roots-tuwien.m, scripts/conv-tuwien.m,
+	scripts/deconv-tuwien.m, scripts/poly-tuwien.m:
+	New files.
+	XXX FIXME XXX -- For each of these functions, either one of the
+	versions will need to be selected, or they will need to be merged
+	before the next release.
+
+	* scripts/null.m, scripts/orth.m, scripts/fft2.m, scripts/ifft2.m,
+	scripts/filter.m, scripts/compan.m, scripts/polyderiv.m,
+	scripts/polyinteg.m, scripts/polyreduce.m, scripts/polyval.m,
+	scripts/polyvalm.m, scripts/postpad.m, scripts/prepad.m,
+	scripts/residue.m, scripts/sinc.m, scripts/freqz.m,
+	scripts/complement.m, scripts/intersection.m,
+	scripts/create_set.m, scripts/union.m:
+	New files.
+
+	* scripts/hilb.m: Eliminate inner loop, for speed.  From
+	romolo@URSAMAJOR.ENG.UNIPR.IT (Romolo Manfredini).
+
+Sun Jul 24 22:08:48 1994  Castor Fu (castor@drizzle.stanford.edu)
+
+	* libcruft/ranlib/genf.f (genf): Use 1.2E-38 instead of 1.0E-38
+	when checking to see if generated numbers will cause overflow.
+	This helps DEC's f77 compiler on the Alpha, which refuses to
+	generate denormalized constants.
+	* libcruft/ranlib/gennf.f (gennf): Likewise.
+
+Fri Jul 22 10:27:00 1994  John Eaton  (jwe@schoch.che.utexas.edu)
+
+	* src/Makefile.in (DEF_FILES): Depend on defun header files too.
+
+Thu Jul 21 14:40:30 1994  John Eaton  (jwe@schoch.che.utexas.edu)
+
+	* liboctave/NLFunc.h (nonlinear_fcn): Declare as pointer to
+	function taking const ColumnVector arg.
+	(jacobian_fcn): Ditto.
+
+	* src/defun-int.h (DEFINE_ARGV): Declare and define save_argc and
+	save_argv for functions that mess with argc and argv directly.
+	(DELETE_ARGV): Use save_argc and save_argv instead of argc and argv.
+
+	* src/f-lsode.cc (ODE_OPTIONS): Add const qualifier for string elts.
+	(print_lsode_option_list): Declare keyword as const char *.
+	* src/f-npsol.cc, src/f-qpsol.cc, src/f-dassl.cc, src/f-quad.cc:
+	Likewise, for corresponding structs and functions.
+
+	* liboctave/dbleSVD.h (SVD::type): New enum, for choosing type of
+	factorization.
+	* liboctave/CmplxSVD.cc (SVD::SVD): Add new optional arg for type.
+	(init): Handle case of type == SVD::economy.
+	* liboctave/dbleSVD.cc: Likewise.
+
+	QR changes from R. Bruce Tenison (btenison@eng.auburn.edu) adapted
+	for new way of defining builtin functions:
+
+	* doc/linalg.texi:  Changed QR description to include QRP
+	factorization
+
+	* src/f-qr.cc (Fqr): Handle permuted and economy QR
+	factorizations.  Handle case of 1 output arg.
+
+	* liboctave/Makefile.in (MATRIX_INC, MATRIX_SRC): Add new QRP files.
+
+	* liboctave/dbleQRP.h, liboctave/dbleQRP.cc, liboctave/CmplxQRP.h,
+	liboctave/CmplxQRP.h: New files, for QR with pivoting.
+
+	* liboctave/dbleQR.h (QR::type): New enum, for choosing type of
+	factorization.
+	* liboctave/CmplxQR.cc (QR): Add new optional arg for type.
+	Handle case of type == SVD::economy and SVD::raw.
+	* liboctave/dbleQR.cc (QR): Likewise.
+
+	* libcruft/lapack/dgeqpf.f: New file.
+	* libcruft/lapack/zgeqpf.f: Ditto.
+
+Wed Jul 20 13:12:55 1994  John Eaton  (jwe@schoch.che.utexas.edu)
+
+	* liboctave/*.cc, liboctave/*.h: Various cleanups to remove use of
+	NULL.  Only mention default argument values in function
+	declarations, not in their definitions (required for gcc 2.6.x).
+
+	* configure.in: If configuring for alpha-dec-osf, check for sgtty
+	first. If not found, go ahead and check for Posix terminal driver.
+
+Tue Jul 19 09:25:45 1994  John Eaton  (jwe@schoch.che.utexas.edu)
+
+	* liboctave/mx-defs.h (FILE): Don't declare as struct FILE just to
+	avoid including stdio.h.
+	* liboctave/dMatrix.cc: Do include stdio.h here.
+
+	* liboctave matrix classes: Declare operator>> correctly, and
+	return istream object.  Get friend stuff right.
+
+	* liboctave/DAE.cc (DAE::integrate): To see if the user provided a
+	Jacobian function, call DAEFunc::jacobian_function ().
+
+	* liboctave/DAE.cc (user_fun, user_jac): Qualify with class name.
+	* liboctave/ODE.cc (user_fun, user_jac): Ditto.
+
+	* liboctave/DAFunc.h (DAEJac): Declare inside class.
+	(DAERHSFunc, DAEJacFunc): Define types inside class.
+	* liboctave/ODEFunc.h (ODERHSFunc, ODEJacFunc) Likewise.
+
+	Massive reorganization of sources, hopefully for the better.
+	A fair amount of work is not detailed here, but these are the
+	major points...
+
+	* src/symtab.h (symbol_def::TYPE) Add new elements for recording
+	whether a symbol is a text function or mapper function.
+	* src/symtab.cc (symbol_def::is_text_function,
+	symbol_record::is_text_function, symbol_def::is_mapper_function,
+	symbol_record::is_mapper_function): New functions.
+	Modify existing is_* functions to cope with these changes.
+	(symbol_def::symbol_def (tree_builtin*, unsigned)): New 2nd arg.
+	(symbol_def::symbol_def (tree_function*, unsigned)): Ditto
+	(symbol_def::define (tree_builtin*, unsigned)): Ditto.
+	(symbol_def::define (tree_function*, unsigned)): Ditto.
+	* src/variables.cc (is_text_function_name): Use the new symbol
+	table functions, since we can no longer tell by looking in a
+	simple list.
+
+	* tree-expr.cc (class tree_builtin): Text functions are no longer
+	handled as a special case here.
+
+	* src/sysdep.cc (octave_ieee_init): Special case Alpha for
+	initializing Inf and NaN.
+
+	* src/tc-rep.cc: Use const in more places.
+
+	* src/data.cc src/timefns.cc, src/dirfns.cc, src/dirfns.h: New
+	files.
+
+	* src/*.cc, src/*.y, src/*.l, src/*.h: Various cleanups to remove
+	use of NULL.  Only mention default argument values in function
+	declarations, not in their definitions (required for gcc 2.6.x).
+
+	* src/g-builtins.cc, src/g-builtins.h, src/t-builtins.cc
+	src/t-builtins.h: Removed.  Functions moved to various other
+	files, where they more logically belong.
+	* src/utils.cc:  Likewise, various functions moved to other files,
+	where they more logically belong.
+	* src/mappers.cc (install_mapper_functions): Declare all mapper
+	functions here with the new DEFUN_MAPPER() macro.
+	* src/variables.cc (install_builtin_variables): Declare all
+	builtin variables here, with the new DEFVAR() macro.
+
+	* src/f-*.h: Deleted.
+	* src/f-*.cc: Delete #ifdef WITH_DLD code and use DEFUN_DLD()
+	instead to declare builtin functions that will be dynamically
+	loaded.  Give all functions a uniform return type and argument
+	list.
+
+	* src/mkdefs, src/mkbuiltins: New scripts.
+	* src/Makefile.in: Use them to generate builtins.cc automatically
+	from source files that use DEFUN.
+
+	* src/defun.h, src/defun-dld.h, src/defun-int.h: New files, to
+	define DEFUN() and DEFVAR() macros to make it possible to define
+	functions together with their help strings in one place.  The code
+	to install functions in the symbol table is now generated by
+	mkbuiltins.
+
+	* configure.in (LIBOCTDLD): New variable to define.
+	Only call AC_VERBOSE() for DYNAMIC_LD_OBJ, DLD_DIR, LIBDLD,
+	LIBOCTDLD, and LD_STATIC_FLAG if they are set.
+	* move-if-change: Move here, from src/move-if-change.
+	* Makeconf.in (%.d: %.cc): Echo simple message instead of the
+	commands actually executed.
+	(%.d: %.c): Likewise.
+
+	* src/unwind-prot.h: Include stddef.h, for size_t.
+
+Tue Jul 12 12:51:25 1994  John Eaton  (jwe@schoch.che.utexas.edu)
+
+	* src/f-eval.cc, src/f-fill.cc, src/f-find.cc, src/f-input.cc,
+	src/f-minmax.cc, src/f-log.cc, src/f-sort.cc, src/f-eval.h,
+	src/f-fill.h, src/f-find.h, src/f-input.h, src/f-log.h,
+	src/f-minmax.h, src/f-sort.h: New files, for functions extracted
+	from tree-const.cc.
+	* src/Makefile.in: Add them to the list of INCLUDES, SOURCES, and
+	OBJECTS.
+
+	* src/f-*.cc: Clean up things a bit by letting the compiler
+	generate the tree_constant constructor calls.
+
+	* src/unwind-prot.h: Include stddef.h, for size_t.
+
+	* src/oct-obj.h (Octave_object (int, const tree_constant&)):
+	New constructor form.
+	* src/tree-const.cc (find_nonzero_elem_idx): Rewrite to handle 2
+	and 3 return values.
+
+	* src/g-builtins.cc (builtin_find): Check nargout too.
+	* src/builtins.cc (general_functions): Fix help message for find.
+
+Mon Jul 11 13:36:15 1994  John Eaton  (jwe@schoch.che.utexas.edu)
+
+	* src/tc-rep.cc	(tree_constant_rep::convert_to_row_or_column_vector):
+	If already have a row or column vector, return without doing
+	anything.
+
+Sat Jul  9 01:02:51 1994  John Eaton  (jwe@schoch.che.utexas.edu)
+
+	* src/oct-obj.h (Octave_object): Make it a class, not just a
+	typedef.
+
+	* src/tree-expr.h (tree_function::curr_va_arg_number): Rename from
+	curr_arg_number.
+	(tree_function::varargs_ok): Delete unused member variable.
+	* src/tree-expr.cc (tree_function::octave_va_arg): Increment
+	cur_va_arg_number before indexing args_passed.
+	(tree_function::octave_va_start): Set curr_va_arg_number to
+	num_args_passed, not num_args_passed + 1.
+	(tree_function::takes_varargs): Call param_list::takes_varargs,
+	don't just return varargs_ok.
+	(tree_function::define_param_list): If param_list is not NULL, set
+	num_named_args and curr_va_arg_number even if function doesn't
+	take varargs.
+
+	* src/tree-expr.cc (tree_identifier::eval (int)): Only pass empty
+	arg list if evaluating a constant.
+	(tree_function::eval (int)): Always pass least one arg.
+
+	* Makeconf.in (TMP_IF_1): Add `-I../src'.
+	(TMP_IF_2): Add `-I$(TOPDIR)/src' and `-I$(top_srcdir)/src'.
+
+	* src/t-builtins.h, src/variables.h, src/file-io.h, src/f-syl.h,
+	src/f-svd.h, src/f-schur.h, src/f-rand.h, src/f-qzval.h,
+	src/f-quad.h, src/f-qpsol.h, src/f-npsol.h, src/f-lsode.h,
+	src/f-lpsolve.h, src/f-hess.h, src/f-givens.h, src/f-fsqp.h,
+	src/f-fsolve.h, src/f-eig.h, src/f-dassl.h, src/f-colloc.h,
+	src/f-balance.h, src/dynamic-ld.h, src/builtins.cc,
+	src/tree-const.cc, src/file-io.cc, src/f-syl.cc, src/f-svd.cc,
+	src/f-schur.cc, src/f-rand.cc, src/f-qzval.cc, src/f-qr.cc,
+	src/f-qpsol.cc, src/f-lu.cc, src/f-lpsolve.cc, src/f-inv.cc,
+	src/f-ifft.cc, src/f-hess.cc, src/f-givens.cc, src/f-fsqp.cc,
+	src/f-fft.cc, src/f-expm.cc, src/f-eig.cc, src/f-det.cc,
+	src/f-colloc.cc, src/f-chol.cc, src/f-balance.cc,
+	src/dynamic-ld.cc, src/f-dassl.cc, src/f-fsolve.cc,
+	src/f-lsode.cc, src/f-npsol.cc, src/f-quad.cc, src/tree-expr.h,
+	src/tc-rep.cc, src/tc-inlines.cc, src/tc-rep.h, src/tree-const.h,
+	src/g-builtins.cc, src/g-builtins.h, src/tree-expr.cc,
+	src/variables.cc: Delete nargin in favor of using args.length().
+
+	* configure.in: Check for struct exception in math.h.
+	* src/sysdep.cc (matherr): New function.
+
+Fri Jul  8 15:31:53 1994  John Eaton  (jwe@schoch.che.utexas.edu)
+
+	* src/tc-rep.cc: Include arith-ops.h.
+	(tree_constant_rep::do_scalar_index): Use `invalid', not `illegal'
+	in messages.
+
+	* src/oct-obj.h: Protect contents from multiple inclusion.
+
+	* src/tree-const.h, src/tree-expr.h: Don't include Array.h.
+
+	* src/parse.y (param_list): Allow ELLIPSIS by itself.
+	* src/tree-expr.cc (tree_identifier::mark_varargs_only,
+	tree_identifier::vararg_only): New functions.
+	(tree_function::eval): Only call define_from_arg_vector if
+	param_list is non-null and not marked as varargs_only.
+
+	* src/f-balance.h, src/f-chol.h, src/f-colloc.h, src/f-dassl.h,
+	src/f-eig.h, src/f-fsolve.h, src/f-fsqp.h, src/f-givens.h,
+	src/f-hess.h, src/f-lpsolve.h, src/f-lsode.h, src/f-lu.h,
+	src/f-npsol.h, src/f-qpsol.h, src/f-qr.h, src/f-quad.h,
+	src/f-qzval.h, src/f-rand.h, src/f-schur.h, src/f-svd.h,
+	src/f-syl.h: Include oct-obj.h, not tree-const.h to get
+	declaration of Octave_object.
+
+	* src/f-givens.cc (givens): Handle case of nargout == 0.
+	Use `invalid', not `illegal' in messages.
+	* src/f-balance.cc (balance): Likewise.
+
+	* src/f-balance.cc (balance): Print warning about two output
+	arguments for complex-valued case too.
+
+	* src/tc-rep.cc: Include arith-ops.h.
+
+Thu Jul  7 20:54:12 1994  John Eaton  (jwe@schoch.che.utexas.edu)
+
+	* src/parse.y (identifier): Add missing semicolon.
+	(param_list): Ditto.
+
+	* src/f-svd.cc (svd): Handle nargout == 0 the same as nargout == 1.
+	* src/f-schur.cc (schur): Likewise.
+	* src/f-hess.cc (hess): Likewise.
+	* src/f-eig.cc (eig): Likewise.
+	* src/f-syl.cc (syl): Likewise.
+	* src/f-qzval.cc (qzvalue): Likewise.
+	* src/f-npsol.cc (npsol): Likewise.
+	* src/f-qpsol.cc (qpsol): Likewise.
+	* src/f-givens.cc (givens): Likewise.
+	* src/f-fsolve.cc (fsolve): Likewise.
+	* src/f-balance.cc (balance): Likewise.
+	* src/file-io.cc (process_scanf_format): Likewise.
+	* src/g-builtins.cc (builtin_balance, builtin_chol, builtin_dassl,
+	builtin_eig, builtin_fsolve, builtin_fsqp, builtin_lsode,
+	builtin_max, builtin_min, builtin_npsol, builtin_qpsol,
+	builtin_quad, builtin_rand, builtin_size, builtin_sort,
+	builtin_svd, builtin_schur, builtin_syl, builtin_givens,
+	builtin_hess): Likewise.
+	* src/tree-const.cc (vector_of_empties, column_max, column_min):
+	Likewise.
+
+	* src/variables.h, src/symtab.h: Include builtins.h for typedefs.
+
+	* src/tree-expr.cc(tree_multi_assignment_expression::eval): Rework
+	handling of undefined values returned from functions.
+
+	* src/tree-expr.cc (tree_identifier::is_defined): New function.
+	(tree_parameter_list::is_defined): New function.
+	(tree_parameter_list::convert_to_const_vector): Use it to avoid
+	evaluating undefined objects.
+
+	* src/f-balance.cc, src/f-eig.h, src/f-hess.cc, src/f-lu.h,
+	src/f-rand.cc, src/f-balance.h, src/f-expm.cc, src/f-hess.h,
+	src/f-npsol.cc, src/f-rand.h, src/f-chol.cc, src/f-expm.h,
+	src/f-ifft.cc, src/f-npsol.h, src/f-schur.cc, src/f-chol.h,
+	src/f-fft.cc, src/f-ifft.h, src/f-qpsol.cc, src/f-schur.h,
+	src/f-colloc.cc, src/f-fft.h, src/f-inv.cc, src/f-qpsol.h,
+	src/f-svd.cc, src/f-colloc.h, src/f-fsolve.cc, src/f-inv.h,
+	src/f-qr.cc, src/f-svd.h, src/f-dassl.cc, src/f-fsolve.h,
+	src/f-lpsolve.cc, src/f-qr.h, src/f-syl.cc, src/f-dassl.h,
+	src/f-fsqp.cc, src/f-lpsolve.h, src/f-quad.cc, src/f-syl.h,
+	src/f-det.cc, src/f-fsqp.h, src/f-lsode.cc, src/f-quad.h,
+	src/f-det.h, src/f-givens.cc, src/f-lsode.h, src/f-qzval.cc,
+	src/f-eig.cc, src/f-givens.h, src/f-lu.cc, src/f-qzval.h,
+	src/dynamic-ld.cc, src/dynamic-ld.h, src/file-io.cc,
+	src/file-io.h, src/t-biultins.cc, src/t-builtins.h,
+	src/tree-expr.cc, src/tree-expr.h, src/tree-const.cc,
+	src/tree-const.h, src/tc-inlines.cc, src/tc-rep.cc, src/tc-rep.h,
+	src/g-builtins.cc, src/g-builtins.h:
+	Cope with inital round of Octave_object changes.
+
+	* src/oct-obj.h: New file for Octave_object typedef.
+	* src/dynamic-ld.h, src/file-io.h, src/tree-const.h,
+	src/tree-expr.h: Include it.
+	* src/Makefile.in (INCLUDES): Add it to the list.
+
+Wed Jul  6 09:28:28 1994  John Eaton  (jwe@schoch.che.utexas.edu)
+
+	* libocsrc/tree-const.h: 
+
+	* src/parse.y (maybe_convert_to_ans_assign,
+	maybe_warn_assign_as_truth_value): Pass tree_expression*, not tree*.
+	(ans_expression, expression, simple_expr, simple_expr1, title):
+	Declare as tree_expression_type, not tree_type.
+	(opt_list): Add missing semicolon.
+
+	* src/tc-rep.h, src/tc-rep.cc: New files, extracted from
+	tree-const.h and tree-const.cc, for the tree_constant_rep class.
+	Leave most friend functions behind, in tree-const.h.
+	Don't declare do_binary_op or do_unary_op as friends.
+
+	* src/lex.l: Include tree-plot.h and tree-const.h.
+
+	* src/variables.cc (takes_correct_nargs): Pass tree_fvc* not tree*.
+	* src/variables.cc (is_valid_function): Return tree_fvc* not tree*.
+	Change all callers.
+
+	* src/symtab.h, symtab.cc: Change declaration of symbol definition to
+	be tree_fvc* instead of tree*.  Change all callers.
+
+	* src/f-dassl.cc (dassl_fcn): Declare as tree_fvc*, not tree*.
+	* src/f-quad.cc (quad_fcn): Likewise.
+	* src/f-lsode.cc (lsode_fcn): Likewise.
+	* src/f-fsolve.cc (fsolve_fcn): Likewise.
+	* src/f-npsol.cc (npsol_fcn, npsol_constraints): Likewise.
+
+	* src/tree-plot.cc: All operations are now on tree_expression types,
+	not tree types.
+
+	* src/tree-expr.h (tree_matrix): Derive from tree_expression, not tree.
+
+	* src/tree-expr.h (tree_builtin, tree_function, tree_identifier):
+	Derive from tree_fvc, not tree.	
+	* src/tree-const.h (class tree_constant): Likewise.
+
+	* src/tree-expr.h (is_identifier, is_index_expression,
+	is_assignment_expression, is_prefix_expression,
+	mark_for_possible_ans_assign, eval (with args)): Declare in
+	tree_expression class, not tree class.
+
+	* src/tree-expr.h (tree_fvc): New class, derived from
+	tree_expression, to provide a connection between functions,
+	variables, and constants.
+	(is_constant, assign, name, bump_value, max_expected_args,
+	fcn_file_name, time_parsed, is_system_fcn_file, save): Declare
+	in tree_fvc class, not in tree class.
+
+	* src/tree.h: Simply include tree-expr.h and tree-cmd.h.
+	* src/tree-expr.h, tree-expr.cc: New files, extracted from tree.h
+	and tree.cc for classes derived from tree_expression, plus some
+	helper classes.
+	* src/tree-cmd.h, tree-cmd.cc: Likewise, for classes derived from
+	tree_command.
+
+	* src/tree.cc (eval (int, int)): Merge with eval (int,
+	tree_constant*, int, int) by rearranging order of args and using
+	default arg values.  Change all callers.	
+
+Tue Jul  5 14:33:33 1994  John Eaton  (jwe@schoch.che.utexas.edu)
+
+	* doc/Makefile.in (refcard.dvi): Run TeX on $(srcdir)/refcard.tex,
+	not just refcard.tex.
+	(refcard-local.tex): Likewise, for the local version.
+
+	* src/tree-const.cc (tree_constant_rep::do_index): Check for empty
+	matrix here.
+	(tree_constant_rep::do_vector_index) Not here.
+
+Thu Jun 30 09:41:03 1994  John Eaton  (jwe@schoch.che.utexas.edu)
+
+	* src/g-builtins.cc (builtin_shell_command): Only take one
+	argument and return [status, output].
+	* src/procstream.cc (procstreambase::close): Return process exit
+	status.
+
+	* src/tree.cc (tree_builtin::eval (int)): Handle new style of
+	calling text functions.
+	(tree_builtin::eval (int, int): Likewise.
+	(tree_builtin::eval (tree_constant*, int, int, int): Likewise.
+	(tree_identifier::eval (tree_constant*, int, int, int)): Don't
+	count the output arguments that we create automatically (ans) when
+	figuring nargout.
+	(tree_identifier::eval (int)): Likewise.
+
+	* src/tree-const.cc: Delete text-style eval() functions.
+	* src/tree.cc: Ditto.
+
+	* src/tree-const.h: Change typedef of Text_fcn to return a pointer
+	to a tree_constant, and to include the number of output arguments
+	in the parameter list.
+	* src/t-builtins.h: Change declarations of all builtin text-style
+	functions to match.
+	* src/t-builtins.cc: Change definitions too.
+
+	* src/parse.y (word_list): Build an argument_list, not a word_list.
+	(word_list_command): Create an index_expression, not a
+	word_list_command.
+	* src/tree.cc (tree_word_list): Delete unneeded class.
+	(tree_word_list_command): Likewise.
+
+	* src/tc-extras.cc (get_dimensions): For one-arg version, expect
+	2-element vector or scalar specifying dimensions.  Don't simply
+	use the dimensions of a matrix arg.
+
+Wed Jun 29 09:52:15 1994  John Eaton  (jwe@schoch.che.utexas.edu)
+
+	* src/f-det.cc (determinant): Return 0 if matrix is singular to
+	machine precision.
+
+	* liboctave/dMatrix.cc (Matrix::inverse): Declare rcond as
+	volatile to prevent optimization of the expression
+	`rcond + 1.0 == 1.0'.
+	(Matrix::determinant): Ditto.
+	(Matrix::solve): Ditto.
+	* liboctave/CMatrix.cc (ComplexMatrix::inverse): Ditto.
+	(ComplexMatrix::determinant): Ditto.
+	(ComplexMatrix::solve): Ditto.
+
+Tue Jun 28 10:53:31 1994  John Eaton  (jwe@schoch.che.utexas.edu)
+
+	* src/utils.cc (default_info_file): Add directory separator when
+	appending "octave.info".
+
+	* src/tree-plot.cc (plot_line_count): Make global.
+	* src/utils.cc (send_to_plot_stream): If the plot stream is not
+	open, set plot_line_count to zero.
+	(close_plot_stream): Likewise, set it to zero when closing the
+	stream.
+
+	* src/parse.y (plot_command): Allow replot without args.
+
+	* src/tree-plot.cc (clear_before_plotting): New global variable.
+	(tree_plot_command::eval): Use it to handle hold on/off.
+	* src/t-builtins.cc (builtin_hold): New function.
+	* src/builtins.cc (text_functions): Add it to the list.
+
+Fri Jun 24 11:08:36 1994  John Eaton  (jwe@schoch.che.utexas.edu)
+
+	* src/token.h (plot_tok_type): Add new field, replot.
+	* src/lex.l (is_keyword): Handle replot here.
+	* src/parse.y (plot_command): And here.
+	* src/g-builtins.cc (builtin_replot): Not here.
+	* src/builtins.cc (general_functions): Or here.
+
+Tue Jun 21 10:47:08 1994  John Eaton  (jwe@schoch.che.utexas.edu)
+
+	* src/g-builtins.cc (builtin_kbhit): New function.
+	* src/builtins.cc (general_functions): Add it to the list.
+
+	* src/tree-const.cc (tree_constant_rep::rows (void)): For strings
+	and ranges, only return 1 if the string or range is not empty.
+
+Thu Jun  9 20:42:06 1994  John Eaton  (jwe@schoch.che.utexas.edu)
+
+	* src/tree.cc (tree_builtin::eval (int)): Delete ancient code that
+	eval()'d the return value.
+	(tree_builtin::eval (int, int)): Likewise.
+	(tree_builtin::eval (int, char**, int)): Likewise.
+	(tree_builtin::eval (tree_constant*, int, int, int)): Likewise.
+	(tree_function::eval (tree_constant*, int, int, int)): Likewise.
+	(tree_colon_expression::eval (int)): Likewise.
+	(tree_unary_expression::eval (int)): Likewise.
+	(tree_binary_expression::eval (int)): Likewise.
+
+Mon Jun  6 03:48:32 1994  John Eaton  (jwe@schoch.che.utexas.edu)
+
+	* src/file-io.cc (fread_internal): Make it work.
+	(fwrite_internal): Likewise.
+	(num_items_remaining): Renamed from get_whats_left().  Don't pass
+	nr/nc as last arg, simply return the number of items of size that
+	are left to read.
+	(get_size_conv): Delete unnecessary function.
+	* liboctave/dMatrix.cc (Matrix::read): Make it work.
+	(Matrix::write): Likewise.
+	* liboctave/dMatrix.h (conversion): Delete unecessary enum.
+
+	* src/sysdep.cc: Include <math.h>.
+	(octave_ieee_init): Cast return value of infinity() and
+	quiet_nan() to double.
+
+Sun Jun  5 14:35:32 1994  John Eaton  (jwe@schoch.che.utexas.edu)
+
+	* Makeconf.in (getversion): Get everything between the double
+	quotes, not just numbers and periods.
+
+	* src/tree-const.cc (tree_constant_rep::do_scalar_assignment): Correct
+	typo in last change.
+
+	* src/parse.y: Include tree-plot.h and tree-const.h.
+
+	* src/Makefile.in (SOURCES): Delete tc-assign.cc and tc-index.cc
+	(INCLUDES): Add tree-plot.h.
+
+	* src/tree-plot.h: New file.  Declare plotting classes here.
+	* src/tree.h: Not here.
+
+	* src/tc-index.cc, tc-assign.cc: Delete unnecessary files.
+
+	* src/tc-extras.cc: Include EIG.h
+
+	* src/tree-const.cc (tree_constant_rep::tree_constant_rep (RowVector&,
+	int)): Provide default value for int arg.
+	(tree_constant_rep::tree_constant_rep (ColumnwVector&, int)): Ditto
+	(tree_constant_rep::tree_constant_rep (ComplexRowVector&, int)): Ditto
+	(tree_constant_rep::tree_constant_rep (ComplexColumnwVector&, int)):
+	Ditto.
+	(tree_constant_rep::tree_constant_rep (RowVector&)): Delete, now
+	handled by corresponding two arg constructor.
+	(tree_constant_rep::tree_constant_rep (ColumnwVector&)): Likewise.
+	(tree_constant_rep::tree_constant_rep (ComplexRowVector&)): Likewise.
+	(tree_constant_rep::tree_constant_rep (ComplexColumnwVector&)):
+	Likewise.
+
+	* src/tree-const.cc: Add pragma implementation.  Merge in contents of
+	tc-index.cc and tc-assign.cc so that the pragma interface/pragma
+	implementation hack will do some good.
+	* src/tree-const.h: Include mx-base.h, not Matrix.h.  Add pragma
+	interface.  Delete unnecessary constructor declarations.
+
+	* src/unwind-prot.h, src/unwind-prot.cc (unwind_elem_tag): Rename
+	from _tag.
+	(unwind_elem_fptr): Rename from _fptr.
+	(unwind_elem_ptr): Rename from _ptr.
+
+	* NLConst.cc (NLConst::NLConst): Pass vector args by reference.
+
+	* src/procstream.h, src/procstream.cc, src/idx-vector.h,
+	src/idx-vector.cc, src/token.h, src/token.cc, src/unwind-prot.h,
+	src/unwind-prot.cc, src/symtab.h, src/symtab.cc, src/tree.h,
+	src/tree.cc, liboctave/Range.h, liboctave/Range.cc,
+	liboctave/QLD.h, liboctave/QLD.cc, liboctave/ODE.h,
+	liboctave/ODE.cc, liboctave/Quad.h, liboctave/Quad.cc,
+	liboctave/Objective.h, liboctave/Objective.cc, liboctave/NPSOL.h,
+	liboctave/NPSOl.cc, liboctave/NLFunc.h, liboctave/NLFunc.cc,
+	liboctave/Bounds.h, liboctave/Bounds.cc, liboctave/QP.h,
+	liboctave/QP.cc, liboctave/NLConst.cc, liboctave/LinConst.cc,
+	liboctave/LPsolve.cc, liboctave/LP.cc, liboctave/FSQP.cc,
+	liboctave/FEGrid.cc, liboctave/QPSOL.cc, liboctave/CollocWt.cc,
+	liboctave/DAEFunc.cc, liboctave/DAEFunc.h, liboctave/DAE.cc,
+	liboctave/NLEqn.cc, liboctave/ODEFunc.cc, liboctave/QPSOL.h,
+	liboctave/ODEFunc.h, liboctave/NLP.h, liboctave/NLEqn.h,
+	liboctave/NLConst.h, liboctave/LinConst.h, liboctave/LPsolve.h,
+	liboctave/LP.h, liboctave/FSQP.h, liboctave/FEGrid.h,
+	liboctave/DAE.h, liboctave/CollocWt.h:
+	Add pragma interface/implementation.
+
+	* src/f-svd.cc, src/f-schur.cc, src/f-qr.cc, src/f-lu.cc,
+	src/f-hess.cc, src/f-det.cc, src/f-chol.cc, src/f-qzval.cc,
+	src/f-inv.cc, src/f-ifft.cc, src/f-givens.cc, src/f-fft.cc, 
+	src/f-balance.cc, src/f-expm.cc, src/f-fsqp.cc, src/f-syl.cc,
+	src/xdiv.cc, src/xpow.cc, src/idx-vector.cc, src/pr-output.cc,
+	src/unwind-prot.cc, src/file-io.cc, liboctave/Bounds.h,
+	liboctave/CollocWt.h, liboctave/DAE.h, liboctave/EIG.h,
+	liboctave/FEGrid.h, liboctave/LP.h, liboctave/LPsolve.cc,
+	liboctave/LinConst.h, liboctave/NLEqn.cc, liboctave/NLEqn.h,
+	liboctave/NLP.h, liboctave/NPSOL.cc, liboctave/NPSOL.h,
+	liboctave/ODE.h, liboctave/Objective.h, liboctave/QLD.cc,
+	liboctave/QP.h, liboctave/QPSOL.h, liboctave/Quad.h:
+	Instead of including Matrix.h, only include the individual
+	matrix/vector/etc. header files that are needed.
+
+	* liboctave/QLD.cc, liboctave/ODE.cc, liboctave/NLFunc.cc,
+	liboctave/DAEFunc.cc, liboctave/DAE.cc, liboctave/NLEqn.cc,
+	liboctave/ODEFunc.cc:
+	Use 0, not NULL.
+
+	* liboctave/mx-inlines.cc: Include Complex.h.
+
+	* liboctave/mx-kludge.h: Don't enclose contents in extern "C++".
+
+	* liboctave/Matrix.h: Simply include mx-base.h and mx-ext.h.
+
+	* liboctave/mx-base.h: New file, includes all basic matrix/vector
+	header files.
+	* liboctave/mx-ext.h: New file, includes all extra matrix/vector
+	related header files.
+	* liboctave/mx-defs.h: New file, for matrix/vector related
+	defines.  Also provides forward declarations for all matrix/vector
+	classes.
+
+	* liboctave/Makefile.in: Cope with new files.
+
+	* liboctave/CmplxAEPBAL.cc, liboctave/CmplxDET.h,
+	liboctave/CmplxQR.cc, liboctave/CmplxSVD.h, liboctave/dbleDET.cc,
+	liboctave/dbleHESS.h, liboctave/dbleSCHUR.cc,
+	liboctave/CmplxAEPBAL.h, liboctave/CmplxHESS.cc,
+	liboctave/CmplxQR.h, liboctave/dbleAEPBAL.cc, liboctave/dbleDET.h,
+	liboctave/dbleLU.cc, liboctave/dbleSCHUR.h,
+	liboctave/CmplxCHOL.cc, liboctave/CmplxHESS.h,
+	liboctave/CmplxSCHUR.cc, liboctave/dbleAEPBAL.h,
+	liboctave/dbleGEPBAL.cc, liboctave/dbleLU.h, liboctave/dbleSVD.cc,
+	liboctave/CmplxCHOL.h, liboctave/CmplxLU.cc,
+	liboctave/CmplxSCHUR.h, liboctave/dbleCHOL.cc
+	liboctave/dbleGEPBAL.h, liboctave/dbleQR.cc, liboctave/dbleSVD.h,
+	liboctave/CmplxDET.cc, liboctave/CmplxLU.h, liboctave/CmplxSVD.cc,
+	liboctave/dbleCHOL.h, liboctave/dbleHESS.cc, liboctave/dbleQR.h,
+	liboctave/EIG.h, liboctave/EIG.cc:
+	New files, extracted from Matrix-ext.cc, in an attempt to allow
+	effective use of pragma interface/implementation and make
+	generated code somewhat smaller.
+	* liboctave/dColVector.cc liboctave/CColVector.cc: Likewise, from
+	ColVector.{cc,h}.
+	* liboctave/dRowVector.cc liboctave/CRowVector.cc: Likewise, from
+	RowVector.{cc,h}.
+	* liboctave/dMatrix.cc liboctave/CMatrix.cc: Likewise, from
+	Matrix.{cc,h}.
+	* liboctave/dDiagMatrix.cc liboctave/CDiagMatrix.cc: Likewise,
+	from DiagMatrix.{cc,h}.
+
+Fri Jun  3 15:32:53 1994  John Eaton  (jwe@schoch.che.utexas.edu)
+
+	* liboctave/Array.h: Include assert.h.
+	(DiagArray<T>::operator T ()): [! _AIX] Only call get() if i is
+	also equal to j.
+
+	* scripts/rem.m: Allow mixing of scalar/matrix args, but complain
+	if both args are matrices and the dimensions don't agree.
+
+	* src/lex.l (grab_help_text): Correct previous change.
+
+Thu Jun  2 12:08:18 1994  John Eaton  (jwe@schoch.che.utexas.edu)
+
+	* Matrix.h (conversion): New enum, for binary read/write
+	functions.
+	* Matrix.cc (read, write) New functions.
+	* file-io.cc (feof_internal, ferror_internal, fread_internal,
+	fwrite_internal, get_size_conv, get_whats_left): New functions.
+	* g-builtins.cc (builtin_feof, builtin_ferror, builtin_fread,
+	builtin_fwrite): New functions.
+	* builtins.cc (general_functions): Add them to the list.
+
+	* configure.in: Check for infinity() and quiet_nan().
+	* sysdep.h (octave_Inf, octave_NaN): New global variables.
+	* sysdep.cc (octave_ieee_init): New function.  Initialize
+	octave_Inf and octave_NaN.
+	(sysdep_init): Call it.
+	* builtins.cc (initialize_builtins): Don't compute Inf and NaN
+	values here.
+	
+Tue May 31 20:06:27 1994  John Eaton  (jwe@schoch.che.utexas.edu)
+
+	* src/variables.cc (identifier_exists): Only return 1 for
+	variables if they are also defined.
+
+Sun May 29 20:40:55 1994  John Eaton  (jwe@schoch.che.utexas.edu)
+
+	* src/lex.l: Don't declare beginning_of_function as static.
+	(COMMENT): Delete unnecessary exclusive start state.
+	(\#, \%): Handle comments directly.  Try to be smart about not
+	returning a newline character when reading a matrix list.
+	(grab_help_text): Don't put a newline back on the input stream.
+	* src/parse.y (list1): Set beginning_of_function to zero here.
+
+Wed May 25 03:34:17 1994  John Eaton  (jwe@schoch.che.utexas.edu)
+
+	* src/error.cc (error): If error_state is -2, don't do anything.
+	If the format string ends in a new line character, strip it, print
+	the error message, and set the error state to -2.
+	* src/tree.cc (tree_function::traceback_error): Don't set the
+	error_state if it is already negative.
+
+	* src/tree-const.cc (convert_to_row_or_column_vector): New function.
+	* src/idx-vector.cc (idx_vector::shorten): New function.
+	* src/tc-assign.cc (fortran_style_matrix_assignment
+	(tree_constant&, tree_constant&)): Handle deleting elements by
+	assignment of `[]'.  Use convert_to_row_or_column_vector to handle
+	conversion to a vector in the case of deleting some elements from
+	a matrix.  Use idx_vector::shorten() to remove unnecessary index
+	vector elements.
+	(do_scalar_assignment (tree_constant&, tree_constant*, int)):
+	Handle assignment of empty matrix.
+	If converting complex to real, delete old complex value.
+	(delete_rows (idx_vector&)): If deleting all rows of a column
+	vector, convert to empty matrix.
+	(delete_rows (Range&)): Ditto.
+	(delete_columns (idx_vector&)): If deleting all columns of a row
+	vector, convert to empty matrix.
+	(delete_columns (Range&)): Ditto.
+
+	* src/tc-extras.cc (column_max (tree_constant*, int, int)):
+	Use MAX, not MIN when trying to find the biggest scalar.
+	Likewise, find the complex scalar with the largest, not the
+	smallest absolute value.
+
+	* src/tc-assign.cc (do_matrix_assignment (tree_constant&,
+	tree_constant_rep::constant_type, tree_constant&): For case of
+	j_arg == matrix constant, don't negate return value of
+	indexed_assign_conforms().
+
+	* src/user-prefs.cc (commas_in_literal_matrix): New function.
+	Put functions in alphabetical order.
+	* src/user-prefs.h (commas_in_literal_matrix): New structure element.
+	Alphabetize structure elements and lists of functions.
+	* src/builtins.cc (string_variables): Add commas_in_literal_matrix
+	to the list.
+	* src/lex.l (<MATRIX>{SN}*\]{S}*): Pay attention to the value of
+	usre_pref.commas_in_literal_matrix when deciding whether to insert
+	a comma after seeing a ']' character.
+	(handle_identifier): Likewise.
+	(<MATRIX>{S}+): If commas are required, just eat the spaces.
+
+Tue May 24 19:49:51 1994  John Eaton  (jwe@schoch.che.utexas.edu)
+
+	* src/tc-assign.cc (tree_constant_rep::do_matrix_assignment
+	  (tree_constant&, tree_constant*, int)): Handle empty arguments
+	for two index values.
+	(tree_constant_rep::do_matrix_assignment
+	  (tree_constant&, tree_constant&)):
+	Likewise, for single index values.
+
+Mon May 23 01:43:23 1994  John Eaton  (jwe@schoch.che.utexas.edu)
+
+	* Makefile.in (snapshot, snapshot-version): New targets.
+
+	* configure.in: Handle --enable-run-in-place (was easier than
+	doing the work to parse --run-in-place like Emacs uses).
+
+	* acconfig.h: Add #undef for RUN_IN_PLACE.
+
+	* Makeconf.in (OCTAVE_HOME): New macro.
+	* src/Makefile.in (defaults.h): Use it instead of ${prefix}.
+
+	* Makeconf.in (OCTAVE_INFO_DIR, OCTAVE_LIB_DIR): New macros.
+	* src/Makefile.in (defaults.h): Substitute them too.
+
+	* src/defaults.h.in (OCTAVE_INFO_DIR): New macro, used if
+	RUN_IN_PLACE is defined.
+	(OCTAVE_LIB_DIR): Likewise.
+
+	* src/utils.cc (octave_home): Handle RUN_IN_PLACE
+	(octave_info_dir): Ditto.
+	(octave_lib_dir): Ditto.
+
+	* src/tree-const.cc (tree_constant_rep::diag (void)): For empty
+	matrix, return empty matrix.
+	(tree_constant_rep::diag (tree_constant &)): Likewise, regardless
+	of value of arg.
+
+	* scripts/int2str.m: Format as integer, not float.
+	Don't add trailing new line character.
+
+Sun May 22 22:13:01 1994  John Eaton  (jwe@schoch.che.utexas.edu)
+
+	* scripts/plot_int.m: When looking for imaginary arguments, check
+	if any element has an imaginary component, not if all elements
+	have imaginary components.
+
+Thu May 19 19:46:23 1994  John Eaton  (jwe@schoch.che.utexas.edu)
+
+	* src/parse.y (EXPR_AND_AND, EXPR_OR_OR): New tokens, for
+	short-circuit logical AND and OR operators.
+	(simple_expression): Handle new tokens.
+	* src/lex.l (&&) [SHORT_CIRCUIT_LOGICALS]: Return EXPR_AND_AND.
+	(||) [SHORT_CIRCUIT_LOGICALS]: Return EXPR_OR_OR.
+	* src/tree.cc (tree_binary_expression::eval): Handle short-circuit
+	boolean operators.
+	(tree_binary_expression::eval_error): Print different messages for
+	or_or/or and and_and/and.
+	* src/tree-base.h (tree_expression_type): Add new structure
+	elements and_and and or_or.
+	* src/tree-const.cc (tree_constant_rep::is_true): New function.
+
+Tue May 17 17:04:00 1994  John Eaton  (jwe@schoch.che.utexas.edu)
+
+	* src/idx-vector.cc (idx_vector::sort_uniq ()): New function.
+	* src/tc-assign.cc (tree_constant_rep::delete_rows ()): Use it.
+	(tree_constant_rep::delete_columns ()): Likewise.
+
+Mon May 16 13:31:33 1994  John Eaton  (jwe@schoch.che.utexas.edu)
+
+	* scripts/linspace.m: Replace for loop with range operation.
+	* scripts/logspace.m: Replace for loop with element by element
+	exponentiation.
+
+Sun May  8 00:49:38 1994  John Eaton  (jwe@schoch.che.utexas.edu)
+
+	* scripts/lqe.m: Correct comment.
+	Transpose k before returning. 
+
+Fri May  6 00:47:24 1994  John Eaton  (jwe@schoch.che.utexas.edu)
+
+	* src/tree.cc (quit_loop_now): New function.
+	(tree_while_command::eval): Use it.
+	(tree_for_command::eval): Ditto.
+
+	* src/tree.cc (tree_for_command::do_for_loop_once): New function.
+	(tree_for_command::eval): Use it.
+
+Mon May  2 19:45:39 1994  John Eaton  (jwe@schoch.che.utexas.edu)
+
+	* src/tree.cc (tree_for_command::eval): Handle returning,
+	breaking, and continuing for case of scalar expression in loop
+	control statement.
+
+Wed Apr 20 00:38:26 1994  John Eaton  (jwe@schoch.che.utexas.edu)
+
+	* src/lex.l (\[{S}*): Don't return ',' for this	match when
+	convert_spaces_to_comma is true, since that can never be the right
+	thing to do.
+
+	* All Makefile.in files: Set top_srcdir here.
+	* Makeconf.in: Not here.
+
+	* Makeconf.in: Use top_srcdir instead of root_srcdir
+
+	* configure.in: Update for autoconf-1.8.  Use AC_VERBOSE for
+	verbose messages.  Use AC_WARN and AC_ERROR instead of echo for
+	warning and error messages.  Organize feature tests a bit better.
+	Use new autoconf macros to check for C++ compiler.  Add copyright
+	notice.  Recognize --enable-dld instead of --with-dld since that
+	seems to be more in line with the intent of the --enable/--with
+	options for configure scripts.  Use new autoconf macros
+	AC_REVISION and AC_PREREQ.  Don't add -Wall to CFLAGS and CXXFLAGS
+	until after all feature tests are done.  Etc.
+
+Fri Apr 15 01:56:20 1994  John Eaton  (jwe@schoch.che.utexas.edu)
+
+	* acconfig.h: Add #undefs for HAVE_FINITE, HAVE_ISINF, and
+	HAVE_ISNAN.
+	* configure.in: Check for floatingpoint.h.
+	* src/sysdep.cc (sysdep_init): Disable trapping on common
+	exceptions for 386BSD systems that have floatingpoint.h.
+
+	* src/utils.cc: Don't declare ioctl() with prototype.
+
+Sat Apr  9 17:48:07 1994  John Eaton  (jwe@schoch.che.utexas.edu)
+
+	* src/tc-assign.cc (tree_constant_rep::fortran_style_matrix_assignment
+	  (tree_constant&, tree_constant&)):
+	Handle case of M (X) = scalar, where X is a zero-one vector with
+	only one nonzero element.
+
+	* src/tc-assign.cc (tree_constant_rep::do_vector_assign
+	  (tree_constant&, Range&):
+	Handle case of right hand side being a scalar.
+	(tree_constant_rep::do_vector_assign (tree_constant&, idx_vector&):
+	Ditto.
+
+	* src/tc-assign.cc (tree_constant_rep::do_matrix_assignment
+	  (int,tree_constant_rep::constant_type)):
+	Allow assignment of complex scalar too. 
+	(tree_constant_rep::do_matrix_assignment
+	  (tree_constant_rep::constant_type, int)):
+	Ditto.
+
+	* src/tree-const.h (REP_RHS_MATRIX): Initialize nr and nc.
+	Abort if rhs is not a real or complex matrix.
+
+Wed Apr  6 13:59:37 1994  John Eaton  (jwe@schoch.che.utexas.edu)
+
+	* liboctave/Range.cc (Range::nelem_internal): Use an integer, not
+	a double, for the number of intervals.	Avoid possible problems
+	with extended precision registers on some systems (e.g. x86/Linux).
+
+Mon Mar 28 17:23:18 1994  John Eaton  (jwe@schoch.che.utexas.edu)
+
+	* src/utils.cc (raw_mode): For OCRNL, ONOCR, and ONLRET, check to
+	see if they are defined before using them instead of checking to
+	see if NeXT is defined.
+
+	* info/terminal.c (terminal_prep_terminal): Check to see if OCRNL
+	is defined before using it instead of checking to see if NeXT is
+	defined.
+
+Thu Mar 24 03:21:01 1994  John Eaton  (jwe@schoch.che.utexas.edu)
+
+	* src/tree.cc (tree_parameter_list::define_from_arg_vector):
+	New function.
+	(tree_parameter_list::convert_to_const_vector): Ditto.
+	(tree_function::eval): Use them instead of trying to do this
+	in-line.
+
+	* src/symtab.h (symbol_record::global_link_context): New stack for
+	saving linked_to_global flag.
+	* src/symtab.cc (symbol_record::push_context): Save
+	linked_to_global too.
+	(symbol_record::pop_context): And restore it.
+
+Wed Mar 23 16:18:19 1994  John Eaton  (jwe@schoch.che.utexas.edu)
+
+	* doc/refcard.tex.in: New file.
+	* doc/Makefile.in: Create refcard.* and refcard-local.* from
+	refcard.tex.in.
+
+Tue Mar 22 15:23:55 1994  John Eaton  (jwe@schoch.che.utexas.edu)
+
+	* octave.sh: exec $OCTAVE_HOME/bin/octave.bin, not just
+	octave.bin.
+
+Thu Mar 17 01:06:10 1994  John Eaton  (jwe@schoch.che.utexas.edu)
+
+	* src/arith-ops.cc (do_binary_op (ComplexMatrix&, Matrix& b)):
+	Correctly handle element by element left division.
+
+	* src/g-builtins.cc (builtin_error): Return without calling error
+	(and setting error_state) if the message is empty.
+
+	* src/help.cc (operators): Correct help message for `.^'.
+
+	* src/tc-index.cc (tree_contant_rep::fortran_style_matrix_index):
+	Preserve vector orientation when indexing with a zero-one vector.
+
+	* src/tc-index.cc (tree_constant_rep::do_scalar_index): Handle
+	indexing a scalar with `0'.
+
+	* src/tc-index.cc (tree_constant_rep::do_scalar_index): Handle the
+	index `:' the same as the index `1'.
+
+Tue Mar 15 17:22:00 1994  John Eaton  (jwe@schoch.che.utexas.edu)
+
+	* liboctave/Array.cc: Fix typo in comments about compiler flags.
+
+Wed Mar  9 15:08:21 1994  John Eaton  (jwe@schoch.che.utexas.edu)
+
+	* Version 1.0.1.
+
+	* src/*.h: Use the macro octave_FOO_h instead of _FOO_h to protect
+	against multiple inclusion.
+	* liboctave/*.h: Likewise.
+
+	* liboctave/*.h: Surround contents of files in extern "C++" { }.
+
+Tue Mar  8 18:06:54 1994  John Eaton  (jwe@schoch.che.utexas.edu)
+
+	* src/tc-index.cc (tree_constant_rep::do_vector_index (const
+	tree_constant&) const): Don't crash if matrix is empty.
+
+	* scripts/norm.m: Return empty matrix for empty argument.
+
+Mon Mar  7 23:34:44 1994  John Eaton  (jwe@schoch.che.utexas.edu)
+
+	* doinstall.sh: chmod new directories to 755.
+
+Sat Mar  5 13:15:10 1994  John Eaton  (jwe@schoch.che.utexas.edu)
+
+	* bsd-math/log1p.c: Declare finite as returning int, not double.
+	* bsd-math/finite.c (finite): Add return type.
+
+Thu Mar  3 14:42:00 1994  John Eaton  (jwe@schoch.che.utexas.edu)
+
+	* liboctave/DiagMatrix.cc (operator *): Provide definitions for
+	DiagMatrix * DiagMatrix, ComplexDiagMatrix * ComplexDiagMatrix, 
+	ComplexDiagMatrix * DiagMatrix, and DiagMatrix * ComplexDiagMatrix.
+
+	* liboctave/ColVector.cc (operator >>): Provide definitions for
+	real and complex column vectors.
+
+	* liboctave/RowVector.cc (operator >>): Provide definitions for
+	real and complex row vectors.
+
+Wed Mar  2 18:00:47 1994  John Eaton  (jwe@schoch.che.utexas.edu)
+
+	* liboctave/Array.h (DiagArray::Proxy::operator & ()): Provide
+	function body.
+
+Tue Mar  1 13:18:35 1994  John Eaton  (jwe@schoch.che.utexas.edu)
+
+	* src/tree-const.cc (tree_constant::load (istream&)): Don't skip
+	past first type keyword if not global.
+	(tree_constant::load (istream&, tree_constant_rep::constant_type)): 
+	Allocate storage for reading complex scalar.
+
+Sun Feb 20 14:17:47 1994  John Eaton  (jwe@schoch.che.utexas.edu)
+
+	* scripts/menu.m: Don't fail on input that is empty or not a
+	scalar.
+
+	* Makefile.in (DISTFILES): Distribute ChangeLog.[0-9].
+
+	* src/lex.l (reset_parser): Don't resynch line number to command
+	history number if reading a script file.
+
+Thu Feb 17 01:36:19 1994  John Eaton  (jwe@schoch.che.utexas.edu)
+
+	* Version 1.0 released.
+
+	* src/file-io.cc (fopen_file_for_user): Improve error message.
+	(fopen_internal): Likewise.
+
+Wed Feb 16 02:21:05 1994  John Eaton  (jwe@schoch.che.utexas.edu)
+
+	* configure.in: Try harder to find finite, isnan, and isinf.
+	Use m4 `dnl' comments, not shell `#' comments.
+
+	* src/file-io.cc (file_io_get_file): New function.
+	(fgets_internal): Use it instead of trying to do this in line.
+	(frewind_internal, fseek_internal, ftell_internal, do_printf,
+	do_scanf): Likewise.
+	* (do_scanf): Allow file name as string for fscanf.
+	* (procss_scanf_format): Delete unused argument `args'.  Delete
+	unused local variable `arg_type'.  Don't complain if we can't
+	store the result of a requested conversion.  Only return
+	successfully if a conversion actually occurs, even if we are not
+	storing the value.
+
+Sun Feb 13 13:32:03 1994  John Eaton  (jwe@schoch.che.utexas.edu)
+
+	* Version 0.83 released.
+
+	* Array.h (DiagArray): Move inline definitions of get() and set()
+	before use by other inline functions.
+
+Sat Feb 12 14:15:45 1994  John Eaton  (jwe@schoch.che.utexas.edu)
+
+	* configure.in: Check for g77 last.  Even if it is ever actually
+	released, it probably won't be stable for quite a while.
+
+	* MAKEINFO.PATCH: New file.
+	* Makefile.in (DISTFILES): Distribute it.
+
+	* liboctave/Matrix.cc (operator + (Complex, const Matrix&)):
+	Make it work.
+	(operator - (Complex, const Matrix&)): Ditto.
+	(operator * (Complex, const Matrix&)): Ditto.
+	(operator / (Complex, const Matrix&)): Ditto.
+
+Fri Feb 11 00:03:39 1994  John Eaton  (jwe@schoch.che.utexas.edu)
+
+	* configure.in: Check for strerror too.
+
+	* configure.in: When saving CFLAGS as XCFLAGS and then restoring
+	the value, quote the RHS.
+
+	* src/g-builtins.cc (builtin_clc): Do the dirty work to clear the
+	screen here instead of using rl_clear_screen to avoid printing
+	prompt unnecessarily.
+
+Thu Feb 10 00:26:32 1994  John Eaton  (jwe@schoch.che.utexas.edu)
+
+	* src/utils.cc: Add all the cruft that the autoconf manual
+	suggests for including dirent.h.
+
+	* info/terminal.c (terminal_prep_terminal): [HAVE_TERMIOS_H &&
+	NeXT]: Don't use OCRNL, as someone says NeXT's termios.h doesn't
+	have it.
+
+	* configure.in (GCC_IEEE_FP_FLAG): Correct check for ix86 Linux.
+	Don't try to check for CC == gcc.
+	Add GCC_IEEE_FP_FLAG to CFLAGS while checking for IEEE FP
+	functions finite, isnan, and isinf.
+
+	* readline/rldefs.h: Make definition of HAVE_POSIX_SIGNALS
+	conditional on definition of _POSIX_VERSION, not HAVE_TERMIOS_H.
+
+Wed Feb  9 02:41:32 1994  John Eaton  (jwe@schoch.che.utexas.edu)
+
+	* src/tree.cc (tree_function::octave_va_start): Rename from
+	va_start to avoid conflict with va_start macro.
+	(tree_function::octave_var_arg): Likewise, rename from va_arg.
+	* src/g-builtins.cc (builtin_va_arg): Call octave_va_arg for the
+	current function instead of va_arg.
+	(builtin_va_start): Likewise, for octave_va_start.
+
+	* Version 0.82.1.
+
+	* doc/Makefile.in (clean): Also remove octave.in, octave.rd,
+	octave.ins, and octave.rds.
+
+	* src/t-builtins.cc (load_variable): Make it work for all
+	combinations of loading global or local variables when the
+	variable to be loaded is already a global variable, local
+	variable, a function, or even undefined.
+
+Tue Feb  8 00:33:09 1994  John Eaton  (jwe@schoch.che.utexas.edu)
+
+	* Version 0.82 released.
+
+	* liboctave/mx-kludge.cc (operator + (KL_MAT_TYPE, KL_MAT_TYPE)):
+	For an empty matrix with one nonzero dimension, be sure to return
+	a result of the same size.
+	(operator - (KL_MAT_TYPE, KL_MAT_TYPE)): Ditto.
+	(product (KL_MAT_TYPE, KL_MAT_TYPE)): Ditto.
+	(quotient (KL_MAT_TYPE, KL_MAT_TYPE)): Ditto.
+
+Mon Feb  7 01:30:19 1994  John Eaton  (jwe@schoch.che.utexas.edu)
+
+	* liboctave/Array.h, liboctave/array.cc (DiagArray): Back off on
+	indexing via Proxy class changes for AIX systems to avoid gcc (or
+	possibly AIX assembler?) bug.
+
+	* src/tree-const.cc (tree_constant_rep::maybe_resize (int,
+	force_orient)): Don't abort for a max index of zero.
+
+	* liboctave/Matrix.h (class RowVector, friend double operator *
+	(const RowVector&, const ColumnVector&)): Add missing const in
+	declaration.
+
+	* liboctave/Matrix.cc (Matrix::fill (val, r1, c1, r2, c2)): Set nc
+	to cols(), not rows().
+	(ComplexMatrix::fill (double val, r1, c1, r2, c2)): Likewise.
+	(ComplexMatrix::fill (Complex val, r1, c1, r2, c2)): Likewise.
+
+	* All source files: To match the documenation, refer to function
+	files, not M-files.  Rename functions and variables that refer to
+	_m_file_,  mfile, or mf to refer to _fcn_file, ffile, or ff.
+
+Sun Feb  6 19:08:26 1994  John Eaton  (jwe@schoch.che.utexas.edu)
+
+	* src/parse.y (yyerror): Don't crash if a parse error happens and
+	the current input line is NULL.
+
+Sat Feb  5 18:53:04 1994  John Eaton  (jwe@schoch.che.utexas.edu)
+
+	* src/file-io.cc (initialize_file_io): Don't use variable names
+	that start with `_'.
+	* src/file-io.cc (class file_info): Likewise.
+
+Fri Feb  4 01:15:59 1994  John Eaton  (jwe@schoch.che.utexas.edu)
+
+	* src/builtins.cc (general_functions): In usage message for fopen,
+	use `Valid' instead of `Legal'.
+
+	* src/file-io.cc (do_printf): Use `invalid' instead of `illegal'
+	in error message.
+	(do_scanf): Likewise.
+
+	* src/mappers.cc (atanh): Use correct formula.
+
+Thu Feb  3 22:08:40 1994  John Eaton  (jwe@schoch.che.utexas.edu)
+
+	* doc/refcard.tex: New file.
+	* doc/Makefile.in (all): Make refcard.ps.
+	(DISTFILES): Distribute refcard.tex, refcard.dvi, and refcard.ps.
+
+	* src/tree-const.cc (any_element_is_negative): Delete function.
+	(any_element_less_than): New function.
+	(any_element_greater_than): Ditto.
+	(tree_constant_rep::mapper): Use struct elements lower_limit,
+	upper_limit, and can_return_complex_for_real_arg to properly
+	handle functions like acos, asin, atanh, and acosh.
+
+	* src/builins.h (struct Mapper_fcn): Rename neg_arg_complex to 
+	can_return_complex_for_real_arg.  New elements, lower_limit and
+	upper_limit.
+	(struct builtin mappers functions): Rename neg_arg_complex to 
+	can_return_complex_for_real_arg.  New elements, lower_limit and
+	upper_limit.  Delete elements nargin_max and nargout_max.
+	* src/variables.cc (install_builtin_mapper_function): Handle new
+	struct elements can_return_complex_for_real_arg, lower_limit, and
+	upper_limit.  Don't use nargin_max and nargout_max -- they are
+	the same for all mapper functions.
+
+Wed Feb  2 05:06:56 1994  John Eaton  (jwe@schoch.che.utexas.edu)
+
+	* liboctave/Matrix.h: Don't include values.h.
+	* liboctave/Matrix-ext.cc: Include float.h
+	(DET::value_will_overflow): Use DBL_MAX, not MAXDOUBLE.
+	(ComplexDET::value_will_overflow): Likewise.
+	(DET::value_will_underflow): Use DBL_MIN, not MINDOUBLE.
+	(ComplexDET::value_will_underflow): Likewise.
+	* src/tree.cc: Include limits.h, not values.h.
+	(tree_builtin::max_expected_args): Use INT_MAX, not MAXINT.
+
+	* configure.in: If compiling on an ix86, set GCC_IEEE_FP_FLAG to
+	-mieee-fp.  We should no longer require the modified crt0 code on
+	Linux systems in order to get IEEE functions.
+	* Makeconf.in (GCC_IEEE_FP_FLAG): Substitute value.
+	(ALL_CFLAGS, UGLY_ALL_CFLAGS, ALL_CXX_FLAGS, UGLY_ALL_CXX_FLAGS,
+	ALL_LDFLAGS): Use it.
+
+Tue Feb  1 22:30:46 1994  John Eaton  (jwe@schoch.che.utexas.edu)
+
+	* src/builtins.cc (install_builtins): Make SEEK_SET, SEEK_CUR, and
+	SEEK_END constants.
+
+	* src/tree-plot.cc (tree_subplot_using::print): Only check column
+	number against max if max is greater than 0.
+
+Mon Jan 31 15:59:31 1994  John Eaton  (jwe@schoch.che.utexas.edu)
+
+	* scripts/strcmp.m: Correctly handle empty strings.
+
+	* src/parse.y (input): Recognize lone simple_list and simple_list
+	followed by error and '\n'.
+
+Fri Jan 28 00:20:30 1994  John Eaton  (jwe@schoch.che.utexas.edu)
+
+	* Version 0.81 released.
+
+	* src/octave.cc (clean_up_and_exit): Call cleanup_tmp_files() here
+	too.
+
+	* configure.in: Check for atexit and on_exit.
+	* src/octave.cc: Use HAVE_ATEXIT and HAVE_ON_EXIT (instead of
+	just checking to see if sun is defined) to decide whether to
+	define atexit as on_exit.
+	(main): Don't try to call atexit if it's missing and we don't have
+	on_exit either.
+
+Thu Jan 27 22:16:48 1994  John Eaton  (jwe@schoch.che.utexas.edu)
+
+	* configure.in: Check for gethostname and sys/utsname.h.
+	* utils.cc (gethostname): Steal replacement from bash.  Provide
+	definition if it looks like it's missing and we have
+	sys/utsname.h.
+
+	* liboctave/Array.h (DiagArray): Define non-const indexing
+	functions here.
+	* liboctave/Array.cc (DiagArray): Not here.
+
+	* liboctave/Array.h (DiagArray::Proxy): New class to handle
+	non-const reference indexing.  Allows different action if indexing
+	on left side of assignment operator.
+
+	* src/octave.cc (main): Call initialize_pager(),
+	initialize_readline(), and install_signal_handlers() before trying
+	to read startup files.
+
+	* src/octave.cc (input_from_startup_file): New global flag.
+	(execute_startup_files): Set it to 1 before reading startup files.
+	* src/parse.y (func_def_2): If input_from_startup_file, don't try
+	to compare file name and function name.
+
+Wed Jan 26 14:39:27 1994  John Eaton  (jwe@schoch.che.utexas.edu)
+
+	* readline/rldefs.h: Make better use of autoconf defines.
+
+Tue Jan 25 17:19:19 1994  John Eaton  (jwe@schoch.che.utexas.edu)
+
+	* liboctave/Matrix.cc (ComplexMatrix (DiagMatrix)): Make sure off
+	diagonal elements are zero.
+	(ComplexMatrix (ComplexDiagMatrix): Likewise.
+	(Matrix (DiagMatrix): Likewise.
+
+Fri Jan 21 17:43:11 1994  John Eaton  (jwe@schoch.che.utexas.edu)
+
+	* flibs.sh: Recognize libraries that match `/*.a'.
+
+Thu Jan 20 18:12:01 1994  John Eaton  (jwe@schoch.che.utexas.edu)
+
+	* Version 0.80.1.
+
+Wed Jan 19 14:48:27 1994  John Eaton  (jwe@schoch.che.utexas.edu)
+
+	* libcruft/odepack/stode.f: Don't try to `RETURN 0'.  This causes
+	lsode to fail, at least with Sun's f77.
+
+	* src/tree-const.cc (tree_constant_rep::load): Delete string
+	returned from extract_keyword.
+	* src/t-builtins.cc (builtin_load): Likewise.
+	* src/variables.cc (extract_keyword): Return new storage, not
+	static buffer.
+
+	* src/t-builtins.cc (builtin_save): If saving a named list of
+	variables, use is_globally_visible to decide whether to mark
+	variables in the current symbol table as global.
+
+Tue Jan 18 11:57:03 1994  John Eaton  (jwe@schoch.che.utexas.edu)
+
+	* Version 0.80 released.
+
+	* doc/Makefile.in (install): Delete commands for installing
+	liboctave.info instead of trying to comment them out.
+
+	* liboctave/Array.cc: Allow users to compile with
+	-fexternal-stemplates and USE_EXTERNAL_TEMPLATES defined to
+	generate their own .o files with new types.
+
+	* Makeconf.in (includedir): Install include files in
+	$prefix/include/octave by default.
+
+	* liboctave/Makefile.in (TEMPLATE_SRC): New macro.
+	(install): Install files listed in $(TEMPLATE_SRC) too.
+
+	* info/search.h: Conditionally declare stricmp and strnicmp.
+	* info/search.c: Conditionally define stricmp and strnicmp.
+	* config.h.in: Add undefs for HAVE_STRICMP and HAVE_STRNICMP.
+
+	* configure.in: Check for stricmp and strnicmp too.
+
+	* doc/Makefile.in: For now, don't format or try to install the
+	liboctave manual. 
+	Don't distribute formatted copies of liboctave manual.
+
+Mon Jan 17 01:10:54 1994  John Eaton  (jwe@schoch.che.utexas.edu)
+
+	* doc/Makefile.in (clean): Remove all index files.
+
+	* src/Makefile.in (defaults.h): Depend on Makefile too.
+	* doc/Makefile.in (conf.texi): New rule for making conf.texi from
+	conf.texi.in.
+
+	* doc/conf.texi.in: New file.
+	* doc/octave.texi: Include conf.texi to get VERSION, OCTAVE_HOME,
+	and other variables that need to be set depending on the
+	configuration.
+
+	* Makefile.in (DISTFILES): Don't distribute PLOTTING.  Current
+	plotting info is in the Texinfo docs.
+
+Sat Jan 15 15:43:34 1994  John Eaton  (jwe@schoch.che.utexas.edu)
+
+	* config.sub: New file, from libg++-2.5.2.
+	* Makefile.in: Distribute config.sub.
+	* configure.in: Use config.sub to validate system types.  If it
+	fails, continue with target_host_type and canonical_host_type set
+	to unknown.  Leave target_host_type set to any alias given as the
+	TARGET argument to configure.
+
+	* readline/rldefs.h: If ultrix and HAVE_SGTTY_H, avoid Posix
+	terminal driver.
+	* configure.in: If configuring for ultrix, check for sgtty first.
+	If not found, go ahead and check for Posix terminal driver.
+
+	* configure.in: Don't try to do anything special for readline on
+	NeXT systems.
+	
+	* Makeconf.in: Define rules for making .d files here.
+	liboctave/Makefile.in: Not here.
+	src/Makefile.in: Or here.
+
+	* liboctave/Matrix.h (all Matrix/Vector operator = functions):
+	Simply call the base class operator =, then return *this.
+	(class ColumnVector): Declare RowVector a friend class, so it can
+	access the private constructor for the transpose operator.
+	(class RowVector): Likewise, for ColumnVector.
+	(class ComplexColumnVector): Likewise, for CommplexRowVector.
+	(class ComplexRowVector): Likewise, for ComplexColumnVector.
+	Numerous formatting cleanups.
+
+Thu Jan 13 13:17:47 1994  John Eaton  (jwe@schoch.che.utexas.edu)
+
+	* Version 0.79.90.
+
+	* builtins.cc: Include missing-math.h.
+
+	* src/missing-math.h: Provide declarations for acosh, asinh,
+	atanh, and gamma whether they are actually missing or not, because
+	they are not part of the standard math.h, and the g++/libg++
+	installation no longer provides declarations for them.
+
+	* src/sighandlers.h (RETSIGTYPE): Define here.
+	(BADSIG): Likewise.
+	(sig_handler): Likewise.
+
+	* src/g-builtins.cc: Include sighandlers.h
+	Don't define RETSIGTYPE, BADSIG, or sig_handler here.
+	* src/octave.cc: Or here.
+
+Wed Jan 12 16:12:27 1994  John Eaton  (jwe@schoch.che.utexas.edu)
+
+	* src/g-builtins.cc: Don't check nargin/nargout in *_options
+	functions.
+
+	* src/f-qpsol.cc, src/f-quad.cc, src/f-lsode.cc, src/f-fsolve.cc,
+	src/f-dassl.cc, liboctave/QPSOL.cc, liboctave/Quad.cc,
+	liboctave/ODE.cc, liboctave/NLEqn.cc, liboctave/DAE.cc:
+	Similar changes for these classes/functions as the following
+	changes for src/f-npsol.cc and liboctave/NPSOL.cc:
+
+	* src/f-npsol.cc (npsol_opts): New static variable to hold Octave's
+	current idea of npsol options.
+	(npsol): Call nlp.copy (npsol_opts) after creating NPSOL object.
+	(npsol_option_table): New static list of options for npsol.
+	(print_npsol_option_list): New function.
+	(do_npsol_option): New function.
+	(npsol_options): Make it work.
+
+	* liboctave/NPSOL.cc (NPSOL_options): New class.
+	* (NPSOL): Also derive from NPSOL_options.
+	* (minimize): Call pass_options_to_npsol before calling npsol.
+	* (NPSOL::option): No longer works.  Print error message instead.
+	* (NPSOL::set_default_options): Now a member of NPSOL_options class.
+
+	* src/utils.cc: If missing, declare strcasecmp, strncasecmp.
+	* (almost_match): Add new argument to do case-insensitive matches.
+	* (keyword_almost_match): New function to match a string against a
+	list of keywords.
+
+	* liboctave/NLP.h (NLP): Add destructor and copy constructor.
+
+	* configure.in: Check for strcasecmp and strncasecmp.
+	* config.h.in: Add #undefs for HAVE_STRCASECMP and STRNCASECMP.
+	* src/strcasecmp.c, src/strncase.c: New files, from glibc.
+	* src/Makefile.in (SOURCES, OBJECTS): List them.
+
+	* src/builtins.cc (general_functions): Improve usage message for
+	the *_options functions.
+	(print_usage): New arg, just_usage with default value of 0.
+	If nonzero, don't print info about where to find additional help.
+
+	* src/Makefile.in (INCLUDES): Add error.h.
+	(SOURCES): Add error.h.
+
+	* src/tree.cc (tree_identifier::parse_m_file): call reset_parser
+	before calling yyparse ().
+	* src/tc-extras.cc (eval_string): Likewise.
+	Don't save previous symbol table.  That is handled by the
+	unwind protect.
+
+	* src/lex.l (reset_parser): Don't unconditionally call yyreset.
+	Add a couple of comments.
+	(yywrap): Always return 1, not 0.
+	(yy_flex_alloc, yy_flex_realloc, yy_flex_free): #if 0 out.
+
+	* src/utils.cc (raw_mode): Only complain about stdin not being a
+	tty if we are really interactive.
+
+	* src/octave.cc (main): End startup message with endl to ensure
+	flushing before other output.
+	* Turn of readline's blink_matching_paren feature if not
+	interactive, or if reading from a file specified on the command
+	line.
+
+	* src/octave.cc (main): Set the symbol table context just before
+	calling reset_parser in the main loop.
+	* src/lex.l (reset_parser): Not here.
+
+	* src/input.cc (octave_gets): Declare static.
+	(octave_read): Also handle echoing input if not using readline.
+
+	* Makefile.in (DISTFILES): Add SENDING-PATCHES to the list.
+
+Mon Jan 10 14:30:13 1994  John Eaton  (jwe@schoch.che.utexas.edu)
+
+	* scripts/corrcoef.m, scripts/fortran_vec.m, scripts/kurtosis.m,
+	scripts/ols.m, scripts/skewness.m, scripts/cov.m, scripts/gls.m,
+	scripts/mahalanobis.m, scripts/pinv.m: New script files from Kurt
+	Hornik (hornik@neuro.tuwien.ac.at) and the Department of
+	Probability Theory and Statistics TU Wien, Austria. 
+
+Sun Jan  9 01:11:05 1994  John Eaton  (jwe@schoch.che.utexas.edu)
+
+	* src/g-builtins.cc (builtin_fsqp_options): If FSQP_MISSING is
+	defined, don't call fsqp_options; just print usage message.
+	(builtin_npsol_options): Likewise, for npsol_options.
+	(builtin_qpsol_options): Likewise, for qpsol_options.
+	* src/builtins.cc (general_functions): Provide different usage
+	message for fsqp_options depending on whether FSQP_MISSING is
+	defined.  Likewise for npsol_options and qpsol_options.
+
+Sat Jan  8 16:45:57 1994  John Eaton  (jwe@schoch.che.utexas.edu)
+
+	* libcruft/misc/dostop.c: Include config.h.
+
+	* src/variables.cc (extract_keyword): Use ostrstream instead of
+	fixed length buffer.  For keywords with string values, return
+	value in static buffer.
+	* src/t-builtins.cc (builtin_load): Handle new argument list for
+	extract_keyword.  Handle possiblity of load_variable setting
+	error_state.
+	* src/tree-const.cc (tree_constant_rep::load): Handle new argument
+	list for extract_keyword.
+
+Fri Jan  7 13:20:47 1994  John Eaton  (jwe@schoch.che.utexas.edu)
+
+	* src/f-eig.cc (builtin_eig_2): Rename from builtin_eig.
+	* src/f-fsolve.cc (builtin_fsolve_2): Rename from builtin_fsolve.
+	* src/f-inv.cc (builtin_inv_2): Rename from builtin_inv.
+
+Thu Jan  6 12:29:41 1994  John Eaton  (jwe@schoch.che.utexas.edu)
+
+	* src/tree-base.h (tree::save): Add optional argument `precision'.
+	* src/tree-const.cc (tree_constant::save): Ditto.
+	(tree_constant_rep::save): Ditto.
+	* src/symtab.cc (symbol_def::save): Ditto.
+	(symbol_record::save): Ditto.
+	(symbol_table::save): Ditto.
+
+	* src/t-builtins.cc (builtin_save): Pass user_pref.save_precision
+	to symbol table save functions.
+	* src/builtns.cc (string_variables): Add save precision to thelist.
+	(install_builtins): Initialize it.
+	* src/user-prefs.cc (set_save_precision): New function.
+	* src/user-prefs.h (user_pref.save_precision): New data element.
+
+	* liboctave/Matrix-ext.cc: Provide correct prototypes for dgeesx
+	and zgeesx.
+	* (SCHUR::init): Don't declare a dummy_select function pointer,
+	just pass `(void *) 0' instead, since the dummy argument is never
+	supposed to be used anyway.
+
+	* src/input.cc (initialize_readline): Cast command_completer to
+	CPPFunction, not Function, now that readline has more than one
+	function typedef.
+	* Add extern declaration for free_undo_list ().
+
+	* Replace readline source from GDB with readline source from bash.
+	This allows paren matching.
+
+Wed Jan  5 01:20:26 1994  John Eaton  (jwe@schoch.che.utexas.edu)
+
+	* configure.in: Also check for sys/select.h.
+
+	* liboctave/RowVector.cc (ComplexRowVector::operator *): Complete
+	function body.  Put code in-line rather than making a call to the
+	BLAS routine zdotu to avoid having to cope with the various ways
+	that Fortran compilers might translate this.
+
+	* src/input.cc (operate_and_get_next): New function, from bash.
+	(initialize_readline): Bind operate_and_get_next to C-O here.
+
+	* src/input.cc (command_completer, command_generator):
+	Declare static here.
+	* srs/input.h (command_completer, command_generator):
+	Not extern here.
+
+	* g-builtins.cc (builtin_warranty): Change copyright info.
+	* octave.cc (verbose_usage): Likewise.
+	(main): Likewise.
+
+Mon Jan  3 15:49:41 1994  John Eaton  (jwe@schoch.che.utexas.edu)
+
+	* src/fnmatch.c, src/fnmatch.h: New files for pattern matching
+	from the GNU C library.
+	* src/Makefile.in: Add them to the appropriate lists.
+	* src/t-builtins.cc (builtin_save): Use fnmatch to do pattern
+	matching instead of using regular expressions.
+	(builtin_clear): Likewise.
+	(glob_pattern_p): New function.
+	(builtin_save): Print error message and return if only given one
+	argument that contains globbing characters.
+
+	* src/symtab.cc (symbol_record::save): Don't attempt to save
+	undefined variables.
+
+Wed Dec 29 02:55:08 1993  John Eaton  (jwe@schoch.che.utexas.edu)
+
+	* scripts/rank.m: Also need to compute SVD when nargin == 2.
+	Correct usage message.
+
+Wed Dec 15 01:44:18 1993  John Eaton  (jwe@schoch.che.utexas.edu)
+
+	* src/f-lpsolve.cc, src/f-fsqp.cc, src/f-npsol.cc, src/f-qpsol.cc,
+	src/f-lsode.cc, src/f-dassl.cc, src/f-fsolve.cc, src/f-quad.cc:
+	New stub options functions, XXX_options, and XXX_options_2 (for
+	future dld use), where XXX is lpsolve, fsqp, npsol, etc.
+	* src/f-lpsolve.h, src/f-fsqp.h, src/f-npsol.h, src/f-qpsol.h,
+	src/f-lsode.h, src/f-dassl.h, src/f-fsolve.h, src/f-quad.h:
+	Declare XXX_options functions.
+	* src/builtins.cc (builtin_general_functions): Add new XXX_options
+	functions to the list of builtin functions.
+	* src/g-builtins.cc: Define builtin_XXX_options functions.
+	* src/g-builtins.h: Declare them.
+
+	* scripts/tzero.m: Add missing comma in fprintf call.
+
+Tue Dec 14 00:24:35 1993  John Eaton  (jwe@schoch.che.utexas.edu)
+
+	* libcruft/quadpack/*.f: Modify to handle user-requested
+	termination from inside the user-supplied function.
+	* src/f-quad.cc (quad_user_function): Set quad_integration_error
+	if an error is encountered in the user-supplied function.
+	* liboctave/Quad.h (quad_integration_error): New global variable.
+	* liboctave/Quad.cc (user_function): Handle
+	quad_integration_error, and error flag for modified Quadpack
+	functions.
+
+	* src/tree.cc (tree_simple_assignment_expression::eval): Check
+	error status after calling convert_to_const_vector () on the
+	argument list.
+	(tree_index_expression::eval): Ditto.
+
+	* src/tree.cc (tree_argument_list::convert_to_const_vector):
+	If an error is encountered while evaluating an element of the
+	list, print an error message including the element number.
+
+	* liboctave/ODE.cc (integration_error): New private data member.
+	(ODE constructors): Initialize it to zero.
+	(ODE::integrate (double)): Reset it to zero before each
+	integration step.
+	(lsode_f): Treat empty vector returned from user-supplied function
+	as an error.
+	* src/f-lsode.cc (lsode_user_function): Return empty vector if
+	error is encountered in user-supplied function.  Don't jump to top
+	level on error.
+
+	* libcruft/odepack/lsode.f (lsode): Return with istate = -13 on
+	error from user supplied subroutine.
+	* libcruft/odepack/lsode.f (lsode): Handle extra argument returned
+	from user-supplied function.
+	* libcruft/odepack/stode.f (stode): Likewise.
+	* libcruft/odepack/prepj.f (prepj): Likewise.
+
+Wed Dec  8 01:30:57 1993  John Eaton  (jwe@schoch.che.utexas.edu)
+
+	* liboctave/DAE.cc (integration_error): New private data member.
+	(DAE constructors): Initialize it to zero.
+	(DAE::integrate (double)): Reset it to zero before each
+	integration step.
+	(dassl_f): Treat empty vector returned from user-supplied function
+	as an error.
+	* src/f-dassl.cc (dassl_user_function): Return empty vector if
+	error is encountered in user-supplied function.  Don't jump to top
+	level on error.
+
+	* liboctave/NPSOL.cc (npsol_objective_error): New global variable.
+	(npsol_objfun): Set to zero before calling user-supplied function.
+	Check after calling user-supplied function.
+	Set mode to -1 on error.
+	(npsol_confun): Set mode to -1 on error.
+	(npsol declaration): Declare args for user-supplied functions.
+	* src/f-npsol.cc (npsol_objective_function): If an error is
+	encountered in the calculation of the objective function, set
+	npsol_objective_error to 1.
+	(npsol_constraint_function): Treat empty vector returned from
+	user-supplied function as an error.
+
+	* liboctave/Array.cc (*::checkelem): Correct bounds checking.  On
+	error, return uninitialized value of type T.  This avoids placing
+	an extra requirement on the class that can be used as an array
+	element.
+	(*::operator ()): Likewise.
+
+Mon Dec  6 07:24:49 1993  John Eaton  (jwe@schoch.che.utexas.edu)
+
+	* liboctave/NLEqn.cc (hybrd1 declaration): Declare args for
+	user-supplied fuction.
+	(hybrj1): Likewise.
+	(hybrd1_fcn): Treat return of empty vector from user supplied
+	function as an error by setting iflag to -1.
+	(hybrj1_fcn): Likewise.
+	(solve): Handle case of info < 0 returned from hybrd1.
+
+	* src/f-fsolve.cc (fsolve_user_function): Don't jump to top level
+	on error in user-supplied function.  Treat empty vector returned
+	from user-supplied function as error.
+	(hybrd_info_to_fsolve_info): Translate -1 (failure in evaluation
+	of user-supplied function) to -2.
+	* scripts/perror.m (fsolve case): Handle -2.
+
+	* info/error.c (program_name): Initialize to info, not NULL.
+
+	* info/session.c (initialize_info_session): Don't exit if term is
+	too dumb or too small to use info.  Return int status instead.
+	* info/info.h (TERM_TOO_SMALL): New macro.
+
+	* src/t-buitlins.cc (try_info): Check return value from
+	initialize_info_session ().
+
+	* liboctave/Array.cc (DiagArray<T>::DiagArray (int n, const T& val)):
+	Set number of rows and columns to n, not 0.
+
+Sat Dec  4 14:01:41 1993  John Eaton  (jwe@schoch.che.utexas.edu)
+
+	* src/lex.h (YY_INPUT): Undefine if defined, then always define
+	the way we want.
+	(YY_FATAL_ERROR): Likewise.
+
+	* src/lex.l (yywrap): Declare static.
+	(yy_flex_alloc): New function, so we don't have to link with
+	libfl.a when using flex 2.4.x.
+	(yy_flex_realloc): Ditto.
+	(yy_flex_free): Ditto.
+
+Thu Dec  2 19:23:43 1993  John Eaton  (jwe@schoch.che.utexas.edu)
+
+	* scripts/*.m: Add copying notice to script files.
+
+	* src/input.cc (command_generator): Return copy of matching string.
+
+	* src/input.cc (command_generator): Correctly delete array of
+	character strings.
+	* src/symtab.cc (symbol_table::save): Likewise.
+	* src/utils.cc (pathstring_to_vector): Likewise.
+
+	* src/utils.cc (get_m_file_names): When reallocating vector of
+	strings, delete original vector of pointers, but not the strings
+	they point to.
+
+Tue Nov 30 12:36:41 1993  John Eaton  (jwe@schoch.che.utexas.edu)
+
+	* liboctave/RowVector.cc, liboctave/ColVector.cc,
+	liboctave/DiagMatrix.cc, liboctave/Matrix.cc,
+	liboctave/Matrix-ext.cc: Massive rewrite to cope with new
+	derivation scheme.
+
+	* liboctave/Matrix.h: Include Array.h, and derive Matrix,
+	ComplexMatrix, etc. from Array<double>.  Derive Complex
+	versions from Array<Complex>.  Delete declarations of functions
+	now inherited from the Array classes.
+	* Include mx-kludge.h with appropriate #defines in each class that
+	needs it.
+	* liboctave/Matrix.cc: Include mx-kludge.cc with appropriate
+	#defines in each class that needs it.
+
+	* liboctave/Makefile.in (INCLUDES): Add Array.h, MArray.h, and
+	mx-kludge.h.
+	(SOURCES): Add Array.cc.
+	(EXTRAS): Add MArray.cc and mx-kludge.cc.
+
+	* liboctave/mx-kludge.h, liboctave/mx-kludge.cc: New files to
+	implement the MArray functionality with macros until g++ can
+	handle the MArray stuff.
+
+	* liboctave/MArray.h, liboctave/MArray.cc: New files for generic
+	arrays with simple math functions for like-types.  This won't
+	quite work with g++ yet, so it's not used anywhere.
+
+	* liboctave/Array.h, liboctave/Array.cc: New files for generic
+	arrays.
+
+	* liboctave/mx-inlines.cc: Add const for const arguments.
+
+	* src/file-io.cc (file_info): Rename class from File_info.
+	(file_info::operator =): Fix memory leak by deleting old name
+	and mode before saving new.  Don't do copy if source and
+	destination are the same.
+
+	* src/tree.cc (tree_matrix::eval): Plug memory leak.
+
+	* src/tree.cc (tree_builtin::tree_builtin): Check to see that nm,
+	not my_name, is non-NULL before saving it.
+
+	* src/tree.cc (tree_identifier::eval, tree_gobal_command::eval):
+	After performing the assignment, delete the identifier created
+	for temporary asssignment since the destrucotr for
+	tree_simple_assignment_expression doesn't do it for us.
+
+	* src/tree.cc (tree_function::stash_m_file_name): Delete file_name
+	before saving it.
+	(tree_function::stash_function_name): Likewise, for fcn_name.
+
+	* src/lex.l, src/lex.h: Make quote_is_transpose globally visible.
+	* src/parse.y (param_list): Use it, and recognize empty parameter
+	lists here.
+
+	* src/parse.y (simple_expr1): Recognize empty matrices here.
+	(matrix): Not here.
+
+	* src/arith-ops.cc (do_binary_op): The matrix product and quotient
+	functions aren't class member functions now.
+
+	* src/tc-index.cc, src/tc-assign.cc, src/symtab.cc,
+	src/tree-plot.cc, src/idx-vector.cc, src/tree-const.cc:
+	Call ::error, not just error, since g++ now complains about not
+	being able to find a non-hidden member function by that name.
+
+	* src/tree-const.cc: Call ::real and ::imag, not just real and imag,
+	since g++ now complains about not being able to find non-hidden
+	member functions by those names.
+
+	* src/tree-const.cc (tree_constant_rep::force_numeric): Handle case
+	of zero-length strings.
+
+	* src/tree-const.cc (tree_constant_rep::convert_to_str): Null
+	terminate strings created from scalars.
+
+	* src/tc-index.cc (tree_constant_rep::fortran_style_matrix_index): Use
+	data(), not fortran_vec().
+	* src/idx-vector.cc (idx_vector::idx_vector): Likewise.
+
+	* src/SLStack.cc: Move function definitions here.
+	* src/SLStack.h: From here.  Include SLStack.cc if not using
+	external templates.
+
+	* src/unwind-prot.h: Move class declaration here.
+	* src/unwind-prot.cc: From here.
+
+	* src/xdiv.h, src/xpow.h, src/variables.h, src/utils.h,
+	src/user-prefs.h, src/t-builtins.h, src/sighandlers.h,
+	src/pr-output.h, src/pager.h, src/octave-hist.h, src/mappers.h,
+	src/input.h, src/help.h, src/gripes.h, src/g-builtins.h,
+	src/f-syl.h, src/f-svd.h, src/f-schur.h, src/f-rand.h,
+	src/f-qzval.h, src/f-quad.h, src/f-qr.h, src/f-qpsol.h,
+	src/f-npsol.h, src/f-lu.h, src/f-lsode.h, src/f-lpsolve.h,
+	src/f-inv.h, src/f-ifft.h, src/f-hess.h, src/f-givens.h,
+	src/f-fsqp.h, src/f-fsolve.h, src/f-fft.h, src/f-expm.h,
+	src/f-eig.h, src/f-det.h, src/f-dassl.h, src/f-colloc.h,
+	src/f-chol.h, src/f-balance.h, src/error.h, src/dynamic-ld.h,
+	src/builtins.h, src/arith-ops.h, src/tree-const.h, src/tree.h,
+	src/token.h, src/symtab.h, src/procstream.h, src/idx-vector.h,
+	src/file-io.h, src/tree-base.h, src/unwind-prot.h, src/Stack.h,
+	liboctave/LinConst.h, liboctave/FEGrid.h, liboctave/NLEqn.h,
+	liboctave/NLConst.h, liboctave/LPsolve.h, liboctave/LP.h,
+	liboctave/FSQP.h, liboctave/DAEFunc.h, liboctave/DAE.h,
+	liboctave/CollocWt.h, liboctave/Bounds.h, liboctave/Objective.h,
+	liboctave/ODEFunc.h, liboctave/NLFunc.h, liboctave/Range.h,
+	liboctave/Quad.h, liboctave/QP.h, liboctave/QPSOL.h,
+	liboctave/QLD.h, liboctave/NPSOL.h, liboctave/NLP.h,
+	liboctave/f77-uscore.h, liboctave/lo-error.h,
+	liboctave/Matrix.h:
+	Don't use #pragma interface.
+
+	* src/tc-index.cc, src/tc-assign.cc, src/symtab.cc,
+	src/procstream.cc, src/gripes.cc, src/f-syl.cc, src/f-svd.cc,
+	src/f-schur.cc, src/f-rand.cc, src/f-quad.cc, src/f-qr.cc,
+	src/f-qpsol.cc, src/f-npsol.cc, src/f-lu.cc, src/f-lsode.cc,
+	src/f-lpsolve.cc, src/f-inv.cc, src/f-ifft.cc, src/f-hess.cc,
+	src/f-givens.cc, src/f-fsqp.cc, src/f-fsolve.cc, src/f-fft.cc,
+	src/f-eig.cc, src/f-det.cc, src/f-dassl.cc, src/f-colloc.cc,
+	src/f-chol.cc, src/f-balance.cc, src/t-builtins.cc,
+	src/octave-hist.cc, src/input.cc, src/g-builtins.cc,
+	src/xdiv.cc, src/xpow.cc, src/user-prefs.cc, src/unwind-prot.cc,
+	src/tree-plot.cc, src/token.cc, src/tc-extras.cc, src/sysdep.cc,
+	src/sighandlers.cc, src/pr-output.cc, src/pager.cc,
+	src/mappers.cc, src/idx-vector.cc, src/help.cc, src/f-qzval.cc,
+	src/f-expm.cc, src/error.cc, src/dynamic-ld.cc, src/builtins.cc,
+	src/arith-ops.cc, src/variables.cc, src/utils.cc,
+	src/tree-const.cc, src/file-io.cc, src/tree.cc,
+	liboctave/sun-utils.cc, liboctave/mx-inlines.cc,
+	liboctave/RowVector.cc, liboctave/ColVector.cc,
+	liboctave/DiagMatrix.cc, liboctave/Matrix.cc,
+	liboctave/Matrix-ext.cc, liboctave/Quad.cc, liboctave/ODE.cc,
+	liboctave/LPsolve.cc, liboctave/FSQP.cc, liboctave/DAE.cc,
+	liboctave/DAEFunc.cc, liboctave/QP.cc, liboctave/Objective.cc,
+	liboctave/ODEFunc.cc, liboctave/NLFunc.cc, liboctave/NLConst.cc,
+	liboctave/LP.cc, liboctave/lo-error.cc, liboctave/Range.cc,
+	liboctave/QPSOL.cc, liboctave/NPSOL.cc, liboctave/NLEqn.cc,
+	liboctave/Matrix.cc, liboctave/Matrix-ext.cc,
+	liboctave/LinConst.cc, liboctave/FEGrid.cc,
+	liboctave/DiagMatrix.cc, liboctave/CollocWt.cc,
+	liboctave/ColVector.cc, liboctave/Bounds.cc:
+	Don't use #pragma implementation.
+
+	* src/lex.l, src/parse.y, src/procstream.cc, src/gripes.cc,
+	src/f-syl.cc, src/f-svd.cc, src/f-schur.cc, src/f-rand.cc,
+	src/f-quad.cc, src/f-qr.cc, src/f-qpsol.cc, src/f-npsol.cc,
+	src/f-lu.cc, src/f-lsode.cc, src/f-lpsolve.cc, src/f-inv.cc,
+	src/f-ifft.cc, src/f-hess.cc, src/f-givens.cc, src/f-fsqp.cc,
+	src/f-fsolve.cc, src/f-fft.cc, src/f-eig.cc, src/f-det.cc,
+	src/f-dassl.cc, src/f-colloc.cc, src/f-chol.cc,
+	src/f-balance.cc, src/t-builtins.cc, src/octave-hist.cc,
+	src/input.cc, src/g-builtins.cc, src/xdiv.cc, src/xpow.cc,
+	src/user-prefs.cc, src/unwind-prot.cc, src/tree-plot.cc,
+	src/token.cc, src/tc-extras.cc, src/sysdep.cc,
+	src/sighandlers.cc, src/pr-output.cc, src/pager.cc,
+	src/mappers.cc, src/idx-vector.cc, src/help.cc, src/f-qzval.cc,
+	src/f-expm.cc, src/error.cc, src/dynamic-ld.cc, src/builtins.cc,
+	src/arith-ops.cc, src/variables.cc, src/utils.cc,
+	src/tree-const.cc, src/file-io.cc, src/tree.cc: If HAVE_CONFIG_H
+	is defined, include config.h.
+
+	* config.h.in, acconfig.h: New files
+	* Makefile.in (DISTFILES): Add them to the list.
+
+	* Makeconf.in (root_srcdir): Define.
+	(INCFLAGS): Clean up.
+	(UGLY_ALL_CFLAGS): New macro.
+	(UGLY_ALL_CXXFLAGS): Likewise.
+	(UGLY_ALL_LDFLAGS): Likewise.
+
+	* configure.in: Convert to generate config.h.
+	Substitute root_srcdir in Makefiles.
+	Use AC_DEFINE(foo, 1) instead of DEFS="$DEFS -Dfoo=1".
+	If using g++ 2.5 or later, define USE_EXTERNAL_TEMPLATES.
+	Use UGLY_DEFS for what would have been substited in DEFS, for
+	those cases when we need DEFS instead of config.h.
+
+Tue Nov 16 04:59:19 1993  John Eaton  (jwe@schoch.che.utexas.edu)
+
+	* src/f-expm.cc, src/f-givens.cc, src/f-qzval.cc, src/f-syl.cc:
+	Include f77-uscore.h here.
+
+	* liboctave/ColVector.cc, liboctave/Matrix.cc,
+	liboctave/Matrix-ext.cc, liboctave/RowVector.cc: Move declarations
+	for Fortran functions here.
+	* liboctave/Matrix.h: From here. Don't include f77-uscore.h here.
+
+Mon Nov 15 04:03:34 1993  John Eaton  (jwe@schoch.che.utexas.edu)
+
+	* src/tc-extras.cc (min): For two-arg versions, use error(), not
+	FAIL.
+	(max): Likewise.
+	* src/idx-vector.cc (checkelem): Likewise.
+
+	* liboctave/Matrix.h, liboctave/Matrix.cc, liboctave/RowVector.cc,
+	liboctave/ColVector.cc, liboctave/DiagMatrix.cc,
+	liboctave/Matrix-ext.cc, liboctave/Bounds.cc, liboctave/DAE.cc,
+	liboctave/CollocWt.cc, liboctave/FEGrid.cc, liboctave/LinConst.cc,
+	liboctave/ODE.cc, liboctave/NLEqn.cc: Don't abort or exit on
+	errors.  Instead print some message by calling the function
+	pointed to by current_liboctave_error_handler and then return.
+
+	* liboctave/lo-error.cc: New file, for liboctave error handling
+	stuff.
+
+Sun Nov 14 23:28:12 1993  John Eaton  (jwe@schoch.che.utexas.edu)
+
+	* src/utils.cc (default_path): Handle OCTAVE_PATH from the
+	environment like TeX handles TEXINPUTS.  If the path starts with
+	`:', prepend the standard path.  If it ends with `:' append the
+	standard path.  If it begins and ends with `:', do both (which is
+	useless, but the luser asked for it...).
+	(octave_lib_dir): Plug memory leak.
+
+Sat Nov 13 02:41:24 1993  John Eaton  (jwe@schoch.che.utexas.edu)
+
+	* src/symtab.h (symbol_record::context): New data member, to allow
+	recursive functions to work.
+	* src/symtab.cc (symbol_record::push_context): New function
+	(symbol_record::pop_context): Ditto.
+	(symbol_table::pop_context): Ditto.
+	(symbol_table::push_context): Ditto.
+
+	* src/tree.cc (tree_function::eval): If call_depth is > 1, push
+	symbol table context and add unwind protect to pop it on exit or
+	error.
+	(pop_symbol_table_context): New function for unwind protect.
+
+	* configure.in: Use AC_HAVE_HEADERS(unistd.h) instead of
+	AC_UNISTD_H.
+
+	* src/lex.l, src/f-quad.cc, src/f-rand.cc, src/f-lpsolve.cc,
+	src/f-fsqp.cc, src/f-fsolve.cc, src/f-det.cc, src/f-dassl.cc,
+	src/f-colloc.cc, src/utils.cc, src/variables.cc, src/tree.cc,
+	src/tree-const.cc, src/tc-extras.cc, src/sysdep.cc, src/symtab.cc,
+	src/octave-hist.cc, src/pr-output.cc, src/input.cc,
+	src/g-builtins.cc, src/f-det.cc, src/f-inv.cc, src/file-io.cc:
+	Convert most calls to message() to calls to warning() or error()
+	instead.
+
+	* src/f-npsol.cc (npsol): Don't try to create the linear
+	constraint object before checking array sizes.
+
+Fri Nov 12 04:36:12 1993  John Eaton  (jwe@schoch.che.utexas.edu)
+
+	* src/tc-inlines.cc (is_one_zero): New function.
+	* src/tc-assign.cc: Everywhere we check for is_zero_one, also
+	check for is_one_zero.  Some people write ranges that go in
+	decreasing order...
+	* src/tc-index.cc: Likewise.
+
+	* src/tc-inlines (index_check (Range&, int&, char*)): Eliminate
+	second arg -- there is no need to return the max value of the
+	range.  Correctly compute and check the minimum value.
+	* src/tc-index.cc: Change all callers, and check the max value
+	there.
+	* src/tc-assign.cc: Likewise.
+
+	* src/tc-assign.cc (do_vector_assign): Handle assignment of empty
+	matrix for int, idx_vector, and Range cases.
+	(do_matrix_assign): Likewise, for cases when one of the indices is
+	a colon and the other is an int, idx_vector, or Range.
+
+	* liboctave/Range.h (Range): Rename private data members rng_foo
+	instead of just _foo.
+	* liboctave/Range.cc: Change names where used.
+
+	* liboctave/Range.cc (max): Return correct value even when the
+	elements in the range don't line up exactly with the limit.
+	(min): Likewise.
+	(sort): New function.
+
+	* src/tc-assign.cc (delete_row (int)): New function.
+	(delete_rows (idx_vector&)): Ditto.
+	(delete_rows (Range&)): Ditto.
+	(delete_column (int)): New function.
+	(delete_columns (idx_vector&)): Ditto.
+	(delete_columns (Range&)): Ditto.
+
+	* src/tree-const.h (is_empty): Don't try checking rows and columns
+	if type is magic_colon or unknown.  Return false instead.
+	(is_zero_by_zero): New function.
+
+	* src/idx-vector.cc (sort): New function.
+	(intcmp): New static function, for sorting.
+
+Thu Nov 11 02:31:13 1993  John Eaton  (jwe@schoch.che.utexas.edu)
+
+	* scripts/menu.m: Update to use new va_start() and va_arg()
+	functions.
+
+	* src/g-builtins.cc (builtin_va_arg): Rename from
+	builtin_get_next_arg.
+	(builtin_va_start): New function.
+	* src/builtins.cc (builtin_general_functions): Fix up list.
+
+	* src/tree.cc (tree_function::va_arg): Rename from get_next_arg.
+	(tree_function::va_start): New function.
+
+	* src/tree.h (tree_function::num_named_args): New data member.
+	* src/tree.cc (tree_function::define_param_list): Set it.
+	(tree_function::eval): Unwind-protect it.
+
+Wed Nov 10 03:37:44 1993  John Eaton  (jwe@schoch.che.utexas.edu)
+
+	* src/tree.cc (tree_identifier::assign): Also check to make sure
+	that the symbol record is defined since symbol_record::is_variable
+	may return true even if the record is undefined.
+	* src/variables.cc (link_to_global_variable): Don't try to copy a
+	NULL_TREE_CONST.
+
+	* src/tree-const.cc (tree_constant_rep::matrix_value): If the
+	current value is a scalar, return 1x1 matrix.
+	* src/tc-assign.cc (tree_constant_rep::check_vector_assign):
+	Handle case of zero size LHS.
+	Clean up formatting of some error messages.
+
+	* src/lex.l ({EL}): Recognize ... when not at end of line.
+	* src/octave.cc (curr_function): New global variable.
+	* src/g-buitlins.cc (builtin_get_next_arg): New function.
+	* src/builtins.cc (builtin_general_functions): Add it to the list.
+	* src/parse.y (param_list1): Handle ... at end of parameter list.
+	Abort parse on error.
+	(ELLIPSIS): New token, for variable argument lists.
+	* src/tree.h (tree_function): Add varargs_ok, args_passed,
+	num_args_passed, and curr_arg_number data members to handle
+	variable argument lists.
+	(tree_parameter_list::marked_for_varargs): New data member.
+	* src/tree.cc (tree_function::takes_varargs): New function.
+	(tree_function::get_next_arg): New function.
+	(tree_parameter_list::mark_varargs): New function.
+	(tree_parameter_list::takes_varargs): New function.
+	(tree_function::eval): Set curr_function, args_passed, and
+	num_args_passed for use by get_next_arg.
+
+Mon Nov  8 14:22:34 1993  John Eaton  (jwe@schoch.che.utexas.edu)
+
+	* Version 0.79 released.
+
+	* src/builtins.cc (builtin_text_functions):  Correct usage message
+	for who.
+
+	* scripts/dgram.m: New function, from R. Bruce Tenison
+	(btenison@eng.auburn.edu).
+	* scripts/dlqe.m: Ditto.
+	* scripts/dlqr.m: Ditto.
+	* scripts/c2d.m: Ditto.
+
+	* src/tree.cc (tree_identifier::name): Make it const.
+	(tree_builtin::name): Ditto.
+	(tree_parameter_list::name): Ditto.
+	(tree_word_list::name): Ditto.
+
+	* src/symtab.cc (symbol_table::save): Delete list of names after
+	saving.
+
+	* src/symtab.h (symbol_table): Move #defines outside of class
+	declaration.
+
+Sun Nov  7 07:03:12 1993  John Eaton  (jwe@schoch.che.utexas.edu)
+
+	* Makeconf.in (CXX): Don't set from C++.  Do set from @CXX@, which
+	is determined by configure.  Don't set C++FLAGS.
+
+	* src/tree.cc: (tree_function::eval (int, int)): Simply call
+	eval (tree_constant *, int, int, int) with nargin = 1 and args =
+	NULL_TREE_CONST instead of duplicating most of that function in place.
+
+	* src/parse.y (func_def2): Reset id_name after renaming identifier.
+	Clear id_name from top level symbol table before defining identifier.
+
+Sat Nov  6 04:38:57 1993  John Eaton  (jwe@schoch.che.utexas.edu)
+
+	* configure.in: When checking for g++, set CXX, not GXX.
+
+	Merge min changes from Bruce Tenison (btenison@eng.auburn.edu) and
+	make the corresponding changes for max.
+
+        * src/tc-extras.cc (min (ComplexMatrix&, ComplexMatrix&)): New
+	function.
+	(max (ComplexMatrix&, ComplexMatrix&)): Ditto.
+	(column_min): Handle complex args and two return values.
+	(column_max): Likewise.
+
+        * liboctave/Matrix.cc (row_min_loc): New function.
+	(row_max_loc): New function.
+	(column_min_loc): Ditto.
+	(column_max_loc): Ditto.
+
+Fri Nov  5 03:12:55 1993  John Eaton  (jwe@schoch.che.utexas.edu)
+
+	* Version 0.78.
+
+	* src/octave.h (clean_up_and_exit): Change form of declaration for
+	GCC 2.5.x and beyond.
+
+	* src/tree.cc (tree_identifier::eval): Correctly handle printing
+	of identifier tags and conversion to assignment to `ans'.
+	* src/parse.y (maybe_convert_to_ans_assign): Simplify.
+	For identifiers, defer decision about making an ans assignment
+	until evaluation time since identifiers can be undefined at parse
+	time, and we can't tell what to do until we know what the def is.
+	* src/tree.cc (tree_identifier::mark_for_possible_ans_assgin): New
+	function.
+	* src/tree.cc (tree_index_expression::mark_for_possible_ans_assign):
+	New function.
+	* src/tree.h (tree_identifier): Add new private data,
+	maybe_do_ans_assign.
+
+	* src/t-builtins.cc (builtin_who): Major overhaul.  Support long
+	listings.
+	(print_symbol_info_line): New function.
+	(print_long_listing): Ditto.
+	(maybe_list): Ditto.
+
+	* src/user-prefs.cc (sv_editor): New function for builtin variable
+	EDITOR.
+	* src/octave-hist.cc (do_edit_history): Use user_pref.editor, not
+	just the EDITOR environment variable.
+
+	* src/user-prefs.cc (ignore_function_time_stamp): New function for
+	new builtin variable ignore_function_time_stamp.
+	* src/variables.cc (symbol_out_of_date): Use value of new
+	user_pref.ignore_function_time_stamp to decide whether to check to
+	see if a file has changed.
+	* src/tree.h (tree_function): Add new private data, system_m_file.
+
+	* src/builtins.cc (string_variables): Add EDITOR and
+	ignore_function_time_stamp EDITOR to the list.
+	(bultin_general_functions): Add is_global to the list.
+
+	* src/t-builtins.cc (builtin_clear): Make it work with new
+	variable scoping rules.
+	(builtin_document): Likewise, using new document_symbol()
+	function.
+	(builtin_save): Likewise.  Allow regular expression arguments.
+	Don't save builtin variables that are read-only.
+
+	* src/utils.cc (octave_home): Don't declare static.
+	(octave_lib_dir): Likewise.
+	(octave_info_dir): Likewise.
+	(default_editor): New function.
+
+	* src/tree.cc (tree_builtin::def): Delete function.
+	(tree_identifier::def): Likewise.
+	(tree_identifier::symrec): Likewise.
+
+	* src/tree.h (tree_builtin): Store name of function, not pointer
+	to symbol record.
+
+	* src/user-prefs.cc (warn_assign_as_truth_value): Lookup
+	"warn_assign_as_truth_value", not "user_pref.warn...".
+
+	* src/tree-base.h (def): Delete unused virtual function.
+	(is_prefix_expression): New virtual function.
+	(mark_for_possible_ans_assign): Likewise.
+	(is_system_m_file): Likewise.
+	(stash_m_file_name): No longer needs to be virtual.
+	(stash_m_file_time): Likewise.
+
+	* src/octave.cc (octave_Complex_error_handler): Define, to keep
+	errors in the Complex class from aborting Octave.  This is only a
+	temporary fix, I hope.
+	(main): Install it.
+	(initialize_globals): Get default editor.
+	(main): Call initialize_symbol_tables to do that instead of
+	creating them directly in main.
+
+	* src/variables.cc (document_symbol): New function.
+	(initialize_symbol_tables): Likewise.
+	(install_builtin_mapper_function): Likewise.
+	(install_builtin_text_function): Likewise.
+	(install_builtin_general_function): Likewise.
+	(install_builtin_variable): Likewise.
+	(install_builtin_variable_as_function): Likewise.
+	(bind_nargin_and_nargout): Likewise.
+	(bind_builtin_variable): Likewise.
+	(link_to_global_variable): Likewise.
+	(link_to_builtin_variable): Likewise.
+	(link_to_builtin_or_function): Likewise.
+	(force_link_to_function): Likewise.
+	(is_globally_visible): Likewise.
+	(is_builtin_variable): Likewise.
+
+	* src/tree.cc (print_as_scalar): Avoid trying to print row vectors
+	on one line.
+
+	* src/builtins.cc (install_buitlins): Simplify installation of
+	builtin functions using new install_builtin_*_function functions.
+	Ditto for using bind_builtin_variable for installing variables.
+
+	* src/tree.h (tree_global_command): New class.
+	* src/tree.cc (tree_global_command::*): Implement new class to
+	make global command executable.
+	* src/parse.y (global_decl): Make global an executable statement.
+
+	* src/parse.y (func_def2): Rework to match new way of handling
+	global variables and function names in the symbol table.
+	Mark functions as `system' or not.
+	Don't use id_to_define.
+	If m-file and function names disagree, rename function to match
+	m-file name.
+	* src/tree.cc (tree_identifier::rename): New function.
+	* src/parse.cc, src/parse.h (id_to_define): Delete unused global
+	variable.
+
+	* src/varables.cc (builtin_string_variable): Fix to match new
+	rules for global and builtin variables.
+	(builtin_real_scalar_variable): Likewise.
+
+	* src/tree.cc (tree_identifier::assign): Make it work with new
+	rules for global variables.
+	(tree_identifier::parse_m_file): Likewise.
+	(tree_identifier::do_lookup): Likewise.
+
+	* src/tree.cc (mark_as_system_m_file): New function.
+	(is_system_m_file): Ditto.
+
+	* src/tree.cc (clear_symbol_table): New function, to be used in an
+	unwined_protect element for clearing function symbol tables on
+	exit or error.
+
+	* src/tree.cc (tree_function::eval): Simplify using
+	bind_nargin_and_nargout.
+	Clear symbol table on exit or error with unwind_protect.
+
+	* src/tree.cc (tree_prefix_expression::is_prefix_expression): New
+	function.
+
+	* src/g-builtins.cc (builtin_is_global): New function.
+
+	* src/lex.l (lookup_identifier): Now that global variable binding
+	has been fixed, only look for symbols in the current symbol table.
+	Really.  I mean it this time.
+
+	* src/symtab.cc: Complete overhaul, to make global variables work
+	a bit more reasonably.
+
+Mon Nov  1 15:03:39 1993  John Eaton  (jwe@schoch.che.utexas.edu)
+
+	* src/Matrix.h (DiagMatrix::rows): Return nr, not len.
+	(ComplexDiagMatrix::rows): Ditto.
+	* src/Matrix.h (DiagMatrix::cols): Return nc, not len.
+	(ComplexDiagMatrix::cols): Ditto.
+	(DiagMatrix::columns): Ditto.
+	(ComplexDiagMatrix::columns): Ditto.
+
+	* liboctave/DiagMatrix.cc (DiagMatrix::row): Make it work for
+	square case.
+	(DiagMatrix::column): Likewise.
+	(ComplexDiagMatrix::row): Likewise.
+	(ComplexDiagMatrix::column): Likewise.
+
+	* liboctave/DiagMatrix.cc (DiagMatrix::operator <<): Print spaces
+	between elements.
+	(ComplexDiagMatrix::operator <<): Likewise.
+
+Fri Oct 29 15:32:12 1993  John Eaton  (jwe@schoch.che.utexas.edu)
+
+	* Version 0.77.1.
+
+	* src/symtab.cc (symbol_record::alias): Don't copy formal_param or
+	forced_global attribute.
+
+	* src/symtabl.cc (symbol_table::bind_globals): Don't bind to
+	global symbol unless it has forced_global attribute set.
+
+	* src/tree.cc (print_as_scalar): New function.
+	(tree_identifier::eval): Use it.
+	(tree_simple_assignment_expression::eval): Likewise.
+	(tree_multi_assignment_expression::eval): Likewise.
+
+	* src/lex.l (is_keyword): Give better error message for attempts
+	to define nested functions.
+
+	* src/parse.y (global_decl): Return a command_list to execute
+	(this makes assignments in global declarations executable).
+
+	* src/tree.cc (tree_for_command): Handle line and column info in
+	constructors and for error messages.
+	(tree_while_command): Ditto.
+	(tree_if_command): Ditto.
+	(tree_break_command): Ditto.
+	(tree_continue_command): Ditto.
+	(tree_return_command): Ditto.
+	(*::eval_error): Only print messages if error_state > 0.
+	(various): Only need to check that error_state is non-zero before
+	calling eval_error().
+
+	* src/parse.y: Handle line and column information for FOR WHILE IF
+	ELSEIF ELSE BREAK CONTINUE and FUNC_RET tokens.
+	* src/lex.l: Likewise.
+
+	* src/octave.cc (parse_and_execute): Reset parser before starting
+	new parse.
+
+	* src/tree-plot.cc (various): Check error_state in many more
+	places, and issue more meaningful error messages.
+
+	* src/tree-const.cc (maybe_resize): Don't call
+	jump_to_top_level() on errors.
+	(tree_constant_rep (Range)): Likewise.
+
+	* src/g-builtins.cc (builtin_error): Use error(), not
+	print_if_string() to print error messages.
+	* src/tree-const.cc (print_if_string): Delete unused function.
+
+	* src/tc-assign.cc (various): Check error_state after calls to
+	maybe_resize().
+
+	* src/tc-index.cc (various): Always check the state of idx_vectors
+	after trying to create them.
+	* src/tc-assign.cc (various): Likewise.
+
+	* src/idx-vector.cc: Use 0, not NULL.
+	Don't include stdlib.h.
+	(initialized): New data member, set nonzero if the idx_vector has
+	been properly initialized.
+	Never call jump_to_top_level () if initialization fails.
+	Add operator void *(), so we can test the state of an idx_vector
+	with `if (vector)'.
+
+	* src/pager.cc: Explicitly initialize pager_buf to NULL.
+
+	* src/tree-base.h: Move includes ahead of other definitions.
+
+	* liboctave/NLEqn.cc (NLEqn::NLEqn (const Vector&, const NLFunc)):
+	Initialize n from xvec, not x.
+
+Mon Oct 25 18:01:12 1993  John Eaton  (jwe@schoch.che.utexas.edu)
+
+	* src/user-prefs.cc (sv_info_file): New function.
+	* src/user-prefs.h (user_pref): Add info_file to the list.
+	* src/t-builtins.cc (try_info): Use it instead of
+	DEFAULT_INFO_FILE.
+
+	* src/utils.cc (default_info_file): New function.
+	(octave_info_dir): Likewise.
+
+	* src/defaults.h.in (DEFAULT_INFO_FILE): Delete unnecessary
+	definition since we figure out what it should be in utils.cc now.
+	* src/Makefile.in (defaults.h): Don't substitute DEFAULT_INFO_FILE.
+	* src/Makeconf.in (DEFAULT_INFO_FILE): Delete definition.
+
+	* src/octave.cc (info_file): New global variable.
+	(initialize_globals): Call default_info_file () to initialize it.
+	(--info-file): New command line option.
+
+	* src/builtins.cc (string_variables): Add INFO_FILE to the list.
+	(install_builtins): Define it.
+
+	* info/filesys.c (compress_suffixes): Choose gunzip for .gz files.
+
+Sat Oct 23 17:46:09 1993  John Eaton  (jwe@schoch.che.utexas.edu)
+
+	* Version 0.77 released.
+
+	* src/Makefile.in (INCFLAGS): Don't include info or dld
+	directories.
+	* dynamic-ld.cc: Include dld/dld.h, not just dld.h.
+	* t-buitlins.cc: Include info/info.h, info/dribble.h, and
+	info/terminal.h, not just info.h, dribble.h, and terminal.h.
+
+	* src/t-builtins.cc (builtin_help): New option, -i, for invoking
+	info browser.  If -i is not given, just do what we used to do, but
+	point to help -i as a way to get additional information.
+
+	* builtins.cc (print_usage): New function.
+
+	* g-builtins.cc (all builtins): Call print_usage to get usage message.
+	* t-builtins.cc (all builtins): Likewise.
+
+Fri Oct 22 15:56:16 1993  John Eaton  (jwe@schoch.che.utexas.edu)
+
+	* Cholesky changes from R. Bruce Tenison (btenison@eng.auburn.edu):
+
+	* src/f-chol.cc, src/f-chol.h: New files for the Cholesky
+	Factorization.
+	* src/Makefile.in (SOURCES, OBJECTS, DLD_OBJECTS): Add to lists.
+	* src/g-builtins.cc (builtin_chol): New function.
+	* src/g-builtins.h: Declare it.
+
+	* liboctave/Matrix-ext.cc (CHOL, ComplexCHOL): New classes.
+
+	* libcruft/lapack: dpotrf.f, zpotrf.f, dpotf2.f, zpotf2.f: New
+	files.
+
+	* libcruft/blas: dsyrk.f, zherk.f: New files.
+
+Fri Oct 22 14:04:16 1993  John Eaton  (jwe@schoch.che.utexas.edu)
+
+	* src/g-builtins.cc (builtin_schur): Fourth arg for DLD_BUILTIN is
+	schur, not hess.
+
+	* scripts/dare.m: Correct usage of fprintf.
+
+	* src/utils.cc (raw_mode): Only complain about stdin not a tty if
+	interactive or forced interactive.
+
+Thu Oct 21 17:00:57 1993  John Eaton  (jwe@schoch.che.utexas.edu)
+
+	* src/builtins.cc (install_builtins): Try harder to make
+	initialization of NaN work.  Make note about possible fixes if it
+	still doesn't work.
+
+	* src/utils.cc (raw_mode): [HAVE_TERMIOS_H] and [HAVE_TERMIO_H]
+	Don't set TAB3 since it doesn't seem necessary and some systems
+	don't have it by this name.
+	[HAVE_SGTTY_H] To be consistent, don't set XTABS here either.
+
+	* src/error.c (error): Call flush_output_to_pager before printing
+	error message.
+	(panic): Likewise, before aborting.
+
+	* src/symtab.cc (symbol_record::undefine): Delete unused function.
+	(symbol_table::undefine): Likewise.
+
+	* src/symtab.cc (clear): Never delete symbol records from the
+	table.  Only delete the definitions.  This makes clear and
+	undefine equivalent, so we don't need them
+	* src/tree.cc (tree_function::eval): Call symbol_table::clear, not
+	symbol_table::undefine.
+
+	* src/t-builtins.cc (builtin_clear): Only clear global symbols if
+	we are at the top level.
+	* src/parse.y (CLEAR): Delete token.
+	(word_list_command): Remove code to handle CLEAR as special case.
+	(expect): Only 19 now.
+	* src/lex.l (handle_identifier): Remove special code for clear.
+	It's ok to use it in a function body now.
+
+	* src/t-builtins.cc: Include extern "C" declarations for Info stuff.
+	(builtin_help): If given an argument, try to get help directly
+	from info file first.  If that fails, do as before.
+	(help_syms_list): New function:
+	(simple_help): New function.
+	(try_info): New function.
+	(help_from_list): New function.
+
+	* src/defaults.h.in (DEFAULT_INFO_FILE): Define new macro.
+	* Makeconf.in: Set value of DEFAULT_INFO_FILE.
+	* Makeconf.in (INSTALL_PROGRAM): Add definition.
+	* Makefile.in (SUBDIRS): Add info directory.
+	(info): New target.
+	* configure.in: Add autoconf macros to handle info configuration.
+
+	* info/Makefile.in: Major changes to make it work with Octave's
+	Makeconf file, etc.  The default action is now to build a
+	libinfo.a file.
+
+	* info/error.c: New file.  Move error functions here from info.c.
+
+	* info/signals.c (clear_info_signal_handler): New function, useful
+	if info is used directly in another program.
+
+	* info/termdep.h: Handle termios too.
+	* info/terminal.c (terminal_prep_terminal): Handle termios.
+	* (terminal_unprep_terminal): Likewise
+
+	* info/session.c (initialize_info_session): Add arg to make
+	clearing the screen conditional.  Useful if we want to call
+	index_entry_exists() first before displaying anything.
+	Change all callers.
+
+	* info/session.c (finish_info_session): New function.
+
+	* info/session.c (dispatch_error): Change message to include info
+	about how to get help and how to quit.
+
+	* info/info.c (index_search_p): New flag.
+	(--index-search): New option, like apropos, but search the indices
+	and display the first node found.
+
+	* info/indices.c (do_info_index_search): New function, modified
+	from info_index_search to allow searching the index for a string
+	without prompting for it.
+	(info_index_search): Just call do_info_index_search.
+	(index_entry_exists): New function, to allow us to find out if
+	there is an index entry for a given string without actually
+	displaying anything.
+
+	* info: New directory, containing source for GNU info browser.
+
+Tue Oct 19 00:14:33 1993  John Eaton  (jwe@schoch.che.utexas.edu)
+
+	* src/octave-hist.cc (input_from_tmp_history_file): New global flag.
+	(do_edit_history): Protect and set it.
+	(do_run_history): Likewise.
+	* src/parse.y (func_def2): Use it to see that input is coming from
+	a temporary file.  This means that we shouldn't exit when we're
+	done reading it, and we should treat it just as if the input were
+	coming from the keyboard.
+
+	* variables.cc (force_global): Force aliasing so it will happen
+	even if the symbol record is undefined.
+
+	* src/lex.l (lookup_identifier): Simplify
+
+	* src/lex.l (reset_parser): Reset error_state here.
+	* src/octave.cc (main): Not here.
+
+Mon Oct 18 14:27:02 1993  John Eaton  (jwe@schoch.che.utexas.edu)
+
+	* src/tree-const.cc: Delete constructor for tree_constant from
+	String.
+
+	* In src: tree.h, mappers.h, unwind-prot.h, parse.h, file-io.h,
+	arith-ops.h, tree-base.h, tree-const.h, g-builtins.h,
+	idx-vector.h, builtins.h, dynamic-ld.h, xdiv.h, xpow.h,
+	pr-output.h, input.h, symtab.h, utils.h: Avoid including files
+	unnecessarily.
+
+	* In src: tc-inlines.cc, mappers.cc, variables.cc, arith-ops.cc,
+	tree.cc, tree-const.cc, g-builtins.cc, file-io.cc, idx-vector.cc,
+	tc-assign.cc, tc-index.cc, builtins.cc, dynamic-ld.cc, xdiv.cc,
+	xpow.cc, pr-output.cc, tc-extras.cc, input.cc, symtab.cc,
+	utils.cc: Sprinkle liberally with const.
+
+	* In src: f-syl.cc, f-svd.cc, f-schur.cc, f-rand.cc, f-qzval.cc,
+	f-quad.cc, f-qr.cc, f-qpsol.cc, f-npsol.cc, f-lu.cc,
+	f-lsode.cc, f-lpsolve.cc, f-inv.cc, f-ifft.cc, f-hess.cc,
+	f-givens.cc, f-fsqp.cc, f-fsolve.cc, f-fft.cc, f-expm.cc,
+	f-eig.cc, f-det.cc, f-dassl.cc, f-colloc.cc, f-balance.cc:
+	Add const qualifier to tree-constant arg.
+
+Sat Oct 16 12:22:24 1993  John Eaton  (jwe@schoch.che.utexas.edu)
+
+	* src/tree-const.h, src/tree-const.cc: Add const qualifier to
+	constructor arguments passed by reference.
+	Pass Complex arguments by const reference instead of by value.
+
+	* liboctave/Matrix.h, liboctave/Matrix.cc, liboctave/ColVector.cc,
+	liboctave/RowVector.cc liboctave/DiagMatrix.cc: Pass Complex
+	arguments by const reference instead of by value.
+
+Wed Oct 13 14:13:29 1993  John Eaton  (jwe@schoch.che.utexas.edu)
+
+	* src/utils.cc (decode_prompt_string): ctime returns time_t, which
+	might not be a long.
+
+	* src/variables.cc (identifier_exists):	Only return non-zero if
+	the name has a definition.
+
+	* src/f-npsol.cc (npsol): Call error(), not message(), to print
+	error messages.
+	(linear_constraints_ok): Likewise.
+	(nonlinear_constraints_ok): Likewise.
+
+	* src/f-qpsol.cc (qpsol): Don't try to create the linear
+	constraint object before checking array sizes.  Wouldn't exception
+	handling be nice?
+	Call error(), not message(), to print error messages.
+	Check to ensure that the bounds on linear constraints are
+	vectors.
+
+	* src/lex.l (lookup_identifier): Don't bind global variables
+	immediately in loops or conditionals, even at the top level.
+
+Sun Oct 10 8:48:00 1993  John Eaton  (jwe@schoch.che.utexas.edu)
+
+	* README.doc: New file.
+	* Makefile.in (doc-dist): New target.
+	* doc/Makefile.in (FORMATTED): New macro.
+	(doc-dist): New target.
+
+	* src/tree.cc (tree_identifier::eval): Don't print anything if an
+	error is encountered.
+	(tree_simple_assignment_expression::eval): Likewise.
+
+	* src/tc-assign.cc (do_matrix_assignment): Handle resizing
+	correctly when indices are (:,range), (:,matrix), (range,:), or
+	(matrix,:) and the lhs is empty or undefined.
+
+Tue Oct  5 04:02:37 1993  John W. Eaton  (jwe@schoch.che.utexas.edu)
+
+	* Version 0.76 released.
+
+	* src/octave.cc (main):	Print usage message if we are given more
+	than one extra argument on the command line.
+	Delay printing startup message until just before setting the toplevel
+	jump context.
+
+	* src/lex.h (DO_COMMA_INSERT_CHECK): Delete unused macro.
+
+	* src/lex.l (handle_identifier): New function.
+	({IDENT}/{S}*=, {IDENT}{S}*): Use it instead of duplicating code.
+	(do_comma_insert_check): Use yyunput instad of returning original
+	character count.
+	Call directly instead of using DO_COMMA_INSERT_CHECK macro.
+
+Mon Oct  4 08:06:10 1993  John W. Eaton  (jwe@schoch.che.utexas.edu)
+
+	* Version 0.75.4.
+
+	* src/tree-const.cc (tree_constant_rep::eval ()): Avoid calling
+	rows() and columns() for things like magic_colon.
+
+Sun Oct  3 19:39:33 1993  John W. Eaton  (jwe@schoch.che.utexas.edu)
+
+	Changes to add line and column info to run-time error messages:
+
+	* src/tree.cc (tree_identifier, tree_prefix_expression,
+	tree_postfix_expression, tree_simple_assignment_expression,
+	tree_multi_assignment_expression, tree_colon_expression,
+	tree_index_expression): Modify constructors to allow line and
+	column information to be stored.
+	(abort_on_undefined): Delete (now) unnecessary static variable.
+	(all eval() functions): If error_state, return immediately.
+	(tree_matrix::eval ()): Call error and return tree_constant()
+	instead of jumping to top level on error.
+	(tree_identifier::parse_m_file ()): When starting to read an
+	M-file, initialize current_input_column to 1, not 0.
+	(tree_identifier::eval_undefined_error ()): Improve error message
+	with line and column info if it is available.  Don't abort to top
+	level on errors.
+	(tree_function::traceback_error ()): New function.
+	(tree_function::eval ()): Don't jump to top level on errors.
+	Call traceback_error if there is an error evaluating the command
+	list.
+
+	* src/tree.cc (tree_prefix_expression::eval_error ()): New function.
+	(tree_postfix_expression::eval_error ()): Ditto.
+	(tree_unary_expression::eval_error ()): Ditto.
+	(tree_binary_expression::eval_error ()): Ditto.
+	(tree_simple_assignment_expression::eval_error ()): Ditto.
+	(tree_multi_assignment_expression::eval_error ()): Ditto.
+	(tree_colon_expression::eval_error ()): Ditto.
+	(tree_index_expression::eval_error ()): Ditto.
+
+	* src/tree.cc (tree_function::stash_function_name ()): New function.
+	* src/parse.y (FCN): Use it.
+
+	* src/lex.l: Return line and column info for many (but not all)
+	tokens.
+
+	* src/parse.y: Handle token values with the token class defined in
+	token.cc.
+	(check_end ()): New function.
+	(end_error ()): Improve error messages by including line and
+	column info.
+
+	* src/arith-ops.cc (lots of functions): Don't jump to top level on
+	errors.
+	* src/tree.cc (tree_unary_expression::eval ()),
+	tree_binary_expression::eval ()): Handle error condition here.
+
+	* src/gripes.cc (gripe_nonconformant): Add additional form of this
+	function to allow message to include dimensions.  Change most
+	callers to use new form
+
+	* src/octave.cc: Initialize column counter to 1, not 0.
+	(main): Reset error_state before evaluating each top level
+	command.
+
+	* src/tree-plot.cc (tree_plot_command::eval ()): If error_state,
+	return immediately.
+
+	* src/tree-const.cc (do_binary_op ()): Return tree_constant() instead
+	of jumping to top level on errors.
+	(do_unary_op): Likewise.
+	(tree_constant_rep::eval ()): If error_state, return immediately.
+	Convert 1x1 matrices to scalars.
+
+	* src/tc-assign.cc (tree_constant_rep::do_scalar_assignment ()):
+	Don't jump to top level on error.
+	If there is an error while attempting to convert an undefined
+	variable to a matrix, don't suddenly create an empty matrix.
+	(tree_constant_rep::fortran_style_matrix_assignment ()): Check
+	return value of range_max_check() and don't jumpt to top level on
+	errors.
+	(tree_constant_rep::vector_assignment ()): Check return value of
+	index_check and don't jump to top level on errors.
+	(tree_constant_rep::check_vector_assign ()): Don't jump to top
+	level on errors.
+	(tree_constant_rep::do_matrix_assignment ()): Check return value
+	of index_check and don't jump to top level on errors.
+
+	* src/tc-extras.cc (get_dimensions ()): Call error (sets error state)
+	but don't jump to top level on errors.
+	(fill_matrix): Return tree_constant() on error.
+	(identity_matrix): Likewise.
+
+	* src/error.cc (error_state): New global variable, initialize to zero.
+	(error): Set it to one.
+
+	* src/tc-index.cc (tree_constant_rep::valid_as_scalar_index ()):
+	Don't declare unused variable retval.
+	(tree_constant_rep::do_scalar_index ()): Return tree_constant()
+	instead of jumping to top level on error.
+	(tree_constant_rep::fortran_style_matrix_index): Don't jump to top
+	level on indexing or range errors.
+	(tree_constant_rep::do_vector_index ()): Likewise.
+	(tree_constant_rep::do_matrix_index ()): Likewise.
+
+	* src/tc-inlines (range_max_check): Return -1 instead of jumping
+	to top level on error.
+	(index_check): Likewise.
+
+	* src/utils.cc (check_dimensions): Call error, not warning, and
+	don't jump to top level.
+
+	* src/tree-base.h (line_num, column_num): New data members for all
+	tree classes.
+	(line (), column ()): New virtual functions to access line and
+	column info.
+
+	* src/lex.l (enum end_tok_type, enum plot_tok_type): Delete
+	declarations (now in token.h).
+
+	* src/lex.h (YY_INPUT, YY_FATAL_ERROR, DO_COMMA_INSERT_CHECK,
+	TOK_RETURN, BIN_OP_RETURN): Move macro definition here, from
+	lex.l.  Rename RETURN TOK_RETURN.
+
+	* src/token.cc, token.h: New files that define a class for tokens
+	that includes line and column information.
+
+Wed Sep 29 11:15:12 1993  John W. Eaton  (jwe@schoch.che.utexas.edu)
+
+	* src/octave.cc: Use GNU getopt to handle option parsing.
+	* src/getopt.h src/getopt.c src/getopt1.c: New files for GNU
+	getopt.
+	* src/Makefile.in: Add them to the appropriate lists.
+
+	* src/utils.cc (raw_mode): Use the termios.h terminal driver
+	interface if it is available.
+	* configure.in: Check for termios.h
+
+	* src/tree-plot.cc (tree_subplot_list::print (int, ostrstream&)):
+	If the data to be plotted is a string but it doesn't name a file,
+	try sending it to gnuplot directly.
+
+Tue Sep 28 16:06:42 1993  John W. Eaton  (jwe@schoch.che.utexas.edu)
+
+	* liboctave/QPSOL.cc (QPSOL::minimize (double&, int&, Vector&)):
+	Correct dimensions of work arrays, based on QPSOL source.
+	Pass ncon, which is max (1, nclin), not n, as the row dimension of
+	clin.
+
+	* src/f-npsol.cc (linear_constraints_ok): Improve warning for the
+	case of constraints with zero dimensions.
+	(nonlinear_constraints_ok): Likewise.
+
+Mon Sep 27 01:20:50 1993  John W. Eaton  (jwe@schoch.che.utexas.edu)
+
+	* Version 0.75.3.
+
+	* Makefile.in (dist): Make file permissions for distribution rw.
+	(binary-dist): Ditto.
+	(local-dist): Ditto.
+
+Sat Sep 25 15:29:20 1993  John W. Eaton  (jwe@schoch.che.utexas.edu)
+
+	* src/pr-output.cc: Include stdio.h, for sprintf.
+
+	* src/input.cc (octave_gets): Set octave_gets_line to NULL after
+	freeing it.
+
+	* Version 0.75.2.
+
+	* liboctave/Matrix.cc (Matrix::operator * (const ColumnVector&):
+	Correct dimension of return value.
+	(ComplexMatrix::operator * (const ComplexColumnVector&)): Ditto.
+
+Tue Sep 21 20:42:10 1993  John W. Eaton  (jwe@schoch.che.utexas.edu)
+
+	* src/tree.cc (tree_identifier::assign (tree_constant&)):
+	Correctly handle case of hiding a function with a variable when
+	the variable has not been flagged as global.
+	tree_identifier::assign (tree_constant&, tree_constant*, int)):
+	Likewise.
+
+	* src/variables.cc (force_global): When a variable is moved to the
+	global symbol table, mark it as global.
+
+	* src/symtab.cc (symbol_record::symbol_record ()): Initialize
+	forced_global.
+	(symbol_record::clear_visible ()): Reset forced_global to zero.
+	(symbol_record::clear_all ()): Ditto.
+	(symbol_record::mark_as_forced_global ()): New function.
+	(symbol_record::is_forced_global ()): New function.
+	(symbol_record::alias ()): Also copy forced_global attribute.
+
+	* src/symtab.h (symbol_record::forced_global): New private data
+	member, used to record when a variable has been explicitly
+	declared global.
+
+	* src/lex.l (lookup_identifier): Look in current scope first.
+
+Mon Sep 20 03:15:52 1993  John W. Eaton  (jwe@schoch.che.utexas.edu)
+
+	* src/parse.y, src/tree.cc, src/tree.h: Allow `for' command to
+	assign to an index expression, not just an identifier.
+
+	* src/t-builtins.cc (builtin_clear (int, char **)): Don't delete
+	g_names twice.
+
+	* src/symtab.cc	(symbol_table::list (int&)): Make sure count is
+	initialized to zero.
+	(symbol_table::var_list (int&)): Ditto.
+	(symbol_table::fcn_list (int&)): Ditto.
+
+Sat Sep 18 04:06:42 1993  John W. Eaton  (jwe@schoch.che.utexas.edu)
+
+	* src/lex.l, src/parse.y, src/parse.h: Use new global variable
+	past_plot_range to make gplot and gsplot smarter about
+	distinguishing plot ranges and literal matrices.
+
+Fri Sep 17 01:06:30 1993  John W. Eaton  (jwe@schoch.che.utexas.edu)
+
+	* Version 0.75.1 released.
+
+	* src/f-qzval.cc: Include <float.h> for DBL_EPSILON.
+
+	* src/symtab.cc (symbol_record::save (ostream&, int)): Don't print
+	a warning for ans being undefined.  Call warning to print the
+	message, and change the text to make it clearer.
+	(symbol_table::save (ostream&, int)): Don't crash if there aren't
+	any symbols to save.
+
+Thu Sep 16 00:21:34 1993  John W. Eaton  (jwe@schoch.che.utexas.edu)
+
+	* src/t-builtins.cc (builtin_help): When trying harder to find
+	help for M-files, only insert the symbol into the global symbol
+	table if there really is an M-file of the given name in the path.
+
+Wed Sep 15 02:08:27 1993  John W. Eaton  (jwe@schoch.che.utexas.edu)
+
+	* Version 0.75.
+
+	* src/Makefile.in (INCLUDES): Distribute defaults.h
+	(%.d: %.cc): Don't fail if we can't determine dependencies.
+	(DISTFILES): Include move-if-change.
+
+Tue Sep 14 21:23:20 1993  John W. Eaton  (jwe@schoch.che.utexas.edu)
+
+	* scripts/perror.m: Use err, not info for fsolve section.
+
+Mon Sep 13 19:29:26 1993  John W. Eaton  (jwe@schoch.che.utexas.edu)
+
+	* src/utils.cc (get_m_file_names): Call closedir(), not free(), to
+	dispose of directory structure.
+
+Sun Sep 12 19:07:36 1993  John W. Eaton  (jwe@schoch.che.utexas.edu)
+
+	* src/tree-const.cc (tree_constant_rep::double_value): Rearrange
+	to avoid warning about reaching end of non-void function.
+	(tree_constant_rep::matrix_value): Ditto.
+
+	* src/error.cc (panic): Declare volatile.
+	* src/utils.cc (jump_to_top_level): Declare as `void volatile',
+	not `volatile void'.
+
+	* src/tree-const.cc (tree_constant_rep::complex_matrix_value):
+	Make it work even if the internal representation is really a real
+	or complex scalar or a real matrix.
+	(tree_constant_rep::complex_scalar_value): Make it work even if
+	the internal representation is really a real scalar.
+
+	* src/f-syl.cc (syl): Delete ComplexMatrixLoad().
+	Use complex_matrix_value(), not ComplexMatrixLoad().
+
+	* src/tree-const.cc (vector_of_empties): Renamed from empty_tree,
+	moved from f-syl.cc.
+
+	* src/f-syl.cc (syl): Call vector_of_empties() instead of empty_tree().
+	* src/f-qzval.cc (qzvalue): Ditto.
+
+	* src/tree-const.h (tree_constant::is_empty): New inline function.
+
+	* src/f-syl.cc (syl): Call is_empty instead of empty_arg.
+	* src/f-qzval.cc (qzvalue): Ditto.
+	* src/f-expm.cc (matrix_exp): Ditto.
+
+Thu Sep  9 22:40:16 1993  John W. Eaton  (jwe@schoch.che.utexas.edu)
+
+	* liboctave/Matrix.cc (Matrix::transpose): Make it work for empty
+	matrices.
+	(ComplexMatrix::transpose): Ditto.
+
+Mon Sep  6 04:56:50 1993  John W. Eaton  (jwe@schoch.che.utexas.edu)
+
+	* src/tree-plot.cc (tree_subplot_list::print): 	If the plot data
+	is a string and it names a file, plot the data in the file.
+
+	* src/octave.cc (execute_startup_files): Try harder to avoid
+	executing $HOME/.octaverc twice.
+
+	* liboctave/DAE.cc (DAE::integrate (Vector&, Matrix&, Vector&)):
+	Add missing parameter in call to integrate() if no critical points
+	are specified.
+
+Sat Sep  4 16:18:49 1993  John W. Eaton  (jwe@ward.che.utexas.edu)
+
+	* src/octave.cc (execute_startup_files): Don't execute
+	$HOME/.octaverc twice.
+
+Mon Aug 30 11:25:12 1993  John W. Eaton  (jwe@schoch.che.utexas.edu)
+
+	* src/t-builtins.cc (builtin_clear): Handle regular expressions.
+
+Fri Aug 27 07:25:32 1993  John W. Eaton  (jwe@schoch.che.utexas.edu)
+
+	* liboctave/RowVector.cc:
+	(RowVector::operator * (const ColumnVector& a) const): Fix brain-o.
+
+Wed Aug 18 00:29:09 1993  John W. Eaton  (jwe@schoch.che.utexas.edu)
+
+	* list_primes.m: New M-file.
+
+	* src/tc-index.cc (do_scalar_index): Handle two vector args of all
+	ones.
+
+Tue Aug 17 06:26:04 1993  John W. Eaton  (jwe@schoch.che.utexas.edu)
+
+	* src/file-io.cc (process_printf_format): Use NINT for * modifier
+	argument.
+
+Mon Aug 16 19:30:09 1993  John W. Eaton  (jwe@schoch.che.utexas.edu)
+
+	* src/mappers.cc: (arg (double)): Return pi for negative real values.
+
+Sun Aug 15 05:08:48 1993  John W. Eaton  (jwe@schoch.che.utexas.edu)
+
+	* src/octave-hist.cc (mk_tmp_hist_file): New function, extracted
+	from do_edit_history.
+	(do_edit_history): Simplify using mk_tmp_hist_file.
+	(do_run_history): New function.
+	(edit_history_repl_hist): New function.
+
+	* src/t-builtins.cc (builtin_run_history): New function.
+
+	* src/builtins.cc (text_functions): Add run_history to the list.
+
+Fri Aug 13 16:04:09 1993  John W. Eaton  (jwe@schoch.che.utexas.edu)
+
+	* tzero.m: New M-file.
+	* abcdchk.m: New M-file.
+	* is_symmetric.m: Use tol and norm (A) to decide if A' is close
+	enough to A to be considered the same.
+
+Wed Aug 11 15:50:59 1993  John W. Eaton  (jwe@schoch.che.utexas.edu)
+
+	* Version 0.74.1.
+
+	Merge in expm changes from A. S. Hodel <scotte@eng.auburn.edu>:
+
+	* f-expm.{h,cc}: New files.
+	* src/Makefile.in: Include them in the usual places.
+	* src/g-builtins.cc (builtin_expm): The new matrix_exp returns a
+	tree_constant by value.
+	Include f-expm.h
+	* src/tc-extras.cc (matrix_exp): Delete function.
+
+Tue Aug 10 20:06:34 1993  John W. Eaton  (jwe@schoch.che.utexas.edu)
+
+	Merge in qzval changes from A. S. Hodel <scotte@eng.auburn.edu>:
+
+	* f-qzval.{h,cc}: New files.
+	* src/Makefile.in: Include them in the usual places.
+	* src/g-builtins.cc (builtin_qzval): New function.
+	Include f-qzval.h
+	* src/g-builtins.h: Declare builtin_qzval.
+	* src/builtins.cc (general_functions): Add qzval to the list.
+
+	* libcruft/eispack: New directory.
+	* libcruft/Makefile.in (SUBDIRS): Include it.
+
+Tue Aug 10 20:06:34 1993  John W. Eaton  (jwe@schoch.che.utexas.edu)
+
+	* configure.in: Add libcruft/balgen/Makefile and
+	libcruft/eispack/Makefile to the list of files to frob.
+
+Tue Aug 10 20:06:34 1993  John W. Eaton  (jwe@schoch.che.utexas.edu)
+
+	Merge in syl changes from A. S. Hodel <scotte@eng.auburn.edu>:
+
+	* lyap.m: New M-file.
+
+	* f-syl.{h,cc}: New files.
+	* src/Makefile.in: Include them in the usual places.
+	* src/g-builtins.cc (builtin_syl): New function.
+	Include f-syl.h
+	* src/g-builtins.h: Declare builtin_syl.
+	* src/builtins.cc (general_functions): Add syl to the list.
+
+Tue Aug 10 20:06:34 1993  John W. Eaton  (jwe@schoch.che.utexas.edu)
+
+	* src/g-builtins.cc (builtin_balance): Fix typo in doc string.
+
+Tue Aug 10 20:06:34 1993  John W. Eaton  (jwe@schoch.che.utexas.edu)
+
+	Merge in givens changes from A. S. Hodel <scotte@eng.auburn.edu>:
+
+	* f-givens.{h,cc}: New files.
+	* src/Makefile.in: Include them in the usual places.
+	* src/g-builtins.cc (builtin_givens): New function.
+	Include f-givens.h
+	* src/g-builtins.h: Declare builtin_givens.
+	* src/builtins.cc (general_functions): Add givens to the list.
+
+	* src/Makefile.in: (defaults.h) Quote substitutions.
+	Use %foo%, not @foo@ to mark substitution.
+	* src/defaults.h.in: Use %foo%, no @foo@ to do mark things to
+	substitute.
+
+	* qzhess.m: New M-file.
+
+Tue Aug 10 20:06:34 1993  John W. Eaton  (jwe@schoch.che.utexas.edu)
+
+	Merge in balance changes from A. S. Hodel <scotte@eng.auburn.edu>:
+
+	* are, is_controllable.m, is_observable.m, is_square.m,
+	is_symmetric.m:  New M-files.
+
+	* Matrix.h (AEPBALANCE): New class.
+	(ComplexAEPBALANCE): New class.
+	(GEPBALANCE): New class.
+	* Matrix-ext.cc: Add init functions for balancing classes.
+
+	* src/f-balance.{h,cc}: New files.
+	* src/Makefile.in: Include them in the usual places.
+	* src/g-builtins.cc (builtin_balance): New function.
+	Include f-givens.h
+	* src/g-builtins.h: Declare builtin_balance.
+	* src/builtins.cc (general_functions): Add balance to the list.
+
+	* libcruft/balgen: New directory.
+	* libcruft/Makefile.in (SUBDIRS): Include it.
+
+Tue Aug 10 20:06:34 1993  John W. Eaton  (jwe@schoch.che.utexas.edu)
+
+	* configure.in: Use AC_HAVE_LIBRARY to check for -lm.
+
+	* src/Makefile.in (defaults.h): Quote substitutions.
+
+Mon Aug  9 13:30:07 1993  John W. Eaton  (jwe@schoch.che.utexas.edu)
+
+	* README.NLP: New file.
+	* Makefile.in (DISTFILES): Distribute it.
+
+Sun Aug  8 19:05:48 1993  John W. Eaton  (jwe@schoch.che.utexas.edu)
+
+	* src/move-if-change: New file.
+	* src/Makefile.in (DISTFILES): Distribute it.
+	(defaults.h): New rule.
+	(utils.o): Delete rule, since extra defines are no longer needed.
+	(INCLUDES): Distribute defaults.h.in.
+	* src/utils.cc: Include defaults.h to get DEFAULT_PAGER and
+	OCTAVE_HOME instead of depending on having them defined by the
+	compile command.
+
+	* configure.in (DEFAULT_PAGER): Use AC_PROGRAMS_CHECK.
+	If we find less, add `-e' flag, so users won't have to type q to
+	quit paging.
+
+Sat Aug  7 13:34:06 1993  John W. Eaton  (jwe@schoch.che.utexas.edu)
+
+	* f-*.cc: Renamed from tc-*.cc.  (Use f- as the file prefix
+	because most of these functions are ultimately implemented in
+	Fortran, and, most importantly, it keeps them grouped together.)
+	* f-*.h: New files, for external declarations of visible functions
+	defined in f-*.cc.
+	* g-builtins.cc: Include them all.
+	* tree-const.h: Don't declare these functions as friends.
+	* Makefile.in: Cope with new names.
+
+	* octave.cc (parse_and_execute (char *, int)): Don't declare static.
+	* octave.h: Declare it extern here.
+	* octave-hist.cc (do_edit_history): Use it here.
+
+	* octave-hist.cc (do_edit_history): New function.
+	* t-builtins.cc (builtin_edit_history): Use it.
+
+	* t-builtins.cc, t-builtins.h, builtins.cc: Rename edit to
+	edit_history.
+
+	* octave-hist.cc (do_history): Print line numbers by default.
+	Allow quieter output with -q option.
+
+	* g-builtins.cc (builtin_hess): Use DLD_BUILTIN macro to call hess.
+	* g-builtins.cc (builtin_schur): Likewise
+
+	* tc-hess.cc (builtin_hess_2): Call hess with corrrect args.
+	* tc-schur.cc (builtin_schur_2): Likewise, for schur dude :-).
+
+	* tc-fsqp.cc (builtin_fsqp_2): Fix typo.
+
+Thu Aug  5 23:14:01 1993  John W. Eaton  (jwe@schoch.che.utexas.edu)
+
+	* input.cc (octave_read): Ensure that the last character in the
+	buffer is a new line.
+
+Wed Aug  4 19:25:54 1993  John W. Eaton  (jwe@schoch.che.utexas.edu)
+
+	* parse.y (func_def2): Also warn if we encounter a function
+	definition with the same name as the script file we are reading.
+
+	* tree.cc (tree_identifier::do_lookup): Always return NULL_TREE if
+	a script file was executed.
+
+Tue Aug  3 23:25:45 1993  John W. Eaton  (jwe@schoch.che.utexas.edu)
+
+	* file-io.cc: Delete useless static keyword from File_info class
+	declaration.
+	* unwind-prot.cc: Likewise, for unwind_elem and saved_variable
+	classes.
+	* tc-rand.cc: Likewise, for enum rand_dist declaration.
+	* arith-ops.cc:  Likewise, for enum Matrix_bool_op declaration.
+	* tree.cc: Likewise, for struct const_matrix_list declaration.
+
+Fri Jul 23 01:40:38 1993  John W. Eaton  (jwe@schoch.che.utexas.edu)
+
+	* sysdep.cc (malloc_handler): Add missing arg to call to message().
+
+Tue Jul 20 04:09:32 1993  John W. Eaton  (jwe@june.che.utexas.edu)
+
+	* Version 0.74 released.
+
+	* doinstall.sh (version): Run `./octave -v' to get the version
+	number instead of grabbing it from version.h.
+	* Fail if we can't get a version number.
+	* Install ./octave, not src/octave.
+
+	* Makefile.in (binary-dist): Don't depend on all.
+	* Link src/octave to ./octave.  (Now that there's no source in
+	binary distributions, why have a src directory?)
+
+	* file-io.cc (process_scanf_format): Rename local variable `i' to
+	`chars_from_fmt_str'.
+	* (process_printf_format): Likewise.
+
+	* sighandlers.cc (can_interrupt): New global variable.
+	* (sigint_handler): Use it to decide whether to jump to top level.
+	* octave.cc (main): Set it after calling setjmp.
+
+	* octave.cc (main): Declare saved_sigint_handler to be volatile.
+
+	* tree.cc, tree-plot.cc, t-builtins.cc, pager.cc, g-builtins.cc,
+	file-io.cc: Terminate strstream strings with ends instead of just
+	using '\0'.
+
+	* file-io.cc (process_scanf_format): Skip leading white space for
+	%s conversions.
+	* (fopen_file_for_user): Pass tree_constant arg by reference.
+	* (do_scanf): If doing fprintf, don't fail if first arg is a
+	string.
+
+Mon Jul 19 16:00:22 1993  John W. Eaton  (jwe@schoch.che.utexas.edu)
+
+	* symtab.cc (pstrcmp): Declare to take char** args, not char*.
+
+Sun Jul 18 13:02:34 1993  John W. Eaton  (jwe@schoch.che.utexas.edu)
+
+	* file-io.cc (return_valid_file): Pass arg by reference.
+
+	* file-io.cc (fclose_internal, fgets_internal, fseek_internal):
+	Eliminate unnecessary casts to double.
+
+	* file-io.cc (return_valid_file, fgets_internal, fopen_internal,
+	do_printf, do_scanf): Use is_string_type instead of doing the
+	comparison ourselves.
+	* g-builtins.cc (builtin_exist, builtin_getenv,
+	builtin_shell_command): Ditto.
+	* tc-colloc.cc (collocation_weights): Ditto.
+	* tc-extras.cc (eval_string, get_user_input): Ditto.
+	* tc-rand.cc (rand_internal): Ditto.
+	* tree-plot.cc (tree_subplot_list::print): Ditto.
+	* variables.cc (is_valid_function, octave_string_variable): Ditto.
+
+Thu Jul 15 02:29:03 1993  John W. Eaton  (jwe@schoch.che.utexas.edu)
+
+	* doc/Makefile.in (TEXINFO): Distribute texinfo.tex too.
+
+	* t-builtins.cc (load_variable): Warn if replacing local symbol
+	with global from file.
+	* Warn if variable is not marked as global in a file, but already
+	exists as a global symbol, then go ahead and load it as a global.
+
+Tue Jul 13 01:47:48 1993  John W. Eaton  (jwe@schoch.che.utexas.edu)
+
+	* lex.l (lookup_identifier): Never alias to global here.
+	* tree.cc (do_lookup): Don't alias formal parameters to global.
+	* variables.cc (force_global): Likewise.
+	* symtab.cc (symbol_table::bind_globals): Likewise.
+
+	* symtab.h (symbol_record::formal_param): New field.
+	* symtab.cc (symbol_record::mark_as_global_parameter): New function.
+	* (symbol_record::is_formal_parameter): Ditto.
+	* tree.cc (tree_identifier::mark_as_formal_parameter): Ditto.
+	* (tree_parameter_list::mark_as_formal_parameters): Ditto.
+	* parse.y (param_list): Use it to tag formal parameters.
+	* (func_def1): Ditto.
+
+	* arith-ops.cc (DIVIDE_BY_ZERO_ERROR): On IEEE machines, allow
+	divide by zero errors to be suppressed.
+	* user-prefs.h (warn_divide_by_zero): New user preference.
+	* user-prefs.cc (warn_divide_by_zero): New function.
+	* builtins.cc (builtin_string_variables): Install it with default
+	value of true.
+
+	* tree.cc (tree_multi_assignemnt_expression): Use tree_return_list
+	instead of tree_param_list.
+	* (tree_multi_assignment_expression:eval): Make it work.
+
+	* tree.cc (tree_return_list): New class.  Allow index expressions
+	and identifiers in return lists.
+	* (tree_matrix::to_return_list): Rename from to_param_list.
+	* parse.y (expression): Use it.
+
+	* parse.y: Increment and decrement maybe_screwed_again instead of
+	just setting it to zero or one.
+
+Mon Jul 12 03:23:40 1993  John W. Eaton  (jwe@schoch.che.utexas.edu)
+
+	* tc-assign.cc (tree_constant_rep::do_matrix_assignment): Handle
+	case of lhs being of unknown type.
+
+	* lex.l (check_for_garbage_after_fcn_def): Also ignore trailing
+	commas and semicolons.
+
+Sun Jul 11 00:08:20 1993  John W. Eaton  (jwe@schoch.che.utexas.edu)
+
+	* Version 0.73.1 released.
+
+	* symtab.cc (symbol_record::alias): Also copy pointer to sv_fcn.
+
+Sat Jul 10 14:34:00 1993  John W. Eaton  (jwe@schoch.che.utexas.edu)
+
+	* tree.cc (tree_function::eval (int, char **, int): New function.
+
+	* symtab.cc (symbol_table::bind_globals): New function.
+	* tree.cc (tree_function::eval): Use it to associate local symbols
+	with global data.
+
+	* symtab.cc (alias): Add optional parameter `force'.
+
+	* Version 0.73 released.
+
+	* pr-output.cc: Use D_NINT instead of NINT in some cases to avoid
+	overflow problems on systems that don't have IEEE Inf.
+	* mappers.cc (round): Likewise.  Also avoids conversion of Inf to
+	INT_MAX on systems that do have IEEE Inf.
+
+	* builtins.h: Remove definition of NINT.
+	* tree.h: Likewise.
+	* tree-const.h: Likewise.
+
+	* utils.cc (NINT): Move function here and improve handling of
+	extreme values.
+	* (D_NINT): New function.
+
+	* scripts/isempty.m: Don't require the number of rows and columns
+	to both be zero.
+
+Thu Jul  8 16:25:50 1993  John W. Eaton  (jwe@schoch.che.utexas.edu)
+
+	* Version 0.72.2.
+
+	* configure.in: Do a better job of grabbing the last argument as
+	the target_host_type and avoiding setting it to things like
+	--prefix=/foo/bar
+
+	* tree-const.cc (tree_constant_rep::save): Add default case for
+	mark_as_global switch to avoid warnings from gcc.
+
+	* variables.cc (force_global): Cope with symbol table changes.
+	* tree.cc: (tree_identifier::do_lookup): Likewise.
+	* lex.l (lookup_identifier): Likewise.
+	* builtins.cc (install_builtins): Likewise.
+
+	* symtab.cc, symtab.h: Massive internal rewrite.
+
+Wed Jul  7 02:18:01 1993  John W. Eaton  (jwe@schoch.che.utexas.edu)
+
+	* tc-assign.cc (tree_constant_rep::do_scalar_assignment): If rhs
+	is a scalar type, also handle case of lhs being of unknown type.
+	* Be sure to set the new type of the lhs.
+
+	* tree-base.h: Don't include symtab.h.
+	* tree-const.h: Ditto.
+
+Tue Jul  6 22:47:28 1993  John W. Eaton  (jwe@schoch.che.utexas.edu)
+
+	* parse.y (func_def2): Remove the function name from the top-level
+	symbol table if defining on command line (an M-file would never be
+	parsed if there was already an entry with the same name in the top
+	level symbol table).
+
+	* parse.y (word_list_command): Allow clear without any arguments.
+	* tree.cc (word_list_command::eval): Handle word list commands
+	with no arguments.
+
+Mon Jul  5 14:43:30 1993  John W. Eaton  (jwe@schoch.che.utexas.edu)
+
+	* Version 0.72.1.
+
+	* help.cc (operators): Document the double quote character.
+
+	* lex.l (getting_help): Delete unused variable.
+	* (HELP_FCN): New exclusive start state.
+	* ({IDENT}{S}*): Set start state to HELP_FCN instead of setting
+	getting_help.
+	* ({IDENT}/{S}*=): Likewise.
+
+	* symtab.cc (symbol_table::load): Delete unused function.
+
+	* tree-const.cc (tree_constant::load): Return flag telling whether
+	the constant is global.
+	* t-builtins.cc (builtin_load): Handle global variables.
+	* (builtin_save): Likewise.
+
+	* symtab.cc (symbol_record::save): Don't save builtin variables
+	(variables marked as eternal are assumed to be builtin).
+
+	* symtab.cc (symbol_record::mark_from_global): New function.
+	* (symbol_def::undefine): Add optional argument to prevent
+	deleting symbol's definition.
+	* (symbol_table::undefine): If this variable has been marked as
+	defined from a global, call symbol_def::undefine with arg = 1.
+	* tree.cc (tree_identifier::do_lookup): If a local symbol is
+	defined from a global, mark it as such.
+
+	* symtab.cc (symbol_record::define (symbol_record*)): Delete
+	unused function.
+
+	* tree.cc (tree_identifier::do_lookup (int&)): Use operator=
+	instead of symbol_record::define().
+	* variables.cc (force_global (char*)): Likewise.
+
+Sun Jul  4 01:27:44 1993  John W. Eaton  (jwe@schoch.che.utexas.edu)
+
+	* symtab.cc (symbol_record): Define copy constructor and operator=.
+
+	* builtins.cc (install_builtins): Make `i' and `j' read-only
+	functions.
+
+	* symtab.cc (symbol_record::define): Respect read-only status of
+	variables and functions.
+
+Sat Jul  3 19:11:31 1993  John W. Eaton  (jwe@schoch.che.utexas.edu)
+
+	* user-prefs.h (print_empty_dimensions): New user preference variable.
+	* user-prefs.cc (print_empty_dimensions): New function.
+	* builtins.cc (print_empty_dimesions): Make default value true.
+	* tree-const.cc (tree_constant_rep::eval): Use value here.
+
+	* cond.m: Handle empty matrices.
+	* tc-det.m (determinant): Likewise.
+	* tc-inv.m (inverse): Likewise.
+
+	* tc-hess.cc (hess): Use gripe_square_matrix_required instead of
+	calling error.
+	* tc-schur.cc (schur): Likewise.
+
+	* builtins.cc (propagate_empty_matrices): Change default value to
+	true.
+
+	* tree-const.cc (tree_constant_rep::eval): If a matrix has zero
+	rows or columns, also print the dimension along with the `[]'
+	symbol.
+
+	* tree-const.cc (do_binary_op): If ok to propagate empty matrices,
+	go ahead and do the binary operation so that the result will have
+	consistent dimensions.
+	* (do_unary_op): Likewyse.
+
+	* tc-extras.cc (get_dimensions): Don't force both nr and nc to
+	zero if one is.
+	* Matrix.cc, DiagMatrix.cc, ColVector.cc, RowVector.cc: Handle
+	matrices with zero dimensions in a more consistent fashion.
+
+Thu Jul  1 00:27:01 1993  John W. Eaton  (jwe@schoch.che.utexas.edu)
+
+	* perror.m: New M-file.
+
+	* LP.h, LP.cc: New interface for linear programmming.
+	* LPsolve.h LPsolve.cc: New files to implement linear programming
+	using lp_solve.
+
+	* NPSOL.cc (minimize): Also return the vector of Lagrange
+	multipliers.
+	* tc-npsol.cc (npsol): Optionally return them.
+
+	* QPSOL.cc (minimize): Also return the vector of Lagrange
+	multipliers.
+	* tc-qpsol.cc (qpsol): Optionally return them.
+
+	* tc-qpsol.cc (qpsol): Make it work.
+
+Wed Jun 30 02:19:00 1993  John W. Eaton  (jwe@schoch.che.utexas.edu)
+
+	* g-builtins.cc (builtin_lpsolve): New function.
+	* (builtin_qpsol): Ditto.
+	* builtins.cc (general_functions): Add them to the list.
+
+	* tc-lpsolve.cc: New file.
+	* tc-qpsol.cc: Ditto.
+	* src/Makefile.in: Add them to the list of SOURCES and DLD_OBJECTS.
+
+Tue Jun 29 15:02:07 1993  John W. Eaton  (jwe@schoch.che.utexas.edu)
+
+	* liboctave/DAE.cc (integrate): If stop_time_set is false, reset
+	default value for info[3].
+	* liboctave/ODE.cc (integrate): Likewise, reset default values of
+	iopt and itask.
+
+	From Thorsten Ohl <ohl@physics.harvard.edu>:
+	* config.guess: Add check for NeXT.
+	* configure.in: Add check for NeXT so that readline is configured
+	properly (really need to improve readline's configuration scheme).
+	* sysdep.cc (malloc_handler): New function for handling malloc
+	errors on NeXT systems.
+
+	* octave.cc (main): Call sysdep_init before anything else.
+
+	* sysdep.cc: New file for system dependent things.
+
+	* octave.cc (initialize_globals): Only pass argv[0] since that's
+	the only thing that's used.
+
+Sat Jun 26 13:00:50 1993  John W. Eaton  (jwe@schoch.che.utexas.edu)
+
+	* tree.cc (tree_builtin::eval (int, char**, int)): Don't panic if
+	called for something other than a text_fcn.
+
+	* t-builtins.cc (builtin_cd): Rewrite to fix bogus memory
+	problems.
+
+Fri Jun 25 15:23:03 1993  John W. Eaton  (jwe@schoch.che.utexas.edu)
+
+	* t-builtins.cc (builtin_cd): Don't delete value returned by
+	get_working_directory.
+	* g-builtins.cc (builtin_pwd): Likewise, and simplify.
+
+	* utils.cc (make_absolute): Always create a new copy to return.
+	* utils.cc (change_to_directory): Don't delete pointer returned
+	from get_working_directory().
+	* (file_in_path): Likewise.
+
+Thu Jun 24 16:48:38 1993  John W. Eaton  (jwe@schoch.che.utexas.edu)
+
+	* lex.l ({IDENT}{S}*): Always insert a comma if the next token
+	doesn't look like some sort of operator, not just if
+	convert_spaces_to_comma is also true (it may have been turned off
+	by BIN_OP_RETURN).
+
+	* tree-const.h (matrix_ptr): Delete function.
+	* tc-extras.cc (frobit): Delete function.
+	* (get_dimensions): New function.
+	* (identity_matrix): Completely rewrite.
+	* (fill_matrix): Likewise.
+
+Wed Jun 23 13:50:16 1993  John W. Eaton  (jwe@schoch.che.utexas.edu)
+
+	* Matrix-ext.cc (SCHUR::init): Also allow ord flag to be lowercase.
+	* (ComplexSCHUR::init): Ditto.
+	* tc-schur.cc (schur): Likewise.
+
+	* Matrix-ext.cc (SCHUR::init): Declare sort as char, not char*,
+	and pass its address to Lapack.
+	* (ComplexSCHUR::init): Ditto.
+
+	* Matrix-ext.cc (SCHUR::select_dig): Make static, and move ahead
+	of first reference in file.
+	* (SCHUR::select_ana): Likewise.
+	* (ComplexSCHUR::select_complex_dig): Likewise.
+	* (ComplexSCHUR::select_complex_ana): Likewise.
+
+	* builtins.cc (install_builtins): Add `J' as an alias for `I'.
+
+	* builtins.cc (install_builtins): Always create a new
+	tree_constant for each variable, since the symbol table doesn't
+	know how to share them.
+
+	* tc-schur.cc (schur): Use warning and error functions instead of
+	writing directly to cerr.
+	* tc-hess.cc (hess): Ditto.
+
+	* src/Makefile.in (DLD_OBJECTS): Include tc-schur.o and tc-hess.o.
+	* (SOURCES): Add tc-schur.cc tc-hess.cc.
+
+	* Merge Schur and Hessenberg changes:
+
+	Fri Mar 19 11:01:19 1993  R. Bruce Tenison (btenison@eng.auburn.edu)
+
+	* src/builtins.cc: Changed schur definition to include one more
+	input.  Also changed the help line description
+	* src/g-builtins.cc: Changed builtin_schur to accept two inputs
+	Also changed the information to explain ordered schur operation.
+	* src/tc-schur.cc Added extensions to the SCHUR and ComplexSCHUR
+	calls to pass extra paramater.  Also added check for proper param.
+	* liboctave/Matrix.h: Modified declarations dgeesx and zgeesx to
+	accept address of select function.  Modified class structures for
+	SCHUR and ComplexSCHUR to accept extra ordered schur param.
+	* liboctave/Matrix-ext.cc: Added extensions for the extra ordered
+	schur paramater.
+
+	Wed Mar 17 15:23:14 1993  R. Bruce Tenison (btenison@eng.auburn.edu)
+
+	* liboctave/Matrix-ext.cc (HESS and ComplexHESS): Added the
+	Hessenburg decomposition routines.
+	* liboctave/Matrix.h Added fortran lapack functions definitions
+	used in the Hessenburg procedure.
+	* src/g-builtins.cc (builtin_hess): Hessenburg Decomposition routine
+	added
+	* src/g-builtins.h (builtin_hess): Added extern definition.
+	* liboctave/Matrix.h Added classed HESS and ComplexHESS
+	* src/tree_const.h added defs for hess.
+	* src/tc-hess.cc (hess): New file for hess function.
+
+	Tue Mar 16 10:46:32 1993  R. Bruce Tenison (btenison@eng.auburn.edu)
+
+	* src/g-builtins.cc (builtin_schur): Schur Decomposition routine
+	added.
+	* src/g-builtins.h (builtin_schur): Added extern definition.
+	* liboctave/Matrix.h Added Classes SCHUR and Complex SCHUR, and
+	added defs for zgeesx and dgeesx (lapack schur decomp)
+	* liboctave/Matrix-ext.cc (SCHUR and Complex SCHUR): Ditto.
+	* src/tree-const.h added defs for schur.
+	* src/tc-schur.cc (schur): New file for schur function.
+
+Tue Jun 22 20:18:52 1993  John W. Eaton  (jwe@schoch.che.utexas.edu)
+
+	* lex.l (check_for_garbage_after_fcn_def): New function
+	* parse.y (fcn_end_or_eof): If reading from an M-file, use it to
+	print warning about trailing garbage after the end of a function
+	has been found.
+
+Mon Jun 21 20:21:01 1993  John W. Eaton  (jwe@schoch.che.utexas.edu)
+
+	* tc-assign.cc (tree_constant_rep::assign): Handle case of
+	assignment to unknown constant too.
+	* (tree_constant_rep::do_scalar_assignment): Don't fail for
+	unknown_constant type.
+	* (tree_constant_rep::do_matrix_assignment): Likewise.
+
+	* tree-const.cc (rows): Return 0 for unknown_constant type.
+	* (columns): Likewise.
+
+	* tree.cc (tree_identifier::assign): Defer defining symbol until
+	assignment is successful.
+	* When creating a new dummy tree_constant to assign a value to,
+	leave it an unknown_constant type.
+
+	* tc-assign.cc (do_scalar_assignment): If the right hand side
+	isn't a scalar, maybe try to resize instead.
+	* (do_matrix_assignment): For A(:,int) and A(int,:) cases, also
+	resize if left hand side is a scalar.
+
+	* norm.m: Allow "fro" to work for scalars and vectors too.
+
+Sun Jun 20 01:17:03 1993  John W. Eaton  (jwe@schoch.che.utexas.edu)
+
+	* NLConst.cc: New file.  Move inline function definitions here
+	from NLConst.h.
+
+	* Objective.cc: New file.  Move inline function definitions here
+	from Objective.h
+
+	* tree.cc (tree_word_list_command::eval): Call strsave for argv[0]
+	too, and delete argv before returning.
+	* (tree_builtin::eval): Likewise, for text functions with no
+	arguments.
+
+Sat Jun 19 01:37:09 1993  John W. Eaton  (jwe@schoch.che.utexas.edu)
+
+	* octave.cc (parse_and_execute): Delete calls to delete_buffer
+	and switch_to_buffer, since that is taken care of by unwinding the
+	frame.
+
+Fri Jun 18 00:08:36 1993  John W. Eaton  (jwe@schoch.che.utexas.edu)
+
+	* tree.cc (tree_matrix::eval): Delete useless direct = ptr->direct
+	and ptr = ptr->next statements from size-determining loop.
+
+	* parse.y (opt_list): New rule.  Replace all occurrences of list
+	with opt_list.
+
+	* tree.cc: (tree_index_expression::eval (int, int)): Don't
+	complain if the index expression has an empty argument list.
+
+	* octave.cc (initialize_globals): Check return value of
+	getenv ("HOME") against NULL, not the global variable
+	home_directory that we are trying to initialize.
+
+	* tree.cc (tree_function::eval): Quick return if command list
+	is empty.
+	* parse.y (func_def3): Allow empty function bodies.
+
+Thu Jun 17 02:08:02 1993  John W. Eaton  (jwe@schoch.che.utexas.edu)
+
+	* tree.cc (tree_while_command): Add constructor for case of
+	expression only.
+	* parse.y (statement): Allow empty command list for while commands.
+
+	* parse.y (list): Allow empty commands in more places.  This ups
+	the shift/reduce error count by 6, to 19.
+
+	* octave.cc (execute_startup_files): Don't delete sd.
+
+	* octave.cc (initialize_globals): Make copies of all strings.
+	* Store more humorous messages if things fail.
+
+Tue Jun 15 11:03:39 1993  John W. Eaton  (jwe@schoch.che.utexas.edu)
+
+	* tc-extras.cc (get_user_input): Finish incomplete change to get
+	input using readline.
+
+	* tc-extras.cc (match_sans_spaces): New function.
+	* (get_user_input): Use it when checking to see if the user
+	entered a `quit' command.
+
+	* liboctave/Makefile.in: Don't distribute Makedeps.in or include
+	Makedeps since we generate dependencies automatically now.
+	* configure.in: Don't create liboctave/Makedeps.
+
+Sun Jun 13 18:31:17 1993  John W. Eaton  (jwe@schoch.che.utexas.edu)
+
+	* src/xdiv.cc (xdiv): Solve least-squares problem if system of
+	equations is not square, or if it is singular.
+	* (xleftdiv): Likewise.
+
+	* liboctave/Matrix.h (Matrix::lssolve): New functions for
+	least-squares solutions of linear systems.
+	* (ComplexMatrix::lssove): Ditto.
+
+Sat Jun 12 19:07:07 1993  John W. Eaton  (jwe@schoch.che.utexas.edu)
+
+	* libcruft/misc/xstopx.f (xstopx): Call dostop, not do_stop.
+	* libcruft/misc/dostop.c: Rename from do_stop.c
+	* (dostop): Likewise.
+
+	* src/mappers.cc (xisnan (double)): Define even for systems that
+	don't have xisnan by always returning false.
+	* (xisnan (const Complex&)): Likewise.
+
+Fri Jun 11 19:54:58 1993  John W. Eaton  (jwe@schoch.che.utexas.edu)
+
+	* doc/Makefile.in (install): Try harder to install info files.
+
+	* libcruft/Makefile.in (install): Run ranlib on installed library.
+	* liboctave/Makefile.in (install): Ditto.
+	* readline/Makefile.in (install): Ditto.
+
+Thu Jun 10 00:15:41 1993  John W. Eaton  (jwe@schoch.che.utexas.edu)
+
+	* Version 0.72 released.
+
+	* libcruft/*/*.f: Don't call xstopx with '' since some Fortran
+	compilers object to zero-length strings.
+	* libcruft/misc/xstopx.f (xstopx): Don't print empty strings or
+	single blanks.
+	* libcruft/misc/gen-d1mach.c (main): Likewise, for generated code.
+
+	* test/Makefile.in (check): Set the Tcl variable OCTAVE_PATH.
+	* test/config/unix-octave.exp: Pass OCTAVE_PATH to OCTAVE using
+	the new -p flag.
+
+	* builtins.cc (install_builtins): Use load_path instead of calling
+	default_path().
+
+	* octave.cc (load_path): New global variable.
+	* (initialize_globals): Initialize it here by calling default_path().
+	* (main): Call initialize_globals() before getting command line
+	arguments.
+	* Accept new argument, -p PATH.
+
+	* octave.cc (clean_up_and_exit): Don't print a message when Octave
+	exits.
+
+	* doinstall.sh: Install M-files in $(libsubdir), not $(libdir).
+	* Use mkpath to create directories.
+	* Extract version from version.h.
+
+	* Makeconf.in (version): Compute version just once.
+
+	* (libsubdir): New directory that includes version number, for
+	installing M-files in (old versions of Octave may not be able to
+	understand new M-files).
+
+	* src/Makefile.in, libcruft/Makefile.in, liboctave/Makefile.in,
+	doc/Makefile.in, readline/Makefile.in, scripts/Makefile.in
+	(install): Use mkpath to create directories.
+	* scripts/Makefile.in (install): Install M-files in $(libsubdir),
+	not $(libdir).
+
+	* mkpath.c: New file, from Emacs-19.
+	* Makefile.in (mkpath): New rule.
+	* (all): Depend on mkpath
+	* (binary-dist): Distribute it.
+
+	* config.guess: Update from bothner@cygnus.com.
+
+	* lex.l (<STRING>{QSTR}*[\n\']): Set start state to 0 or MATRIX,
+	depending on value of braceflag.
+	* (<DQSTRING>{DQSTR}*[\n\"]): Ditto.
+
+	* tree.cc (tree_matrix::eval): Make sure that strings are nul
+	terminated.
+
+Tue Jun  8 16:08:10 1993  John W. Eaton  (jwe@schoch.che.utexas.edu)
+
+	* octave.cc (clean_up_and_exit): Print `bye-bye' here.
+	* g-builtins.cc (builtin_quit): Not here.
+
+	* pager.cc (terminal_columns): If screenwidth <= 0, return a
+	default value of 80 columns.
+	* (terminal_rows): Likewise for screenheight and a default of 24
+	rows.
+
+	* octave.cc (parse_and_execute): Don't fiddle with interactive
+	states since that screws paging output.
+	* tree.cc (parse_m_file): Likewise.
+
+	* parse.y (input): For `simple_list error END_OF_INPUT' and
+	`error END_OF_INPUT' use ABORT_PARSE.
+	* Always accept `simple_list END_OF_INPUT'.
+	* Always abort for `END_OF_INPUT'.
+
+Mon Jun  8 13:55:41 1993  John C. Campbell  (jcc@schoch.che.utexas.edu)
+
+	* file-io.h (fopen_file_for_user): New function declaration.
+
+	* file-io.cc (fopen_file_for_user): New function.
+	* (fgets_internal): If file doesn't exist open it for user,
+	also return (double) -1 on EOF
+	* (fseek_internal), (ftell_internal), (frewind_internal),
+	(do_printf): Ditto.
+	* (fopen_internal): Remove warn_on_not_open flag, limit warns.
+
+Mon Jun  7 00:28:13 1993  John W. Eaton  (jwe@schoch.che.utexas.edu)
+
+	* file-io.cc (do_scanf): Use `type' wherever possible instead of
+	hardcoding name in messages.
+	* (do_printf): Ditto.
+
+	* file-io.cc (fflush_internal): If flushing stdout, flush output
+	to the pager instead of calling fflush on a stream.
+	* (do_printf): Make fprintf (stdout, ...) exactly the same as
+	printf (...).
+	* (do_scanf): Make fscanf (stdin, ...) exactly the same as
+	scanf (...).
+
+	* tc-extras.cc (get_user_input): Flush output to pager before
+	prompting for input.
+
+	* libcruft/Makefile.in (DISTFILES): Distribute STOP.patch to show
+	the changes made to the Fortran sources.
+
+	* libcruft/*/*.f: Replace STOP statements with calls to xstopx, so
+	that Fortran programs won't just quit on us.
+
+	* libcruft/misc/xstopx.f: New file.
+	* libcruft/misc/do_stop.c: New file.
+	* libcruft/misc/Makefile.in (SPECIAL): Add do_stop.c to the list.
+	* (SPECIAL_DEPEND): Likewise, for do_stop.o.
+	* libcruft/Makefile.in (CRUFT_OBJ): Ditto.
+
+	* lex.l (")"): Don't pop the top of the in_brace_or_paren stack if
+	it's empty.
+
+Sun Jun  6 00:41:28 1993  John W. Eaton  (jwe@schoch.che.utexas.edu)
+
+	* liboctave/CollocWt.cc (init): Always compute Gaussian quadrature
+	weights instead of trying to compute Radau or Lobatto weights if
+	the endpoints are included.
+	* Really do compute roots and derivative weights corresponding to
+	Legendre polynomials if alpha and beta are zero, even if the
+	endpoints are included.
+
+Sat Jun  5 22:19:55 1993  John C. Campbell  (jcc@schoch.che.utexas.edu)
+
+	* builtins.cc (builtin_general_functions): Correct max arg counts
+	for fscanf, scanf, and sscanf.
+
+	* g-builtins.cc (builtin_fscanf): Correct argument checks.
+	* (builtin_sscanf): Likewise.
+
+	* file-io.cc (fopen_internal): Don't warn for opening new file.
+
+	* file-io.cc (process_printf_format): Handle * for field width and
+	precision.
+	* Pass array of arguments and nargin instead of just one arg.
+	* (do_printf): Call process_printf_format() with new args.
+
+	* file-io.cc (process_scanf_format): New function to handle scanf
+	dirty work.
+	* (do_scanf): New function.
+
+Sat Jun  5 14:09:41 1993  John W. Eaton  (jwe@schoch.che.utexas.edu)
+
+	* lex.l (YY_FATAL_ERROR): Redefine here to keep from exiting on
+	fatal scanner errors.
+
+Fri Jun  4 16:35:25 1993  John W. Eaton  (jwe@schoch.che.utexas.edu)
+
+	* tree.cc (tree_multi_assignment_expression::eval (int)): Check to
+	see if result is NULL before trying to use it.
+
+	* tc-extras.cc (get_user_input): Call gnu_readline() to get input.
+
+Thu Jun  3 00:30:28 1993  John W. Eaton  (jwe@schoch.che.utexas.edu)
+
+	* scripts/*.m: Convert single-quoted strings to use double quotes
+	since the manual says they are better.
+
+	* Version 0.71.10.
+
+	* doc/Makefile.in (DISTFILES): Distribute octave.info*.
+
+	* Makefile.in (.fname): Delete target and move actions back to the
+	individual dist targets because this always needs to be done.
+	* (binary-dist): Strip src/octave.
+
+	* doinstall.sh: New file, for binary distributions.
+
+Wed Jun  2 15:11:54 1993  John W. Eaton  (jwe@schoch.che.utexas.edu)
+
+	* Makefile.in (binary-dist): New target, just like dist, except
+	also distribute libcruft.a, liboctave.a, libreadline.a and
+	src/octave.
+
+	* Makefile.in (.fname): New target.
+	* (links-for-dist): New target.
+	* (local-dist): Depend on .fname.
+	* (dist): Depend on .fname and use links-for-dist.
+
+	* octave.cc: Move code to print startup message to just after
+	option processing so that any messages from startup files will
+	appear after the normal startup message.
+
+	* utils.cc (get_site_defaults): New function.
+	* (OCTAVE_HOME): Provide default definition.
+
+	* (SITE_DEFAULTS): Delete definition.
+	* octave.cc (execute_startup_files): Use get_site_defaults instead.
+
+	* src/Makefile.in (utils.o): Define OCTAVE_HOME to be $(prefix)
+	here.
+
+	* Makeconf.in: Don't define SITE_DEFAULTS or OCTAVE_M_FILE_DIR.
+
+	* lex.l (do_string_escapes): Recognize `\"'.
+
+Tue Jun  1 01:28:20 1993  John W. Eaton  (jwe@schoch.che.utexas.edu)
+
+	* Version 0.71.9.
+
+	* parse.y (maybe_convert_to_ans_assign): Greatly simplify.
+
+	* file-io.cc (File_info): Convert from struct to proper class.
+	* (valid_mode): New function.
+
+	* parse.y, parse.h, lex.l, tree-extras.cc (convert_to_ans_assign):
+	Delete unused variable.
+
+	* builtins.cc (SEEK_CUR): Set to 1 to match (normal) system values.
+	* (SEEK_END): Likewise, set to 2.
+
+	* statdefs.h: New file.
+	* Makefile.in (INCLUDES): Add it to the list.
+	* octave-hist.cc: Include it.
+	* variables.cc (identifier_exists): Likewise.
+	* utils.cc (is_newer): Likewise.
+
+	* builtins.cc (SEEK_SET): New builtin varible.
+	* (SEEK_CUR): Ditto.
+	* (SEEK_END): Ditto.
+	* (stdin): Ditto.
+	* (stdout): Ditto.
+	* (stderr): Ditto.
+
+	* lex.l (strip_trailing_whitespace): New function.
+	* ({IDENT}{S}*): Use it.
+	* (<TEXT_FCN>[^ \t\n\;\,]*): Fix to grab trailing spaces.
+	Use strip_trailing_whitespce() to delete it before returning.
+
+Mon May 31 21:00:00 1993  John C. Campbell  (jcc@june.che.utexas.edu)
+
+	* file-io.cc, file-io.h: New files to implement C-style file
+	handling and I/O functions.
+	* (do_printf): Move here from tc-extras.cc.
+	* (process_printf_format): Likewise.  Also renamed from
+	process_format.
+
+Mon May 31 00:52:55 1993  John W. Eaton  (jwe@schoch.che.utexas.edu)
+
+	* (tree_function::eval): Now that we can restore values, enable
+	code to give error for attempts to call functions recursively.
+
+	* octave.cc (parse_and_execute): Use unwind-protect functions to
+	save and restore state.
+	* tree.cc (parse_m_file): Likewise.
+	* (tree_function::eval): Likewise.
+	* tc-extras (eval_string): Likewise.
+
+	* unwind-prot.cc (saved_variable): New class to hold values of and
+	pointers to variables we want to restore.
+	* (restore_saved_variable): New function.
+
+	* unwind-prot.cc (unwind_protect_int_internal): New function.
+	* (unwind_protect_ptr_internal): Ditto.
+	* (unwind_protect_var_internal): Ditto.
+
+	* unwind-prot.h (unwind_prot_int): New macro.
+	* unwind-prot.h (unwind_prot_ptr): Ditto.
+	* unwind-prot.h (unwind_prot_var): Ditto.
+
+	* variables.cc (symbol_out_of_date ()): Move here from tree.cc.
+	* (is_valid_function): Fix logic for finding a function
+	definition, including checking to see if the current symbol
+	definition is out of date.
+
+	* tree-const.h (is_numeric_or_range_type): New function.
+	* tree-const.h (is_string_type): New function.
+	* tree.cc (tree_matrix::eval): Use !is_string_type() instead of
+	is_numeric_type() to decide that we've seen something other than
+	a string.
+
+	* parse.y (maybe_warn_assign_as_truth_value ()): New function.
+	* user-prefs.h (warn_assign_as_truth_value): New preference.
+	* user-prefs.cc (warn_assign_as_truth_value ()): New function.
+	* builtins.cc (string_variables): Add it to the list.
+
+	* tree.h (tree_simple_assignment_expression): Rename class from
+	tree_assignment_expression.
+	* (tree_assignment_expression): New class, derived from
+	tree_expression.
+	* (tree_simple_assignment_expression): Derive from new
+	tree_assignment_expression class, not tree_expression class.
+	* (tree_multi_assignment_expression): Ditto.
+
+Sun May 30 22:40:58 1993  John W. Eaton  (jwe@schoch.che.utexas.edu)
+
+	* src/Makefile.in (%.d: %.cc): First remove target file, then
+	redirect into tmp file, and finally move tmp file to target file
+	only if creating tmp file was successful.
+	* liboctave/Makefile.in (%.d: %.cc): Ditto.
+
+Sat May 29 18:18:16 1993  John W. Eaton  (jwe@schoch.che.utexas.edu)
+
+	* tree.cc (tree_constant *tree_multi_assignment_expression
+	::eval (int print, int nargout)): New function.
+	* (tree_constant tree_multi_assignment_expression::eval (int print)):
+	Use it to do the real work.
+
+	* tree.cc (tree_matrix::to_param_list ()): Also allow index
+	expressions as long as the argument list is missing.
+
+	* parse.y (ans_expression): Now that assignments are just
+	expressions, don't convert expressions to assignemnts to `ans' if
+	they already are assignments.
+	* maybe_convert_to_ans_assign (tree *expr): New function to do the
+	real work.
+
+	* tree.cc (tree_multi_assignment_expression::
+	is_assignement_expression ()): Return 1.
+
+	* tree-base.h (tree::is_index_expression ()): New virtual
+	function, returns 0.
+	* tree.cc (tree_index_expression::is_index_expression ()): Return 1.
+
+	* tree.cc (tree_assignment): Construct from tree_index_expression
+	and a tree.
+	* (tree_index_expression::ident ()): New function.
+	* (tree_index_expression::arg_list ()): New function.
+
+	* parse.y (variable): New rule, returns tree_index_expression.
+
+	* parse.y: Rewrite assignment rules so that they are simply
+	expressions, not special cases.
+	* Rearrange fact and expression rules into expression (assignement
+	or simple expression), simple_expr (binary and postfix expressions
+	or secondary simple expression), and simple_expr1 (constants and
+	prefix expressions) rules.
+	* Delete fact rules.
+
+	* parse.y: Make EXPR_EQ and EXPR_NE have the same precedence as
+	the other relational operators.
+
+Fri May 28 10:14:01 1993  John W. Eaton  (jwe@schoch.che.utexas.edu)
+
+	* unix-octave.exp: Delete use of OCTAVEFLAGS.
+
+	* test/config: New directory.
+	* test/config/Makefile.in: New file.
+	* test/config/unix-octave.exp: Rename from test/octave-init.exp.
+	* test/Makefile.in (SOURCES): Delete octave-init.exp from list.
+	* configure.in: Add test/config/Makefile to the list of Makefiles
+	to build.
+
+	* utils.cc (send_to_plot_stream): Plot lines by default.
+
+Thu May 27 08:03:31 1993  John W. Eaton  (jwe@schoch.che.utexas.edu)
+
+	* lex.l (\]): Don't pop the top of the in_brace_or_paren stack if
+	it's empty.
+
+	* tree.cc (tree_matrix::eval): Make it work for single element
+	strings as well.
+
+	* Version 0.71.8.
+
+	* lex.l (next_token_is_postfix_unary_op): New function.
+	* (<MATRIX>{SN}*\]{S}*): Use it as well, to decide whether to
+	insert a comma.
+	* (<MATRIX>{S}+): Likewise.
+	* ({IDENT}{S}*): Likewise.
+
+Wed May 26 15:37:27 1993  John W. Eaton  (jwe@schoch.che.utexas.edu)
+
+	* pr-otput.cc (pr_any_float): Use form() now that iostream
+	formatting bug has been fixed (libg++-2.3.1).
+
+Mon May 24 15:36:22 1993  John W. Eaton  (jwe@schoch.che.utexas.edu)
+
+	* tree.cc (any_arg_is_magic_colon): New function.
+	* (tree_builtin::eval) Use it to avoid calling builtin functions
+	with `:' arguments.
+
+Sun May 23 14:07:19 1993  John W. Eaton  (jwe@schoch.che.utexas.edu)
+
+	* g-builtins.cc (builtin_fprintf): Correct usage message.
+
+Fri May 21 10:35:40 1993  John W. Eaton  (jwe@schoch.che.utexas.edu)
+
+	* Version 0.71.7.
+
+	* octave.cc (main): Always reset_parser() before every call to
+	yyparse(), not just on a longjmp return.
+
+	* doc/Makefile.in (install): For now, don't try to install
+	anything.
+
+	* lex.l (<MATRIX>{S}+): Call next_token_is_bin_op() instead of
+	making the check in line.
+	* (<MATRIX>{SN}*\]{S}*): Likewise.
+	* (<MATRIX>{S}+): Likewise.
+
+	* lex.l (looks_like_bin_op): New function.
+	* (next_char_is_space): Ditto.
+	* (next_token_is_bin_op): Ditto.
+
+	* lex.l ({IDENT}{S}*): If we're in a brace context and the next
+	character is an open paren, set convert_spaces_to_comma to 0.
+	* tree-const.cc (convert_to_str): New function.
+	* g-builtins.cc (builtin_setstr): New function.
+	* builtins.cc (builtin_general_functions): Add it to the list.
+
+Thu May 20 17:56:15 1993  John W. Eaton  (jwe@schoch.che.utexas.edu)
+
+	* doc/Makefile.in (SOURCES): Define to be all .texi files.
+	* (octave.info): Depend on $(SOURCES).
+	* (octave.dvi): New target.
+	* Don't distribute the man page.
+
+	* lex.l (<MATRIX>{S}+): If the next character is a plus or minus
+	followed by a space or tab, don't insert a comma.  This makes
+	input like [1 + 1] == 2 and input like [1 +1] == [1 1].
+	* (<MATRIX>{SN}*\]{S}*): Likewise.
+
+	* lex.l (<MATRIX>{S}+): Use in_brace_or_paren and
+	convert_spaces_to_comma to decide whether to convert spaces to a
+	comma.
+
+	* lex.l ({IDENT}{S}*): If we're in a brace context and the next
+	character is an open paren, set convert_spaces_to_comma to 0.
+
+	* lex.l (<MATRIX>{SN}*\]{S}*): Even if we're still inside some braces,
+	don't always push a comma onto the input.
+
+	* lex.l (<MATRIX>{SN}*\]): Also grab trailing spaces.
+	* ({IDENT}): Ditto.
+
+	* lex.l (in_brace_or_paren): New stack to keep track of whether
+	the closest enclosing scope is a pair of braces or parens.  When
+	we see a `[' or a `(', push a flag on the stack.  When we see a
+	`]' or a `)', pop the top of the stack.
+
+	* lex.l (convert_spaces_to_comma): New flag to control lexer behavior.
+	* (RETURN): Reset it to 1.
+	* (most other returns): Reset it to 1.
+
+	* lex.l (BIN_OP_RETURN): New macro.  Set convert_spaces_to_comma to 0.
+	* (most binary operators): Use it instead of RETURN.
+
+	* lex.l (match_any): New function.
+
+Wed May 19 12:51:54 1993  John W. Eaton  (jwe@schoch.che.utexas.edu)
+
+	* Range.cc (nelem_internal): Don't allow ranges with more than
+	INT_MAX elements.  Return -1 to indicate failure.
+	* tree-const.cc (tree_constant_rep::tree_constant_rep (double,
+	double, double)): Check nelem() to see if the range is valid.
+
+	* pr-output.cc (all_elements_are_ints (Range&)): We only need to
+	check the base and the increment, not the limit too.
+
+	* Range.cc (nelem_internal): Move function definition here from
+	Range.h and do a better job of determining the number of elements
+	in the range.
+
+Tue May 18 09:06:20 1993  John W. Eaton  (jwe@schoch.che.utexas.edu)
+
+	* Version 0.71.6.
+
+	* tc-extras.cc (find_nonzero_elem_idx): Declare inner loop
+	iteration variables that are used inside later nested loops
+	in the outer enclosing scope to make this work for old and new
+	language definitions (see the ARM, chapter 19: "ANSI/ISO
+	Resolutions", 6.4/6.5: "The statement or statements immediately
+	controlled by the condition in a selection-statement, or an
+	iteration-statement introduce an implicit local scope".
+	* xpow.cc (elem_xpow (Matrix&, Matrix&)): Likewise.
+
+	* tree.cc (tree_identifier::parse_m_file (char*, int)): Set
+	reading_script_file before calling parse_m_file and restore it
+	afterward.
+
+Mon May 17 20:04:54 1993  John W. Eaton  (jwe@schoch.che.utexas.edu)
+
+	* octave.h (prog_name): Declare extern.
+	* (raw_prog_name): Ditto.
+
+	* f2c-compat.sh (ctest.c): Also write a dummy MAIN_ since gcc 2.4
+	doesn't seem to create an executable now if there are unresolved
+	externals, and the linker wants to see it on Suns.
+
+Thu May 13 01:06:18 1993  John W. Eaton  (jwe@schoch.che.utexas.edu)
+
+	* Makefile.in (DISTFILES): Include Makeconf.in.
+
+	* configure.in: Set defaults for CFLAGS, CXXFLAGS, LDFLAGS, and
+	FFLAGS.
+	* Don't substitute CDEBUG, COPTIMIZE, FOPTIMIZE, or CXXOPTIMIZE.
+	* Use AC_PROGRAMS_CHECK instead of our own code for checking for a
+	Fortran compiler.
+	* Add Makeconf to the list of files to create.
+
+	* src/Makefile.in (octave): Use ALL_LDFLAGS instead of LDFLAGS.
+
+	* Makeconf.in (ALL_CFLAGS, ALL_CXXFLAGS, ALL_LDFLAGS): New macros.
+	* Allow the user to set CFLAGS, CXXFLAGS, and FFLAGS without
+	screwing things up.
+	* (CDEBUG, COPTIMIZE, FOPTIMIZE, CXXOPTIMIZE): Delete.
+	* Provide rules for making .o from .cc or .c files that use
+	ALL_CXXFLAGS and ALL_CFLAGS.
+
+	* src/Makefile.in: Generate dependencies automatically using the
+	method described in the GNU make manual.
+	* liboctave/Makefile.in: Likewise.
+
+	* All Makefile.in files: Set TOPDIR and include $(TOPDIR)/Makeconf.
+	* Makeconf.in: New file, for most configuration options.
+
+	* tc-rand.cc (rand_internal): Return an empty matrix for rand (0).
+
+Wed May 12 01:32:36 1993  John W. Eaton  (jwe@schoch.che.utexas.edu)
+
+	* octave.cc (clean_up_and_exit): Call close_plot_stream before
+	quitting.
+
+	* Version 0.71.4.
+
+	* pr-output.cc (octave_print_internal (ostrstream&, Matrix&)):
+	Handle wrapping columns neatly, respecting value of split_long_rows.
+	* (octave_print_internal (ostrstream&, ComplexMatrix&)): Ditto.
+	* (octave_print_internal (ostrstream&, Range&)): Ditto.
+
+	* user-prefs.cc (split_long_rows): New preference variable and
+	function.
+	* builtins.cc (builtin_string_variables): Add to list with default
+	value == true.
+
+Tue May 11 02:20:43 1993  John W. Eaton  (jwe@schoch.che.utexas.edu)
+
+	* pr-output.cc (pr_max_internal): Don't count Inf or NaN when
+	looking for max value.
+	* (pr_min_internal): Likewise, for min values.
+
+	* pr-output.cc (pr_any_float): Merge pr_float and pr_imag_float.
+
+	* pr-output.cc (any_element_is_inf_or_nan (Matrix&)): New function.
+	* (any_element_is_inf_or_nan (ComplexMatrix&)): New function.
+	* (all set_format functions (except Range)): Consider Inf and NaN
+	when computing field width (we'll either print "Inf" (possibly
+	with a sign) or "NaN").
+
+	* pr-output.cc (pr_float): Handle Inf and NaN.
+	* (pr_imag_float): Ditto.
+
+	* pr-output.cc (set_format_style): Make format short set precision
+	to 3 and max field width to 8.
+
+	* pr-output.cc (pr_float): Don't print a sign for -0.0.
+	* (pr_imag_float): Ditto.
+
+	* pr-output.cc (all set_format functions): Return the actual field
+	width computed or 0 if free format.  For complex, return both real
+	and imaginary field widths.
+	* Include pager.h for terminal_rows() and terminal_columns().
+
+	* pr-output.cc (pr_complex): If imaginary part is -0.0, print a
+	minus sign but convert the value to 0.0 before printing.
+
+	* octave.cc (parse_and_execute (FILE *, int)): Don't use readline
+	to read commands from files.
+	* (parse_and_execute (char *, int)): Set reading_script_file
+	before calling get_input_from_file.
+
+	* Version 0.71.3.
+
+	* src/Makefile.in (deps): New target.
+	* Update dependencies using the output from running `make deps'.
+
+	* pr-output.cc (set_output_prec_and_fw): New function.
+	* (set_format_style): Use it.
+	* (set_format functions): Use user_pref variables for precision
+	and field width.
+
+	* variables.cc (octave_real_scalar_variable): New function.
+	* buitlins.cc (builtin_string_varaibles): Add output_precision and
+	max_field_width to the list (really need a separate list for
+	numeric values...).
+	* user-prefs.cc (set_output_max_field_width): New function to be
+	called when output_max_field_width changes.
+	* (output_precision): Likewise, for output_precision.
+
+	* sighandlers.cc (pipe_handler_error_count): New global variable.
+	* (sigpipe_handler): Use it to keep from printing more than one
+	broken pipe message between prompts.
+	* (input.cc): Reset pipe_handler_error_count before printing the
+	prompt.
+
+Mon May 10 13:06:52 1993  John W. Eaton  (jwe@schoch.che.utexas.edu)
+
+	* sighandlers.cc (sigpipe_handler): Issue warning and return
+	instead of aborting.
+
+	* user-prefs.cc (all sv_* functions): Don't delete previous value
+	of a preference string if the new value is bogus.
+
+	* user-prefs.cc (all sv_* functions and all functions that handle
+	user preferences): Return 0 for success, -1 for failure.
+	* symbtab.cc (symbol_record::define): Check return value of sv_fcn
+	and restore previous value on failure.
+	* symtab.h (sv_Function typedef): Change to return int, not void.
+	* builtins.h (sv_Function typedef): Ditto.
+
+Sun May  9 18:25:00 1993  John W. Eaton  (jwe@schoch.che.utexas.edu)
+
+	* user-prefs.cc (all sv_* functions): Issue a warning if the user
+	gives us something that's not a string.
+
+Sat May  8 23:40:59 1993  John W. Eaton  (jwe@schoch.che.utexas.edu)
+
+	* ColVector.cc (ColumnVector::min): Upper loop limit is len, not 0.
+	* (ComplexColumnVector::min): Ditto.
+	* RowVector.cc (RowVector::min): Ditto.
+	* (ComplexRowVector::min): Ditto.
+
+Fri May  7 18:41:29 1993  John W. Eaton  (jwe@schoch.che.utexas.edu)
+
+	* pr-output.cc (set_format_style): New function, extracted from
+	builtin_format().
+	* t-builtins.cc (builtin_format): Call set_format_style to do real
+	work.
+
+	* pr-output.cc: New file for special formatted printing funcions.
+	* tree-const.cc (tree_constant_rep::eval): Use new functions.
+
+	* user-prefs.cc (sv_pager_binary): New function.
+	* user-prefs.h (user_preferences) Add new field, pager_binary.
+	* builtins.cc (builtin_string_variables): Add PAGER to the list.
+	* utils.cc (default_pager): New function.
+	* Makefile.in: Define DEFAULT_PAGER for utils.cc, not pager.cc.
+	* pager.cc (get_pager): Delete function.
+	* Use user_pref.pager_binary instead of calling get_pager().
+
+Thu May  6 11:05:06 1993  John W. Eaton  (jwe@schoch.che.utexas.edu)
+
+	* pager.cc (pager_buf): Declare as static pointer to ostrstream.
+	* (initialze_pager): Delete old pager_buf and create new one for
+	each batch of output.  This is needed because once str() is called
+	for pager buf, it will no longer grow.
+
+	* pager.cc (maybe_page_output): Take care of deleting buffer after
+	str() is called.
+	* (flush_output_to_pager): Likewise.
+	* t-builtins.cc (builtin_ls): Likewise.
+	* (builtin_set): Likewise.
+	* (builtin_show): Likewise.
+	* tc-extras.cc (process_format): Likewise.
+	* (process_format): Likewise.
+	* tree-plot.cc (tree_plot_command::eval): Likewise.
+
+Wed May  5 10:45:39 1993  John W. Eaton  (jwe@schoch.che.utexas.edu)
+
+	* g-builtins.cc (builtin_shell_command): Buffer characters with an
+	ostrstream and call maybe_page_output instead of writing directly
+	to cout.
+	* (builtin_warranty): Likewise.
+	* tc-extras (do_printf): Likewise.
+	* tree.cc (tree_identifier::eval): Likewise.
+	* (tree_assignment_expression::eval): Likewise.
+	* (tree_multi_assignment_expression::eval): Likewise.
+	* tree-const.cc (tree_constant_rep::eval): Likewise.
+	* t-builtins.cc (builtin_help): Likewise.
+	* (builtin_ls): Likewise.
+	* (builtin_who): Likewise.
+
+	* user-prefs.h user-prefs.cc (page_screen_output): New preference.
+	* builtins.cc (string_variables): Add to list with default value
+	of true.
+
+	* input.cc (octave_gets): If interactive, call flush_to_pager()
+	before prompting.
+
+	* utils.cc (terminal_rows): Move to pager.cc
+	* (terminal_columns): Likewise.
+	* (get_pager): Likewise.
+
+	* pager.h, pager.cc: New file to handle pager stuff.
+	* src/Makefile.in: Fix things to distribute and compile them.
+
+	* libcruft/Makefile.in (CRUFT_OBJ): Strip $(srcdir)/ and convert
+	from .f to .o in two steps since some versions of GNU make strip
+	the leading ./ from the output of $(wildcard), causing my pattern
+	match to fail if compiling in the source tree.
+
+Tue May  4 09:13:52 1993  John W. Eaton  (jwe@schoch.che.utexas.edu)
+
+	* symtab.cc (symbol_record::define (symbol_record *)): Delete old
+	name before saving new name.
+	* (symbol_record::document): Likewise, for var.help and fcn.help.
+
+	* parse.y (ABORT_PARSE): Renamed from DO_ABORT.
+
+Mon May  3 01:00:04 1993  John W. Eaton  (jwe@schoch.che.utexas.edu)
+
+	* tree.cc: Define destructors for every class in tree.h.  It
+	appears that it should always be ok to delete everything in a
+	command tree once we're done executing it.  Function definitions
+	are still ok because the parser doesn't set global_command to the
+	tree_function we've built (that's saved somewhere in the symbol
+	table and shouldn't be deleted until we clear or redefine the
+	function).
+
+	* utils.cc (pathstring_to_vector): Do memory management here so
+	callers don't have to.
+	* (default_path): Likewise.
+
+	* utils.cc (make_absolute): Return current_path (not a copy) since
+	it is static.
+	* (get_working_directory): Return the_current_working_directory
+	(not a copy) since it is global.
+
+	* utils.cc (cleanup_tmp_files): Delete filename when done.
+
+	* parse.y: Replace output to cerr with calls to error() or warning().
+	* DO_ABORT: New macro.  Use it instead of YYERROR for errors that
+	we detect, and call yyerror since bison doesn't.
+	* (param_list1): Detect invalid parameter lists.
+	* (yyerror): Don't print pointer if it is past the end of the line.
+
+Sun May  2 13:03:09 1993  John W. Eaton  (jwe@schoch.che.utexas.edu)
+
+	* tc-extras.cc (process_format): Use ostrstream instead of a
+	fixed-size character string to buffer the format.
+
+	* utils.cc (terminal_rows): Get info from readline variable
+	instead of hardcoded constants.
+	* (terminal_columns): Likewise.
+
+	* utils.cc (maybe_page_output): New function.
+	* t-builtins.cc (builtin_help): Use it.
+	* (builtin_who): Ditto.
+	* Don't include procstream.h anymore since we no longer need it.
+
+	* utils.cc (jump_to_top_level): Call run_all_unwind_protects ()
+	before jumping back to the top level.
+
+Sat May  1 20:59:12 1993  John W. Eaton  (jwe@schoch.che.utexas.edu)
+
+	* unwind-prot.cc unwind-prot.h: New files to implement memory
+	cleanup stuff.
+	* src/Makefile.in: Distribute them.
+
+	* Version 0.71.2.
+
+	* computer.m: Delete file.
+	* scripts/Makefile.in (computer.m): Add $(srcdir)/ prefix to
+	computer.in.
+
+Fri Apr 30 17:03:04 1993  John W. Eaton  (jwe@schoch.che.utexas.edu)
+
+	* Matrix.h (<CLASS>::row (int i)): New function for extracting a
+	row of a matrix where CLASS is one of Matrix, DiagMatrix,
+	ComplexMatrix, or ComplexDiagMatrix.
+	* (<CLASS>:: column (int i)): Likewise for columns.
+	* (<CLASS>::row (char *s)): Likewise, but selection is done with a
+	character string.  Currently we accept anything beginning with `F'
+	or `f' to mean the first row and anything beginning with `l' or
+	`L' to mean the last row.
+
+Wed Apr 28 14:23:49 1993  John W. Eaton  (jwe@schoch.che.utexas.edu)
+
+	* scripts/computer.in: New template file for computer.m.
+	* scripts/Makefile.in (computer.m): Generate a custom computer.m
+	file using $target_host_type.
+	* (clean): Delete computer.m.
+
+	* configure.in: If last argument is not empty, use its value as
+	the TARGET.
+	* If we aren't given a TARGET, use config.guess to find one.
+	* Substitute target_host_type.
+
+	* config.guess: New file, taken from gdb distribution.
+	* Makefile.in: Distribute it.
+
+	* tree-const.cc (force_numeric): New parameter, force_str_conv to
+	allow us to ignore user preference on string to numeric
+	conversion.
+	* (make_numeric): Likewise.
+
+	* tree.cc (tree_matrix::eval): Allow range constants in matrix
+	lists by simply converting them to matrices.
+	* Ditto for string constants.
+
+Tue Apr 27 17:21:12 1993  John W. Eaton  (jwe@schoch.che.utexas.edu)
+
+	* utils.cc (smells_like_X11): Delete unneeded function.
+	* builtins.cc (install_builtins): Don't initialize
+	graphics_terminal since it's no longer needed.
+
+	* utils.cc (pathstring_to_vector): Call tilde_expand on each
+	element of the path.
+
+	* mappers.cc: Include float.h for DBL_MAX.
+
+Wed Apr 21 19:31:12 1993  John W. Eaton  (jwe@schoch.che.utexas.edu)
+
+	* mappers.cc (xisnan (Complex&)): Rename from isnan.
+	* builtins.cc (mapper_functions): Use xisnan instead of isnan.
+	* (install_builtins): Special case for linux for geenerating
+	infinity and NaN.
+
+Mon Apr 19 14:10:55 1993  John W. Eaton  (jwe@schoch.che.utexas.edu)
+
+	* Version 0.71.1 released.
+
+	* symtab.cc (char **sorted_list (int& count)) New function.
+	* (char **sorted_var_list (int& count)): Ditto.
+	* (char **sorted_fcn_list (int& count)): Ditto.
+	* t-builtins.cc (builtin_who): Check symbol count too.
+
+	* utils.cc (send_to_plot_stream): Check is_open(), not just the
+	state of the stream.
+	* (close_plot_stream): Likewise.
+
+	* procstream.cc, procstream.h: Rewrite, taking a hint from the GNU
+	fstream class.
+
+Sun Apr 18 17:40:54 1993  John W. Eaton  (jwe@schoch.che.utexas.edu)
+
+	* t-builtins.cc (builtin_help): Don't call list_in_columns if
+	there isn't anything to list.
+
+Fri Apr 16 20:57:15 1993  John W. Eaton  (jwe@schoch.che.utexas.edu)
+
+	* Makefile.in (DISTDIRS): List dld here.
+	* (DISTSUBDIRS): Not here.
+
+Thu Apr 15 12:17:08 1993  John W. Eaton  (jwe@schoch.che.utexas.edu)
+
+	* Version 0.71 released.
+
+	* scripts/*.m: Improve help messages for most files.
+
+	* libcruft/Makefile.in: Make libcruft.a here.
+	* libcruft/Makerules.in: Not here.
+
+	* PLOTTING: New file.
+	* Makefile.in: Add it to the list of files we distribute.
+
+	* g-builtins.cc (builtin_shell_command): New function.
+	* builtins.cc (general_functions): Add it to the list.
+
+	* procstream.h, procstream.cc (iprocstream): New class.
+
+	* lex.l (<MATRIX>{SN}*\]): Maybe insert a comma after reading a `]'.
+
+	* t-builtins.cc (builtin_load): Do tilde expansion for the file name.
+	* (builtin_save): Ditto.
+
+Wed Apr 14 10:40:44 1993  John W. Eaton  (jwe@schoch.che.utexas.edu)
+
+	* tree.cc (tree_function::eval): Until we have a proper call frame
+	unwinding scheme, comment out previous change.
+
+	* tree.cc (tree_matrix::eval): Brain Transplant.
+	* (tree_matrix::length): New function.
+
+	* tree-base.h (matrix_dir): Delete md_none, md_left, and md_up.
+	The only valid values are md_unknown, md_right, and md_down.
+
+Tue Apr 13 20:07:25 1993  John W. Eaton  (jwe@schoch.che.utexas.edu)
+
+	* tree.h (tree_function::call_depth): New member variable.
+	* tree.cc (tree_function::eval): Check it to make recursive
+	function calls fail (waiting for proper symbol table handling).
+
+	* utils.cc (pathstring_to_vector): Don't prepend `.' here.  We do
+	that already in default_path() if the user hasn't given us a
+	loadpath.
+
+	* t-builtins.cc (builtin_help): Get help for M-files even if they
+	haven't been compiled yet.
+	* List M-files we find in the loadpath.
+
+	* utils.cc (get_m_file_names): Split into two functions, add
+	parameter to specify whether .m suffix is deleted.
+
+	* lex.l (grab_help_text): New function.
+	* (beginning_of_function): New global variable.
+	* (%|#): Call grab_help_text() if at beginning of a function.
+	* tree.cc (tree_identifier::document): New function.
+	* parse.y (func_def2): Use it.
+	* (help_buf): New global buffer for help text.
+
+Mon Apr 12 00:31:09 1993  John W. Eaton  (jwe@schoch.che.utexas.edu)
+
+	* utils.cc (get_m_file_names): New function.
+	* variables.cc (make_name_list): Use it.
+
+	* t-builtins.cc (list_in_columns): Put output on an strstream
+	instead of in a String.
+	* (builtin_help): Use an strstream instead of a String for buffering.
+	* (builtin_who): Likewise.
+
+	* g-builtins.cc (builtin_keyboard): New function.
+	* builtins.cc (general_functions): Add to list.
+
+	* tc-extras.cc (get_user_input): If the user enters `exit',
+	`quit', or `return', return instead of eval'ing the string.
+	* Don't abort on empty input.
+	* Add additional argument to handle debugging via new `keyboard'
+	function.  If doing debugging, keep reading until we see `exit',
+	`quit', or `return'.
+
+	* menu.m: New M-file.
+
+	* New top level plotting functions:
+
+	    plot.m    semilogx.m  semilogy.m  loglog.m   polar.m
+	    title.m   xlabel.m    ylabel.m    grid.m     bar.m
+            stairs.m  mesh.m      meshdom.m   contour.m
+
+	* New internal plotting functions:
+
+	    plot_int.m    plot_2_s_s.m  plot_2_v_v.m  plot_2_v_m.m
+	    plot_2_m_v.m  plot_2_m_m.m  polar_int.m
+
+	* New utility functions:
+
+	    is_scalar.m  is_vector.m  is_matrix.m
+
+Sun Apr 11 11:10:29 1993  John W. Eaton  (jwe@schoch.che.utexas.edu)
+
+	* t-buitlins.cc (builtin_ls): New function.
+	* builtins.cc (text_functions): Add it to the list under the names
+	`ls' and `dir'.
+
+Sat Apr 10 15:13:05 1993  John W. Eaton  (jwe@schoch.che.utexas.edu)
+
+	* procstream.cc (oprocstream::close): Set badbit for stream after
+	it is closed.
+
+	* utils.cc (close_plot_stream): New function.
+	* g-buitlins.cc (closeplot): New builtin function.
+	* builtins.cc (general_functions): Add to list.
+
+	* lex.l (cant_be_identifier): New cruft to properly handle the
+	plot command's `using', `title', and `with' keywords.
+
+Fri Apr  9 09:38:25 1993  John W. Eaton  (jwe@schoch.che.utexas.edu)
+
+	* configure.in: Warn if it looks like gnuplot isn't installed.
+
+	* utils.cc (send_to_plot_stream): Check the user's preference for
+	the gnuplot binary.
+
+	* user-prefs.cc (sv_graphics_terminal): Delete function.
+	* user-prefs.h (graphics_terminal): Delete variable.
+
+	* tree-plot.cc (tree_subplot_using::print): Add argument to allow
+	checking of columns given in using command and use it.
+	* (tree_plot_command::eval): Change caller.
+
+	* parse.y (title): Allow plot title to be any expression.
+	* tree-plot.cc (subplot_list): Likewise.
+
+	* tree-plot.cc (tree_plot_command::eval): Don't let lusers try to
+	make 2D parametric plots, since that seems to crash gnuplot.
+
+	* tree.cc (tree_identifier::parse_m_file): Don't try to stash
+	m-file name or time parsed if we were actually executing a script
+	file.
+
+	* sombrero.m: New M-file to demonstrate 3D plotting.
+
+	* parse.y (plot_options): Allow them to be specified in any order.
+
+	* g-builtins.cc (builtin_purge_tmp_files): New function.
+	* builtins.cc (general_functions): Add to list.
+
+	* g-builtins.cc, g-builtins.h (builtin_plot): Delete.
+	* builtins.cc (general_functions): Delete entry for builtin_plot.
+
+	* t-builtins.cc (builtin_set): Check to see if the user is setting
+	up parametric plotting.
+	* tree-plot.cc (parametric_plot): New global variable.
+	* tree_const.cc (save_three_d): New function.
+	* tree-plot.cc (tree_subplot_list::print): Handle 3D plots.
+
+	* Makefile.in: Delete everything having to do with distributing or
+	making gnuplot.
+	* configure.in: Likewise.
+
+Thu Apr  8 10:02:52 1993  John W. Eaton  (jwe@schoch.che.utexas.edu)
+
+	* utils.cc (send_to_plot_stream): New function.  Move declaration
+	of plot_stream to utils.cc and make static.
+
+	* t-builtins.cc (builtin_set): New function.
+	* (builtin_show): Ditto.
+
+	* lex.l: Handle set command.
+	* (doing_set): Yet another global variable to control behavior of
+	the lexer.
+
+	* tree-plot.cc (tree_subplot_using::print): Print warning if scanf
+	format string is given.
+
+	* parse.y (ranges1): Allow lower and upper bounds to be optional.
+	* tree-plot.cc (tree_plot_range::print): Make it work.
+
+	* tree-plot.cc: New file, extracted from tree.cc.
+
+	* sighandlers.cc (install_signals): New function.
+	* (*_handler): New set of functions to handle signals that would
+	otherwise cause us to abort.
+	* (my_friendly_exit): Call exit from most signal_handlers to clean
+	up tmp files, etc.
+
+	* lex.l (do_string_escapes): Correctly handle '' quotes.
+	* Warn about unrecognized escape sequences but convert them to the
+	escaped character anyway.
+	* (EXPON): New definition.  Use it and ? qualifier to shorten the
+	expressions for matching numbers.
+	* (ECHAR): New definition.  Use it to correctly match
+	backslash-escaped characters in strings.
+	* Definitions: Surround multi-character definitions in ()'s to
+	avoid potential problems with things like {DEF}*.
+	* (QQ): Rename from DQ.
+	* (DQSTR): New definition for strings in double quotes.
+	* (DQSTRING): New start state.  Recognizing a naked " puts us here.
+	* ("\n"): Turn off quote_is_transpose at the beginning of each line.
+	* Use error functions instead of writing messages directly.
+	* Don't include iostream.h -- we don't need it now.
+	* Do include error.h.
+
+Wed Apr  7 13:12:17 1993  John W. Eaton  (jwe@schoch.che.utexas.edu)
+
+	* sighandlers.h, sighandlers.cc: New files for signal handling
+	functions.
+	* Makefile.in: Include them in the usual places.
+	* octave.cc (interrupt_handler): Move to sighandlers.cc and rename
+	to sigint_handler.
+
+	* utils.cc (mark_for_deletion): New function.
+	* octave.cc (cleanup_tmp_files): New function.
+	* octave.cc (main): Register cleanup_tmp_files with atexit
+	(on_exit for sun).
+
+	* Stack.h: Template based stack class converted from libg++
+	genclass files.
+	* SLStack.h: Likewise.
+	* (SLStack::pop): Avoid apparent bug in SLList::remove_front.
+
+Tue Apr  6 10:01:52 1993  John W. Eaton  (jwe@schoch.che.utexas.edu)
+
+	* lex.l (almost_match): New function.
+	* (plot_style_token): New function.
+
+	* t-buitlins.cc: Include procstream.h instead of procbuf.h.
+	* (builtin_help): Simplyfy opening of process output stream.
+	* (builtin_who): Likewise.
+
+Mon Apr  5 13:48:20 1993  John W. Eaton  (jwe@schoch.che.utexas.edu)
+
+	* tc-extras.cc (tree_constant_to_scalar): Move to tree-const.cc
+	and make it a member function called to_scalar.
+	* (tree_constant_to_vector): Likewise.
+	* (tree_constant_to_matrix): Likewise.
+
+	* procstream.h, procstream.cc: New files/classes that implement
+	an ostream to a process.  Built on top of procbuf from libg++.
+	* src/Makefile.in: Add them to the lists of files/objects.
+
+Sat Apr  3 23:11:56 1993  John W. Eaton  (jwe@schoch.che.utexas.edu)
+
+	* Lots of clean-up changes to parse.y, tree.cc, tree.h, and
+	tree-base.h.  Use more specific types than just <tree *> for
+	nonterminals.  This allows us to have fewer virtual functions in
+	the base class.  Safer.  Cleaner.  Should have always been this
+	way...
+
+Fri Apr  2 10:04:32 1993  John W. Eaton  (jwe@schoch.che.utexas.edu)
+
+	* parse.y, lex.l: Fix grammar to accept plot command very similar
+	to the gnuplot plot command.
+
+Wed Mar 31 13:11:56 1993  John W. Eaton  (jwe@schoch.che.utexas.edu)
+
+	* tree.cc (eval_undefined_error): Until we can figure out how to
+	clear names without causing problems later on, just remove the
+	symbol name.
+
+	* tree.h (tree_plot_command): New class.
+	* (tree_plot_limits): Ditto.
+	* (tree_plot_range): Ditto.
+	* (tree_subplot_list): Ditto.
+	* (tree_subplot_using): Ditto.
+	* (tree_subplot_style): Ditto.
+
+	* tree-base.h (command_type): Add plot_command to list.
+
+Mon Mar 29 09:53:50 1993  John W. Eaton  (jwe@schoch.che.utexas.edu)
+
+	* find_exec.c (ABSOLUTE_FILENAME_P): Also return true if the
+	given filename begins with `.'.
+
+	* DAE.cc, DAE.h, DAEFunc.h, tc-dassl.cc: Make sure all calls to
+	dassl and the user-supplied functions have consistent argument
+	lists.
+
+	* octave.cc (raw_program_name): New global variable to hold the
+	unprocessed argv[0].  This is to help dld find the absolute path
+	to the executing program.
+	* (initialize_globals): Pass in argc and argv from main.
+	Initialize raw_prog_name.
+
+	* builtins.cc (general_functions): Correct help message for dassl.
+	* g-builtins.cc (dassl_usage): Likewise.
+
+	* src/Makefile.in: Lots of changes to make things work with or
+	without dld.
+	* Makefile.in: Likewise.
+	* configure.in: Likewise.
+
+	* dld: New directory, containing our copy of the dld sources.
+
+	* dynamic-ld.cc, dynamic-ld.h: New files to implement dynamic
+	loading functions.
+	* src/Makefile.in: Add them to the distribution, compile them if
+	doing dynamic loading.
+
+Sun Mar 28 11:03:15 1993  John W. Eaton  (jwe@schoch.che.utexas.edu)
+
+	* configure.in: When looking for Fortran compilers, check for fc
+	last to avoid confusion with some vendor's /bin/sh fc builtin.
+	* Handle new argument --with-dld.
+
+	* g-builtins.cc (builtin_warranty): Add 1993 to list of copyright
+	dates.
+
+Sat Mar 27 17:58:23 1993  John W. Eaton  (jwe@schoch.che.utexas.edu)
+
+	* tc-extras.cc: Rename from tree-extras.cc.
+	* tc-colloc.cc, tc-dassl.cc, tc-det.cc tc-eig.cc, tc-fft.cc,
+	tc-fsolve.cc, tc-fsqp.cc, tc-ifft.cc, tc-inv.cc, tc-lsode.cc,
+	tc-lu.cc, tc-npsol.cc, tc-qr.cc, tc-quad.cc, tc-rand.cc,
+	tc-svd.cc: Split individual functions from tree-extras.cc.
+
+	* g-builtins.cc (npsol_usage): Improve message.
+	* (dassl_usage): Likewise.
+	* (builtin_lsode): Likewise.
+	* (builtin_fsolve): Likewise.
+	* (builtin_quad): Likewise.
+	* builtins.cc (general_functions): Improve corresponding messages.
+
+	* libcruft/fftpack: New directory for fftpack functions.
+	* libcrutf/fftpack/*.f: Add implicit double precision (a-h,o-z) at
+	the top of every subroutine.
+
+	* tree-extras.cc (fft): Allow propagation of empty matrices.
+	* (ifft): Ditto.
+
+	* Matrix.cc (Matrix::fourier): New function.
+	* (Matrix::ifourier): Ditto.
+	* mx-inlines (make_complex): New function.
+	* tree-extras.cc (fft): Use Matrix::fourier instead of doing real
+	to complex conversion here and calling ComplexMatrix::fourier.
+	* (ifft): Likewise, for ifourier.
+
+Sat Mar 27 17:56:59 1993  Fook Fah Yap (ffy@eng.cam.ac.uk)
+
+	* Matrix.cc (ComplexMatrix::fourier): New function for fft.
+	* (ComplexMatrix::ifourier): New function for inverse fft.
+
+	* builtins.cc (general_functions): Add fft and ifft to the list of
+	builtin functions.
+
+	* g-builtins.cc (fft): New function.
+	* (ifft): Ditto.
+
+	* tree-extras.cc (fft): New function.
+	* (ifft): Ditto.
+
+Sat Mar 27 13:53:39 1993  John W. Eaton  (jwe@schoch.che.utexas.edu)
+
+	* octave.cc (usage_string): New file scope constant.
+	* (getopt_option_string): Ditto.
+
+	* error.cc: Declare all arguments const since we don't change them.
+
+	* utils.cc (print_str_or_null): Delete unused function.
+	* utils.h: Delete declaration.
+
+	* tc-assign.cc, tc-index.cc, tc-inlines.cc, tree.cc,
+	tree-const.cc: More error message cleanups.
+
+	* tree-const.cc (print_if_string): Don't write to cerr
+	unconditionally.
+
+Fri Mar 26 22:00:18 1993  John W. Eaton  (jwe@schoch.che.utexas.edu)
+
+	* tree-extras.cc (min): Avoid function calls as arguments for MIN.
+	* (column_min): Ditto.
+	* (max): Likewise, for MAX.
+	* (column_max): Ditto.
+
+	* tree-const.h (NINT): Make it an inline function instead of a
+	macro.
+
+	* tree-extras.cc (fill_matrix (tree_constant&, double, char*)):
+	Convert to scalar type for complex values too.
+
+	* error.h (panic_impossible): New macro to be used in place of
+	assert (0) calls.
+	* All .cc files: Replace calls to assert (0) and abort () with
+	panic_impossible ().
+
+	* Many .cc files:: Replace many instances of `cerr << ...' with
+	calls to gripe() functions.
+
+	* gripes.h, gripes.cc: New functions for reporting common errors.
+	* Makefile.in: Include them in the usual places.
+
+Thu Mar 25 18:42:49 1993  John W. Eaton  (jwe@schoch.che.utexas.edu)
+
+	* Many .cc files:: Replace many instances of `cerr << ...' with
+	calls to error() functions.
+
+	* error.h, error.cc: New functions for reporting errors in a
+	consistent way.
+	* Makefile.in: Include them in the usual places.
+
+Wed Mar 17 17:29:44 1993  John W. Eaton  (jwe@schoch.che.utexas.edu)
+
+	* symtab.cc (symbol_table::save): New functions.
+	* t-buitlins.cc (builtin_save): Use new functions for saving
+	symbols.  Handle case of saving all variables.
+
+	* g-builtins.cc (builtin_pause): If one argument is given, pause
+	for that many seconds before continuing.  Otherwise, wait for user
+	input.
+
+	* symtab.cc (clear): Actually delete undefined symbol_records and
+	remove their names from the list.
+
+	* lex.l (lookup_identifier): New function.  Avoid putting global
+	names in the local symbol table.
+	* ({IDENT}): Use it
+	* ({IDENT}/{S}*=): Ditto.
+
+	* tc-index.cc (do_scalar_index (tree_constant*, int)): Make
+	indexing like a([1,1,1,1]) work for scalars.  GAG.
+
+Tue Mar 16 20:08:23 1993  John W. Eaton  (jwe@schoch.che.utexas.edu)
+
+	* t-buitlins.cc (builtin_cd): Call tilde_expand (from readline) on
+	the argument.
+
+	* lex.l (discard_until): Delete unused function.
+	* When reading numbers, abort if scanf fails to read a number that
+	we think it should.
+	* (IDENT): New macro to match identifiers.
+	* ([_a-zA-Z][_a-zA-Z0-9]*): Use the / operator for trailing
+	context and split into two cases instead of trying to do the
+	lookahead ourselves.
+
+        * lex.l (do_comma_insert_check): Return the value yyleng had
+        before yyinput() is called.
+        * (DO_COMMA_INSERT_CHECK): New macro.  This avoids the use of
+        unput() in do_comma_insert_check() since there seems to be a bug
+        in flex when calling unput() for '\n'.
+
+	Note that this change is necessary if we want to use yyless()
+	since we cant call yyless() from outside of yylex(), because
+	Flex's yyless() is a macro that uses some variables local to
+	yylex().
+
+Mon Mar 15 11:03:43 1993  John W. Eaton  (jwe@schoch.che.utexas.edu)
+
+	* tree.cc (tree_matrix::eval): Undo part of previous change to
+	make a = [1,2;3,4]; [a,a;a,a] work again.
+
+	* parse.y (input): Don't abort for simple_list followed by EOF.
+
+Sun Mar 14 14:38:56 1993  John W. Eaton  (jwe@schoch.che.utexas.edu)
+
+	* RowVector.cc (RowVector::operator << ()): Insert a space between
+	each element.
+	* (ComplexRowVector::operator << ()): Ditto.
+
+	* g-buitlins.cc (plot): Don't declare plot_prog or plot_term as
+	static, and don't delete them.
+
+	* Matrix.h (all checkelem functions): Don't check for range errors
+	if NO_RANGE_CHECK is defined.
+
+Sat Mar 13 10:18:51 1993  John W. Eaton  (jwe@schoch.che.utexas.edu)
+
+	* Matrix.cc (ComplexMatrix::prod): Make it work.
+
+Thu Mar 11 00:08:09 1993  John W. Eaton  (jwe@schoch.che.utexas.edu)
+
+	* Matrix.h (ellum): Delete function.
+	* Declare and define new const elem, checkelem, and operator()
+	functions.
+
+	* ColVector.cc, DiagMatrix.cc, RowVector.cc, Matrix.cc, ODE.cc,
+	LinConst.cc, FEGrid.cc, DAE.cc, Bounds.cc, FEGrid.h:
+	Change all callers.
+	* tree-const.cc, tree-extras.cc, xdiv.cc, xpow.cc: Ditto.
+
+	* tree.cc (tree_matrix::eval): Improve row and column mismatch
+	checking -- [[1,2];[3,4]] works now, and [1,2;3,4,[5,6]] is
+	rejected.
+	* Reformat error messages to include `error:' prefix.
+
+Wed Mar 10 14:02:09 1993  John W. Eaton  (jwe@schoch.che.utexas.edu)
+
+	* lex.l (do_comma_insert): New global variable.
+	* (reset_parser): Reset it.
+	* lex.l (do_comma_insert_check): New function.  Call it wherever a
+	token can be directly followed by '['.
+	* (\[{S}*): Check the value of do_comma_insert.
+
+	* lex.l ([_a-zA-Z][_a-zA-Z0-9]*): Only look for names in the
+	current symbol table.
+
+	* parse.y (word_list_cmd): Special case to disallow use of clear
+	inside a fuction body.
+
+	* parse.y (CLEAR): New %token.
+	* lex.l ([_a-zA-Z][_a-zA-Z0-9]*): Return it if token is "clear".
+
+	* t-builtins.cc (builtin_clear): Allow global symbols to be
+	cleared.
+
+	* symtab.cc (symbol_table::undefine): Clarify comment.
+	* (symbol_table::clear): Don't actually remove names from the
+	table, just force them to be undefined.
+
+	* tree.h (tree_function): Delete unused data member `id'.
+	* tree.cc (tree_function constructors): Don't initialize id.
+
+Mon Mar  8 15:50:28 1993  John W. Eaton  (jwe@schoch.che.utexas.edu)
+
+	* Version 0.70 released.
+
+	* src/Makefile.in: Update dependencies.
+
+	* tree.h: Include stdio.h, for FILE.
+
+	* gnuplot-build: For now, always define -DNOGAMMA.
+	* configure.in: Don't check for gamma().
+
+	* libcruft/Makerules.in: Don't use lib.a(obj.o) style dependencies
+	because it's too slow for large archives.
+	* liboctave/Makefile.in: Ditto.
+
+Sun Mar  7 16:33:39 1993  John W. Eaton  (jwe@schoch.che.utexas.edu)
+
+	* octave.cc (parse_and_execute): Save and restore current column
+	number.  Set input line and column number to zero.
+	* tree.cc (parse_m_file): Likewise.
+
+	* tree.cc (tree_identifier::parse_m_file (FILE*, int*)): New
+	function.  If a parse error occurs, ensure that the symbol is
+	cleared from the global symbol table.
+	* (tree_identifier::parse_m_file (char*, int): Use it.
+
+	* tree.cc (tree_identifier::do_lookup): New function.
+	* (tree_identifier::eval): Use it.
+
+	* utils.cc (decode_prompt_string): Really do use value of PWD.
+
+	* user_prefs.cc (sv_loadpath, sv_ps1, sv_ps2, sv_pwd,
+	sv_gnuplot_binary, sv_graphics_terminal): New functions.
+	* (sv_graphics_terminal): Warn if terminal isn't valid, but set it
+	anyway (it's too late to do anything by the time the function is
+	called).
+	* In functions that use these variables:  Use the value from the
+	user_pref structure instead of doing a symbol table lookup.
+
+	* builtins.cc (builtin_string_variables): Add functions to call
+	for LOADPATH, PS1, PS2, PWD, gnuplot_binary, and graphics_terminal.
+
+	* builtins.cc (PS2): New builtin_string_variables.  Set default
+	value to "> ".
+	* input.cc (octave_gets): Use it instead of no prompt for
+	continued input.
+
+	* parse.y (yyerror): Use line, column, file name, and text of
+	current input line to print better parse error messages.
+
+	* lex.l (NEW_MATRIX): New exclusive start state.  Need this to be
+	able to match \[{SN}* _and_ get secondary prompting right.
+
+	* input.cc (octave_read): Keep track of current input line.
+	* tree.cc (parse_m_file): Save and restore current line number.
+
+	* lex.l (all patterns): Keep track of current input column.
+	* (fixup_column_count): New function to deal with patterns that
+	match more than one line.
+
+	* input.h, input.cc (current_input_line): Global pointer to
+	the text of the current input line.
+
+	* parse.y, parse.h (input_line_number, current_input_column): New
+	global variables.
+
+	* Almost all source files: Finish (for now, at least) the
+	reorganization we started for global variables.
+
+Wed Mar  3 14:49:59 1993  John W. Eaton  (jwe@schoch.che.utexas.edu)
+
+	* tc-assign.cc, tc-index.cc, tc-inlines.cc: New files, split out
+	from tree-const.cc.
+
+	* Almost all source files: reorganize so that all global data is
+	declared in some include file or another.  It probably wouldn't
+	hurt to do some more reorganizing to try to eliminate the amount
+	of global information...
+
+Tue Mar  2 20:49:35 1993  John W. Eaton  (jwe@schoch.che.utexas.edu)
+
+	* variables.h, variables.cc: New files for handling things that
+	need symbol table information.  Lots of files changed to include
+	variables.h, which now includes the extern declarations for the
+	symbol tables.  The declarations of the symbol tables are now in
+	variables.cc, but they are still initialized in octave.cc.
+
+Mon Mar  1 11:35:03 1993  John W. Eaton  (jwe@schoch.che.utexas.edu)
+
+	* builtins.h (builtin_string_variables): New field, sv_function,
+	holds a pointer to the function to call when a variable changes.
+	* builtins.cc (string_variables): Initialize sv_function field.
+	* (install_builtins): While installing builtin string variables,
+	stash sv_function and, if it isn't NULL, call it to initialize
+	global variable user_pref.
+
+	* symtab.h (symbol_record): New field, sv_fcn, holds a pointer to
+	the function to call when a variable changes.
+	* symtab.cc (symbol_record::define): Call sv_fcn if it isn't NULL.
+	* symtab.cc (symbol_record::set_sv_function): New function.
+
+	* utils.cc, parse.y, tree.cc, tree-extras.cc, tree-const.cc,
+	idx-vector.cc, builtins.cc, symtab.cc: Instead of calling
+	functions like do_fortran_indexing(), get the user's preference
+	from the global struct user_pref.
+
+	* utils.h, utils.cc: Delete all functions like do_fortran_indexing()
+	that lookup user variables to find integer values.
+	* user-prefs.h, user-prefs.cc: Move them here, but instead of
+	returning values, set elements of the new global struct user_pref.
+
+	* user-prefs.h, user-prefs.cc: New files for handling global
+	variables for user preferences.
+	* Makefile.in: Add them to the SOURCES and INCLUDES macros.
+
+	* bsd-math/{acosh,asinh,atanh,log1p}.c: Declare all external
+	functions used in each file since they might not be in math.h.
+	* bsd-math/{scalb,copysign,logb,finite,drem,sqrt}.c: New files
+	from BSD's support.c.  Only using scalb, copysign, logb, and
+	finite for now.
+
+	* configure.in: Move tests for f77 closer to the top.
+	* Allow configuration to proceed even if we can't find a Fortran
+	compiler or f2c.
+	* Use `here' documents instead of multiple echos for multi-line
+	messages.
+	* Imrpoved checking for missing math functions.
+
+Sun Feb 28 17:45:53 1993  John W. Eaton  (jwe@schoch.che.utexas.edu)
+
+	* test/Makefile.in (check): Try to avoid errors from cp.
+
+	* mappers.cc (xfinite): Put test for HAVE_FINITE first.
+
+	* libcruft/Makerules.in (LIBCRUFT_DEPEND): Use `=' in assignment
+	instead of `:='.
+
+	* liboctave/Makefile.in: Make an explicit list of sources instead
+	of using $(wildcard).
+
+Thu Feb 25 20:18:12 1993  John W. Eaton  (jwe@schoch.che.utexas.edu)
+
+	* bsd-math/copysign.c: New file.  HP's don't have this?
+	* configure.in (LIBOBJS): Also check for copysign, log1p, and
+	log__L.  For each missing user-level function, add -DFOO_MISSING=1
+	to DEFS.
+	* src/missing-math.h: For each function we declare, check the
+	corresponding XXX_MISSING macro.  Add declarations for copysign
+	and log1p.
+
+Wed Feb 24 20:39:32 1993  John W. Eaton  (jwe@schoch.che.utexas.edu)
+
+	* lex.l (<MATRIX>{SN}*\]/{S}*==): Change scanning pattern to
+	<MATRIX>{SN}*\]{S}*/== in order to keep flex from generating any
+	backtracking code.
+	* (<MATRIX>{SN}*\]/{S}*=): Likewise.
+
+Tue Feb 23 02:45:00 1993  John W. Eaton  (jwe@ward.che.utexas.edu)
+
+	* Version 0.69 released.
+
+	* mappers.cc [_AIX && __GNUG__] : Provide a definition for
+	finite(), since whatever version we get from the system when using
+	g++ doesn't work (note that it does seem to work with gcc, xlc,
+	and xlC).
+
+	* bugs.texi: Note that the math.h file from libg++ declares
+	finite() incorrectly for some systems.
+
+Mon Feb 22 02:04:16 1993  John W. Eaton  (jwe@schoch.che.utexas.edu)
+
+	* configure.in: Look for runtest, but only believe that it exists
+	if we can also find expect.
+	* test/Makefile.in (check): Run tests in build directory, not
+	source directory.
+
+	* tree.cc (reading_script_file): New global variable.
+	* (parse_m_file): Use it, and properly save and restore state so
+	that nested script files will work.
+
+	* octave.cc (parse_and_execute): Properly save and restore state
+	so that nested script files will work.
+	* Don't close input file here.
+
+	* input.cc (get_input_from (FILE*)): Don't declare mf_instream
+	static.  Set mf_instream if reading and M-file or a script file.
+
+	* parse.y: Minor changes to accomodate new lexer.
+
+	* lex.l: Major overhaul in an attempt to do better string
+	handling.  Looks much simpler and even seems to work.
+	* (do_string_escapes): New function.
+
+Sat Feb 20 00:40:32 1993  John W. Eaton  (jwe@schoch.che.utexas.edu)
+
+	* g-builtins.cc (builtin_npsol): If npsol is missing, return empty
+	matrices for x and phi, and -1 for inform.
+
+	* num2str.m: Use %g, not %f.
+
+	* tree.cc (parse_m_file): Save and restor curr_sym_tab, because
+	yyparse may mess with it if it encounters a function definition.
+	* tree-extras.cc (eval_string): Ditto
+	* octave.cc (parse_and_execute): Ditto
+
+	* Makefile.in (DISTDIRS): Add bsd-math to list.
+
+	* src/Makefile.in (LIBOBJS): New macro, value set by configure.
+	(vpath): Add @srcdir@/../bsd-math for LIBOBJS.
+	(octave): Add $(LIBOBJS) to deps.
+	* gnuplot-build/Makefile.in: Likewise, for notgnuplot.
+
+	* configure.in: Use AC_REPLACE_FUNCS to Check for acosh, asinh,
+	atanh, and gamma.
+
+	* bsd-math: New directory for functions from the BSD math library
+	to use as replacements for missing functions.
+
+	* parse.y (semi_comma, comma_semi): New rules.
+	(simple_list, simple_list1): Use them to allow empty statements.
+	(list, list1): Likewise.  This allows empty commands as long as
+	the empty command doesn't contain any newlines.
+
+	* parse.y (simple_assign): New rule, allows things like a = b = c.
+	(multi_assign): Extracted from assignment.
+	(assignment): Split into simple_assign and multi_assign.
+	(expression): Allow '(' simple_assign ')' to be an expression.
+
+	* tree-extras.cc (eval_string): Return result of last expression
+	evaluated, to make things like `eval ('1+1;')*2' work.
+
+Fri Feb 19 19:45:21 1993  John W. Eaton  (jwe@schoch.che.utexas.edu)
+
+	* g-builtins.cc (builtin_pwd): Use getcwd, which is defined in
+	unistd.h, instead of getwd, which seems to be a BSDISM.
+	* utils.cc (decode_prompt_string): Ditto.
+	* (get_working_directory): Ditto.
+
+	* arith_ops.cc (DIVIDE_BY_ZERO_ERROR):  Don't rely on
+	HAVE_IEEE_MATH, use HAVE_ISINF, HAVE_FINITE, and HAVE_ISNAN
+	instead.
+	* configure.in: Don't define HAVE_IEEE_MATH.
+
+	* tree-extras.cc: Include stdio.h for FILE.
+
+Thu Feb 18 10:17:38 1993  John W. Eaton  (jwe@schoch.che.utexas.edu)
+
+	* tree.cc (gobble_leading_white_space): New function.
+	* (is_function_file): New function.
+
+	* (parse_m_file): Handle case of .m file being just a file of
+	commands to execute.
+	* Add optional argument to specify whether to execute a script
+	file.
+	* Return whether a script file was executed.
+	* (tree.cc, tree-extras.cc): Change callers.
+
+	* octave.cc (parse_and_execute): new functions.
+	* (execute_startup_files): Use them.
+
+	* lex.l (<COMMENT>\n): Don't gobble new line.
+
+	* num2str.m: Don't print '\n'.
+
+Wed Feb 17 21:59:55 1993  John W. Eaton  (jwe@schoch.che.utexas.edu)
+
+	* mappers.cc: Simplify and correct finite, isinf, isnan functions.
+	* test/octave/t7.oct: New test for finite, isinf, and isnan
+	functions.
+
+	* configure.in: Define HAVE_IEEE_MATH if isnan and either finite
+	or isinf is available.
+
+	* builtins.cc (mapper_functions): Check HAVE_ISNAN instead of
+	HAVE_IEEE_MATH to determine whether or not to define isnan().
+
+	* mappers.cc: Don't check for HAVE_IEEE_MATH.  Just check for
+	individual functions directly.
+
+	* g-builtins.cc (npsol_usage): Correct usage message.
+
+	* g-builtins.cc: Don't include unistd.h unless HAVE_UNISTD_H is
+	defined.
+	* t-builtins.cc: Ditto.
+	* utils.cc: Ditto.
+
+Tue Feb 16 00:35:44 1993  John W. Eaton  (jwe@schoch.che.utexas.edu)
+
+	* Version 0.68 released.
+
+	* tree.cc (parse_m_file): Set reading_m_file before calling
+	get_input_from_file.
+	* Don't mess with current_infile.
+
+	* input.cc (get_input_from_file): Set mf_instream if we are
+	reading an M-file.  Otherwise, set rl_instream, (even if we aren't
+	really using readline -- this is just the `normal' input stream).
+	* Don't use current_infile.
+	* (octave_read): If not interactive, check reading_m_file to
+	determine where to look for input.
+
+	* octave.cc (main): Don't use readline if we aren't interactive.
+
+	* libcruft/misc/Makefile.in (local-dist): Make sure we don't
+	distribute a bogus d1mach.f.
+	(dist): Ditto.
+
+	* tree-extras.cc (convert_to_ans_assign): New global variable.
+	(eval_string): Conditionally turn off assignment to `ans', for
+	get_user_input ().
+	* parse.y (ans_expression): Use it.
+	* lex.l (reset_parser): Reset it.
+
+	* g-builtins.cc (builtin_input): New function.
+	* builtins.cc (general_fucntions): Add it to the list.
+	* tree-extras.cc (get_user_input): Do most of the real work.
+
+Mon Feb 15 01:14:40 1993  John W. Eaton  (jwe@schoch.che.utexas.edu)
+
+	* t-builtins.cc (load_variable): New function.
+	(builtin_load): Use it.
+
+	* Makefile.in (SUBDIRS): Add the test directory.
+	(check): Don't depend on all.
+
+Sat Feb 13 05:17:53 1993  John W. Eaton  (jwe@schoch.che.utexas.edu)
+
+	* tree-extras.cc (determinant, lu, matrix_exp, matrix_log,
+	matrix_sqrt): Handle empty matrix argument.
+
+	* Matrix.h: Add constructors of the form Matrix (double a) and
+	ColumnVector (double a) to make it even easier to form single
+	element vectors.
+
+Fri Feb 12 03:27:34 1993  John W. Eaton  (jwe@schoch.che.utexas.edu)
+
+	* octave.cc (main): Add -v option that will print the version
+	string and quit with a successful exit status.
+
+Thu Feb 11 00:46:34 1993  John W. Eaton  (jwe@schoch.che.utexas.edu)
+
+	* tree-extras.cc (eig): If given an empty argument, return enough
+	empty matrices to fill all possible LHS variables.
+	(qr): Likewise.
+	(svd): Likewise.
+
+	* tree-const.cc (fortran_style_matrix_assignment): Do the right
+	thing if LHS is an empty matrix.
+
+	* tree-extras.cc (qr): Handle empty matrix argument.
+
+	* Matrix-ext.cc (QR): Make it work (really!).
+	(ComplexQR): Ditto.
+
+Wed Feb 10 00:56:31 1993  John W. Eaton  (jwe@schoch.che.utexas.edu)
+
+	* xdiv.cc (xdiv (ComplexMatrix& a, ComplexMatrix& b)): Do
+	btmp.solve (atmp), like the other three xdiv's.  Argh!
+
+	* tree-extras.cc (eval_string): New function.  Mostly works but
+	could be very fragile.  We desperately need some sort of
+	`unwind-protect' scheme to avoid disaster when octave is
+	interrupted.
+
+	* g-builtins.cc (builtin_eval): Instead of just aborting, call
+	eval_string if given one argument.
+
+	* input.cc (octave_read): If get_input_from_eval_string is
+	nonzero, stuff current_eval_string into buf for flex to read.
+
+	* tree-extras.cc (char *current_eval_string): New global variable
+	for eval().
+	* (int get_input_from_eval_string): Ditto.
+
+	* Update copyright notices to include 1993 (now that it's
+	February...).
+
+Tue Feb  9 14:35:08 1993  John W. Eaton  (jwe@schoch.che.utexas.edu)
+
+	* Version 0.67 released.
+
+	* tree-extras.cc, tree-const.cc: Check the value of the variable
+	`propagate_empty_matrices' to decide what to do about empty
+	matrices in binary and unary operations and some function calls.
+
+	* builtins.cc (builtin_string_variables): New global variable
+	`propagate_empty_matrices' with initial value `warn'.
+	* utils.cc (propagate_empty_matrices): New function.
+
+Mon Feb  8 19:46:51 1993  John W. Eaton  (jwe@schoch.che.utexas.edu)
+
+	* tree-const.cc: Finish changes required to make zero-one indexing
+	work for indexing and assignment.
+
+Sat Feb  6 15:54:10 1993  John W. Eaton  (jwe@schoch.che.utexas.edu)
+
+	* builtins.cc (builtin_string_variables): New global variable
+	`prefer_zero_one_indexing' with initial value `false'.
+	* utils.c (prefer_zero_one_indexing): New function.
+
+Fri Feb  5 13:03:14 1993  John W. Eaton  (jwe@schoch.che.utexas.edu)
+
+	* idx-vector.h, idx-vector.cc: Major overhaul to help with
+	zero-one style indexing.
+	* tree-const.cc (matrix_to_index_vector): Delete functions.
+	* (functions that use idx_vectors): Update for new idx-vector
+	stuff.
+
+	* arith-ops.cc: Don't declare matrix_to_fortran_indices.
+
+	* tree-const.cc (matrix_to_index_vector): Add new argument,
+	allow_neg_one, with default value of false.
+	* (matrix_to_fortran_indices): Add new argument, allow_zero, with
+	default value of false.
+
+	* g-builtins.cc (builtin_find): New function.
+	* builtins.cc (general_fucntions): Add it to the list.
+	* tree-extras.cc (find_nonzero_elem_idx (tree_constant)): Do
+	most of the real work.
+	* tree-extras.cc (find_nonzero_elem_idx (const Matrix&): Do the rest.
+	* (find_nonzero_elem_idx (const ComplexMatrix&): Ditto, for complex.
+
+Wed Feb  3 00:54:01 1993  John W. Eaton  (jwe@schoch.che.utexas.edu)
+
+	* configure.in (DEFAULT_DOT_O_FROM_DOT_F): If using f2c, quote
+	with single quotes instead of double quotes to avoid problems on
+	systems (like the NeXT) that strip \'s from double quoted strings.
+
+	* utils.c (empty_list_elements_ok): New function.
+	* tree.cc (matrix_list::eval): Use it.
+	* builtins.cc (builtin_string_variables): New global variable
+	`empty_list_elements_ok' with initial value `warn'.
+
+	* utils.cc (check_str_pref): New function.
+	* (resize_on_range_error, prefer_column_vectors,
+	warn_comma_in_global_decl, do_fortran_indexing,
+	implicit_str_to_num_ok, treat_neg_dim_as_zero,
+	ok_to_lose_imaginary_part, return_last_computed_value,
+	silent_functions, print_answer_id_name): Use it instead of
+	needlessly duplicating code.
+
+Tue Feb  2 16:58:02 1993  John W. Eaton  (jwe@schoch.che.utexas.edu)
+
+	* lex.l ("'"): If it looks like we're defining a matrix, don't set
+	the start condition to be MAYBE_QSTRING.  GAK.  There has to be a
+	better way...
+
+	* lex.l: Increment and decrement promptflag instead of just
+	setting its value.  This should help get prompting right for
+	things like if [1,2;3,4] NL ...
+	* input.cc (octave_gets): In order to issue a prompt, Require
+	propmtflag to be greater than zero, not just nonzero.
+
+	* tree.cc (tree_if_command): Allow matrices as the expression to
+	test.  Unlike Matlab, a complex value is false only if both the
+	real and imaginary parts are 0.
+	* tree.cc (tree_while_command): Ditto.
+
+	* tree.cc (tree_for_command): Allow matrices and complex values
+	in the expression.  For matrices, assign each column in turn to
+	the dummy variable.
+
+	* Matrix-ext.cc (qr): Make it work.  The LAPACK book gags me again!
+
+	* xdiv.cc: When computing right division with complex matrices,
+	use hermitian() instead of transpose().
+
+	* lex.l: Return IMAG_NUM for a numeric constant followed by
+	[iIjJ], but don't allow spaces between the numeric constant and
+	the letter (it causes problems inside `[]' where spaces matter...
+
+Mon Feb  1 17:15:19 1993  John W. Eaton  (jwe@schoch.che.utexas.edu)
+
+	* tree_extras.cc (rand_internal): Make the random number generator
+	give us a different sequence every time we start octave unless we
+	specifically set the seed.
+
+Thu Jan 28 00:10:24 1993  John W. Eaton  (jwe@schoch.che.utexas.edu)
+
+	* Version 0.66 released.
+
+	* configure.in: Define PLOTLIB in addition to adding -DUNIXPLOT to
+	DEFS if we find -lplot, and call AC_SUBST for PLOTLIB.
+
+	* QP.cc: Define constructors here.
+	* QP.h: Not here.
+
+	* QP.cc (All constructors that are given H): Force H to be
+	symmetric.
+	* (make_h_symmetric): New function.
+
+Wed Jan 27 01:35:53 1993  John W. Eaton  (jwe@schoch.che.utexas.edu)
+
+	* arith-ops.cc (do_unary_op): Do the right thing for complex
+	logical not operator.
+	* Matrix.cc (ComplexMatrix::operator ! (void)): Return Matrix
+	instead of ComplexMatrix.
+	* mx-inlines.cc (not (Complex *d, int len)): For each element of
+	d, return (d[i] == 0.0), not (d[i] != 0.0), and return it as a
+	pointer to double, not Complex.
+
+	* configure.in: Check for libcruft/qpsol/qpsol.f.
+	* Create Makefile in libcruft/qpsol.
+
+	* libcruft/qpsol: New directory.  Copy QPSOL sources here.
+	* libcruft/qpsol/Makefile.in: New file.
+	* libcruft/qpsol/README.MISSING: New file.
+	* libcuft/Makefile.in: Include qpsol in list of directories to
+	make.
+
+	* QPSOL.h, QPSOL.cc: New file for solving QPs with Gill and
+	Murray's QPSOL.
+
+	* QLD.h, QLD.cc: Delete all minimize functions except
+	Vector minimize (double&, int&).
+
+	* QP.h: Declare minimize functions virtual.
+	* (Vector minimize (double&, int&): Declare as a pure virtual
+	function.
+
+	* QP.cc: New file to implement generic minimize functions.
+
+Tue Jan 26 00:27:13 1993  John W. Eaton  (jwe@schoch.che.utexas.edu)
+
+	* lex.l: Recognize numbers of the form .{digits}E{digits} and
+	.{digits}E[+-]{digits}
+
+	* lex.l: Recognize .\ as ELEFTDIV.
+	* parse.y: Handle ELEFTDIV.
+	* tree.cc (tree_binary_expression::eval): Handle el_leftdiv.
+
+	* arith-ops.cc (do_binary_op): Handle element by element left
+	division.  Fix some errors in element by element right division.
+
+	* tree-base.h (enum expression_type): Add el_leftdiv.
+
+	* Version 0.65 released.
+
+	* tree-const.cc (tree_constant_rep::eval (tree_constant *args, int
+	nargin, int nargout, int print)): Fix another brain-o in making
+	recursive call.s
+
+	* src/Makefile.in: Complete changes for CXX instead of C++ make
+	variables.
+
+	* tree-const.cc: For assignment and indexing functions, treat
+	complex scalars and matrices in the same branch of the switch as
+	real scalars and matrices -- the double_value() and matrix_value()
+	functions take care of checking to see if it's ok to lose the
+	imaginary part.
+
+	* tree-const.h (tree_constant_rep::is_numeric_type): New function.
+	* tree-const.h (tree_constant::make_numeric functions): Use it.
+
+	* tree-const.h (tree_constant::make_numeric functions): Return
+	*this for complex constants too.
+
+Mon Jan 25 18:31:06 1993  John W. Eaton  (jwe@schoch.che.utexas.edu)
+
+	* tree-extras.cc (Matrix min (Matrix&, Matrix&)): Loop over nc and
+	nr, not nr and nr.
+	* (Matrix max (Matrix&, Matrix&)): Ditto.
+
+	* tree-const.cc (tree_constant_rep::mapper): Fix brain-o in making
+	recursive call.
+
+Sun Jan 24 20:05:39 1993  John W. Eaton  (jwe@schoch.che.utexas.edu)
+
+	* configure.in: If using f2c, explicitly check for -lf2c.  If it's
+	not found, look for -lF77 and -lI77.  If a suitable combination
+	isn't found, print a warning.
+
+	* src/Makefile.in liboctave/Makefile.in: GNU Make 3.63 uses CXX
+	and CXXFLAGS instead of C++ and C++FLAGS.  Fix things so that 3.63
+	will work without sacrificing compatibility with earlier versions.
+
+	* tree-const.cc (tree_constant_rep::diag (tree_constant&)): Fix
+	brain-o in forcing argument to be numeric.
+
+Fri Jan 22 15:03:42 1993  John W. Eaton  (jwe@schoch.che.utexas.edu)
+
+	* octave.cc (interrupt_handler): Declare to take int argument.
+
+	* NPSOL.cc (npsol_objfun): Delete leftover debugging message.
+
+Thu Jan 21 14:28:24 1993  John W. Eaton  (jwe@schoch.che.utexas.edu)
+
+	* configure.in: Check version of gcc and issue a warning if it
+	looks like 1.something.
+	* Check for g++.  Issue a warning if it is missing or if it is
+	there but it looks like verion 1.something.
+
+	* flibs.sh, f2c-compat.sh: Change file permission to 755 to avoid
+	problems if the uid of the installer is different from the uid of
+	the owner of the files.
+
+Wed Jan 20 04:18:49 1993  John W. Eaton  (jwe@june.che.utexas.edu)
+
+	* libcruft/Makerules.in (@DOT_O_DOT_F_C[1234]@): Patterns deleted.
+	* configure.in: Do multiple line sed substitutions the right way.
+
+Tue Jan 19 14:50:50 1993  John W. Eaton  (jwe@schoch.che.utexas.edu)
+
+	* configure.in: Use new AC_WITH to accept --with-f2c instead of
+	--use-f2c.
+	* Use new AC_HAVE_LIBRARY to find -lplot.
+
+	* flibs.sh: Actually avoid including duplicate -lflags.
+	* Use test, not `['.
+
+Sun Jan 17 16:57:02 1993  John W. Eaton  (jwe@schoch.che.utexas.edu)
+
+	* Matrix.h: Declare operator+ and operator- functions for vectors.
+	* RowVector.cc: Define half of them.
+	* ColVector.cc: Define the other half.
+
+Fri Jan 15 03:00:46 1993  John W. Eaton  (jwe@schoch.che.utexas.edu)
+
+	* src/Makefile.in (install): Include version number in name of
+	installed binary and make a link to $(bindir)/octave.
+
+	* Version 0.64 released.
+
+	* t-builtins.cc (builtin_clear): Don't allow the user to clear
+	global symbols by name.  If he tries, issue a warning.
+
+	* tree.cc (tree_identifier::eval_undefined_error):  Don't clear
+	undefined symbols from the global or local (function) symbol
+	tables.
+
+Thu Jan 14 02:10:20 1993  John W. Eaton  (jwe@schoch.che.utexas.edu)
+
+	* tree.cc (tree_function::eval): Save old and set current symbol
+	table context, so eval_undefined_error() doesn't wipe out top
+	level symbols.
+
+	* Version 0.63 released.
+
+Wed Jan 13 13:16:56 1993  John W. Eaton  (jwe@schoch.che.utexas.edu)
+
+	* Nearly every .h and .cc file: Add interface and implementation
+	#pragmas for G++ in hopes of making smaller objects with -g.
+
+	* tree-const: Properly handle assignments like A(:) = RHS when
+	do_fortran_indexing is true.
+
+	* g-builtins.cc (builtin_eig): Correct usage message.
+
+	* tree-const.cc (tree_constant_rep (ComplexDiagMatrix&)): Create
+	and initialize a new complex_scalar.  Don't just try to copy the
+	value...
+
+	* Matrix.h: Declare new fill functions for diagonal matrices.
+	* DiagMatrix.cc: Define them.
+
+	* Matrix.h: Declare map functions for row and column vectors.
+	* RowVector.cc: Define them.
+	* ColumnVector.cc: Likewise.
+
+	* CollocWt.h: Declare data protected instead of private.
+	* CollocWt.cc (CollocWt::CollocWt (const CollocWt&)): Fix brain-o.
+
+	* lex.l: Return IMAG_NUM for a numeric constant followed by
+	[ \t]*[iIjJ].
+
+	* parse.y (IMAG_NUM): New token.
+	* (fact): Recogize IMAG_NUM and convert its value to a complex
+	constant.
+
+	* Version 0.62 released.
+
+	* Makefile.in (local-dist): Include -local in tar.Z filename.
+	* (split-local-dist): New target.
+	* (dist): Don't depend on newversion.
+	* (local-dist): Ditto.
+
+	* tree-extras.cc (npsol): If the first argument isn't a vector,
+	print an error message and return.
+
+	* tree.cc (tree_matrix::eval): Always set prev_row_total and
+	prev_column_total when starting out.
+
+	* octave.cc (main): Don't try to detect signal handler failures,
+	but do call signal() to set up the interrupt handler.
+
+Tue Jan 12 19:59:33 1993  John W. Eaton  (jwe@schoch.che.utexas.edu)
+
+	* tree-extras.cc (npsol): Fix brain-o in checking length of bounds
+	vectors.
+
+Mon Jan 11 20:32:24 1993  John W. Eaton  (jwe@schoch.che.utexas.edu)
+
+	* tree-extras.cc (set_rand_seed): New function.
+	(force_to_fit_range): New function.
+	(current_seed): Really return current seed.
+	(rand_internal): Allow the user to actually set the seed for the
+	random number generator.
+
+Sun Jan 10 16:46:06 1993  John W. Eaton  (jwe@schoch.che.utexas.edu)
+
+	* Version 0.61 released.
+
+	* builtins.h, builtins.cc: Rename from builtin-fcns.h,
+	builtin-fcns.cc (too long for Linux/SysV).
+
+	* mappers.cc (xisinf): For non-IEEE machines, consider DBL_MAX to
+	be infinite.
+
+Fri Jan  8 09:15:57 1993  John W. Eaton  (jwe@schoch.che.utexas.edu)
+
+	* gnuplot-build/Makefile.in (x11targets): Don't worry about
+	checking HAVE_X11_X_H.
+
+	* configure.in: Check for gamma and lgamma for gnuplot.
+
+	* gnuplot-build/Makefile.in (Makefile.X11): Only move Makefile to
+	../Makefile.X11 if xmkmf succeeds.
+
+	* gnuplot-build/Makefile.in (x11targets): Check to see that XMKMF
+	is set *and* that Makefile.X11 exists.
+	* If making notgnuplot_x11 with Makefile.X11 fails, try again with
+	Makefile.
+
+	* gnuplot-build/Makefile.in: Use @PLOTLIB@ in definintion of LIBS.
+	* Don't define UNIXPLOT in TERMFLAGS.
+	* Don't define LN_S; it isn't used anywhere, and configure doesn't
+	give it a value.
+
+	* configure.in: Check for closepl().  If found, define UNIXPLOT,
+	and substitute -lplot for @PLOTLIB@.
+
+	* arith-ops.cc (DIVIDE_BY_ZERO_ERROR): New macro.  On systems that
+	have IEEE math, give a warning but also go ahead and divide by
+	zero.  On systems that don't have IEEE math, just give an error
+	message and return an undefined tree_constant (it would probably
+	be possible to handle this so that it works the same everywhere,
+	but I'm not sure it's worth the effort...).
+
+	* builtin-fcns.cc (install_builtins): On systems that don't have
+	IEEE_MATH, define Inf to be MAX_DBL, but don't define NaN at all.
+
+	* configure.in: Check for finite, isnan, and isinf.
+	* Set HAVE_IEEE_MATH if we find finite and isnan.
+
+	* builtin-fcns.cc (install_builtins): Use HAVE_IEEE_MATH instead
+	of IEEE_MATH.
+	* mappers.cc: Check HAVE_IEEE_MATH and HAVE_ISINF macros rather
+	than checking system type.
+
+	* graph3d.c (hidden_line_plot): Declare dy and y as double, not
+	float, since VERYLARGE can be DBL_MAX.
+
+	* lsoda.f, lsodar.f, lsodes.f, lsodi.f, lsoibt.f, stoda.f,
+	stodi.f, zrotg.f, sdot.f: Remove unused files.
+
+	* texas_lotto.m: Renamed from win_texas_lotto.m to keep the
+	filename less than 14 characters.
+
+Thu Jan  7 15:45:29 1993  John W. Eaton  (jwe@june.che.utexas.edu)
+
+	* utils.cc: Declare ioctl extern "C".
+
+	* tree.cc: Include stdio.h to be sure FILE is defined (apparently
+	not required by older versions of GNU iostream library).
+	* t-builtins.cc: Likewise.
+	* g-builtins.cc: Likewise, but for tmpnam.
+
+	* tree-const.h (rand_internal): Rename from rand to avoid
+	conflict with standard library rand (a macro in Linux).
+	* tree-extras.cc (rand_internal): Fix function definition.
+	* g-builtins.cc (builtin_rand): Call rand_internal instead of rand.
+
+	* octave.cc (main): Don't try to detect signal handler failures.
+	What's the proper way to do this if RETSIGTYPE is void?
+
+Tue Jan  5 08:14:29 1993  John W. Eaton  (jwe@schoch.che.utexas.edu)
+
+	* tree.cc (tree_matrix::eval): When adding a matrix down or to the
+	right, column or row dimension mismatches are always errors.
+
+Mon Jan  4 04:58:55 1993  John W. Eaton  (jwe@schoch.che.utexas.edu)
+
+	* Version 0.60 released.
+
+	* xdiv.h, xdiv.cc: New files for Octave-specific matrix division
+	stuff.
+	* src/Makefile.in (INCLUDES, SOURCES, OBJECTS): Add xdiv stuff.
+
+	* arith-ops.cc: Include xdiv.h.
+
+Sun Jan  3 12:24:04 1993  John W. Eaton  (jwe@ward.che.utexas.edu)
+
+	* gnuplot-build/Imakefile.in (notgnuplot_x11): In the compile
+	command, put source file before	libraries.
+
+	* libcruft/misc/Makefile.in: Don't use -O to compile gen-dimach.c.
+
+Thu Dec 31 00:45:50 1992  John W. Eaton  (jwe@schoch.che.utexas.edu)
+
+	* tree-extras.cc (matrix_sqrt): Don't create D until it is really
+	needed.
+	* (matrix_log): Ditto.
+	* (matrix_exp): Ditto.
+	[this should really be just one function instead of three...]
+
+	* g-builtins.cc (builtin_sqrtm): New function.
+	* builtin-fcns.cc (general_fucntions): Add it to the list.
+	* tree-extras.cc (matrix_sqrt): Do the real work.
+
+	* Makefile.in: Distribute INSTALL.OCTAVE and configure.in.
+	* (INSTALL.info): Make ../INSTALL.OCTAVE, not ../INSTALL.
+
+	* doc/Makefile.in: Make ../INSTALL.OCTAVE, not ../INSTALL.
+
+	* INSTALL.OCTAVE: Rename from INSTALL.
+	Refer to INSTALL for more info.
+
+	* INSTALL: Copy from autoconf distribution.
+	Refer to INSTALL.OCTAVE for more info.
+
+	* octave.cc (main): Remove leading blank line from startup message.
+	* Don't print it everytime the user types C-c...
+
+	* xpow.cc: Finish off remaining cases.
+
+	* tree-extras.cc (process_format): New function.
+	(do_printf): Use it.
+
+Wed Dec 30 00:43:14 1992  John W. Eaton  (jwe@schoch.che.utexas.edu)
+
+	* Version 0.56.
+
+	* g-builtins.cc (builtin_logm): New function.
+	* builtin-fcns.cc (general_fucntions): Add it to the list.
+	* tree-extras.cc (matrix_log): Do the real work.
+
+	* g-builtins.cc (builtin_expm): New function.
+	* builtin-fcns.cc (general_fucntions): Add it to the list.
+	* tree-extras.cc (matrix_exp): Do the real work.
+
+	* Matrix-ext.cc (LU): Construct LU decomp. here, not in Matrix class.
+	(ComplexLU): Likewise.
+	* Matrix.cc (lu): Deleted.  Use LU constructor instead.
+	Change all uses in octave sources.
+
+	* Matrix-ext.cc (EIG): Construct EIG object here, not in Matrix class.
+	* Matrix.cc (eig): Deleted.  Use EIG constructor instead.
+	Change all uses in octave sources.
+
+	* Matrix-ext.cc (SVD): Construct SVD here, not in Matrix class.
+	(ComplexSVD): Likewise.
+	* Matrix.cc (svd): Deleted.  Use SVD constructor instead.
+	Change all uses in octave sources.
+
+	* Makefile.in: Update for new Matrix file organization.
+	Don't compile mx-inlines separately -- it's included where needed.
+	* Matrix.h: Declare Fortran routines we call here, not in Matrix.cc.
+	Don't declare every class to be a friend of every other class.
+	* mx-inlines.cc: New file, included by all Matrix-related .cc files.
+	* Matrix.cc: Split into several files.
+	* ColVector.cc: New file, from Matrix.cc
+	* RowVector.cc: Ditto.
+	* DiagMatrix.cc: Ditto.
+	* Matrix-ext.cc: Ditto.
+
+	* tree-extras.cc (svd): Take advantage of new constructors and
+	diag functions.
+
+	* Matrix.cc (DiagMatrix::diag) New function.
+	(ComplexDiagMatrix::diag) Ditto.
+
+	* tree-extras.cc (eig): Take advantage of new constructors.
+
+	* tree-const.cc (tree_constant (DiagMatrix)): New constructor.
+	(tree_constant (ComplexDiagMatrix)): Ditto.
+
+	* Matrix.cc (Matrix (const DiagMatrix)): New constructor.
+	(ComplexMatrix (const DiagMatrix)): Ditto.
+	(ComplexMatrix (const ComplexDiagMatrix)): Ditto.
+
+Tue Dec 29 01:14:49 1992  John W. Eaton  (jwe@schoch.che.utexas.edu)
+
+	* octave.cc (main): Print message at startup by default.
+	Don't print it until just before main loop.
+	* New -q option (inhibit_startup_message) turns it off.
+	* New -f option (read_init_files) inhibits reading of startup files.
+	* Delete -v option.
+	* (verbose_usage): Reflect changes in arguments, document -d.
+
+	* win_texas_lotto.m: Sort picks before returning.
+
+	* tree-extras.cc (eig): Return [v,d], not [l,v], where d is a
+	diagonal matrix made from l.
+
+	* builtin-fcns.cc (mapper_functions): Fix last element of
+	initialization list to have correct number of elements.
+
+	* Version 0.55.
+
+	* Quad.h: Move all inline functions to Quad.cc to avoid apparent
+	g++ bug on the RS/6000.
+
+	* configure.in: If we find flex, don't define LEXLIB.
+
+	* COPYING.LIB: Deleted -- we're not actually distributing anything
+	under these terms.
+	* Makefile.in: Don't distribute COPYING.LIB.
+
+Mon Dec 28 00:46:21 1992  John W. Eaton  (jwe@schoch.che.utexas.edu)
+
+	* xpow.h, xpow.cc: New files for safer pow() interface for octave.
+	* src/Makefile.in (INCLUDES, SOURCES, OBJECTS): Add xpow stuff.
+
+	* arith-ops.cc: Include xpow.h.
+	* Don't declare toplevel jmp_buf.
+
+	* t-builtins.cc (builtin_save): Make file and stream static to
+	avoid dumping core on return (is this a bug in libg++ or g++?).
+	* (builtin_load): Ditto.
+
+	* symtab.cc (load): Make it work again.  Yikes!  This hasn't
+	worked since the big symbol table overhaul...
+
+	* tree-const.cc (tree_constant_rep::save): Handle complex scalars
+	and matrices.
+
+	* (symbol_def::undefine): Delete previous symbol definition before
+	defining.  This should be ok now, after the parse_m_file fix of
+	27 Dec.
+
+	* getting_help: New global flag.
+	* ([_a-zA-Z][_a-zA-Z0-9]*): Set it if looking at "help".
+	* (reset_parser): Clear it.
+	* lex.l (STRING): Use it to determine what to do with ' ; and , .
+
+	* lex.l (QSTRING): Handle the following (C-style) backslash escape
+	sequences correctly(?).
+
+	  \a  bell	   \r  carriage return
+	  \b  backspace    \t  horizontal tab
+	  \f  formfeed     \v  vertical tab
+	  \n  newline	   \\  backslash
+
+	* median.m: New M-file.
+
+	* g-builtins.cc (builtin_sort): New function.
+	* builtin-fcns.cc (general_fucntions): Add it to the list.
+	* tree-extras.cc (sort): Do most of the real work.
+	* tree-extras.cc (mx_sort): Do the rest.
+
+Sun Dec 27 17:40:24 1992  John W. Eaton  (jwe@schoch.che.utexas.edu)
+
+	* t-builtins.cc (builtin_casesen): New function.