changeset 2602:9cbbbcf5b6f5

[project @ 1997-01-07 06:18:23 by jwe]
author jwe
date Tue, 07 Jan 1997 06:20:06 +0000
parents 3723512a827a
children 939bc9157319
files ChangeLog PROJECTS README.Linux doc/ChangeLog info/ChangeLog info/terminal.c libcruft/ChangeLog liboctave/ChangeLog scripts/ChangeLog src/ChangeLog src/pt-mat.cc test/ChangeLog
diffstat 12 files changed, 86 insertions(+), 9 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+Tue Jan  7 00:16:35 1997  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* Version 2.0.1 released.
+
 Thu Dec 19 16:18:59 1996  John W. Eaton  <jwe@bevo.che.wisc.edu>
 
 	* aclocal.m4 (OCTAVE_FLIBS): Only add -Xlinker args if compiler is
--- a/PROJECTS
+++ b/PROJECTS
@@ -78,6 +78,10 @@
 
   * Check matrix classes for proper handling of empty matrices.
 
+  * Force all empty matrices to be 0x0 even when other dimensions have
+    been speicified, for compatibility with Matlab, at least when some
+    preference variable is set.
+
   * Improve design of ODE, DAE, classes.
 
   * Make it possible to specify a time which dassl and lsode should
--- a/README.Linux
+++ b/README.Linux
@@ -1,10 +1,10 @@
-Since July 1996, most work on Octave has been done using a
-Linux/GNU system, and a number of people who regularly test Octave
-snapshot releases also primarily use Linux/GNU systems.
+Since July 1996, most work on Octave has been done using a Linux
+system, and a number of people who regularly test Octave snapshot
+releases also primarily use Linux systems.
 
 However, I have recently started to receive a significant number of
 reports from people who say that they can't compile or run Octave on
-Linux/GNU systems.  In nearly every case, the problem has turned out
+Linux systems.  In nearly every case, the problem has turned out
 to be that the compilers or libraries have not been installed
 properly.  I suspect that this often results from a botched upgrade,
 or from attempting to install the compilers from the standard source
--- a/doc/ChangeLog
+++ b/doc/ChangeLog
@@ -1,3 +1,7 @@
+Tue Jan  7 00:17:24 1997  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* Version 2.0.1 released.
+
 Tue Dec 10 01:43:13 1996  John W. Eaton  <jwe@bevo.che.wisc.edu>
 
 	* Version 2.0 released.
--- a/info/ChangeLog
+++ b/info/ChangeLog
@@ -1,3 +1,8 @@
+Mon Jan  6 19:14:49 1997  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* terminal.c (terminal_prep_terminal): Only delete OCRNL from
+	ttybuff.c_oflag if it is defined.
+
 Mon Dec  9 14:20:01 1996  John W. Eaton  <jwe@bevo.che.wisc.edu>
 
 	* Makefile.in (install): Use $(EXE) suffix so that install will
--- a/info/terminal.c
+++ b/info/terminal.c
@@ -637,7 +637,11 @@
 
 #if defined (HAVE_TERMIOS_H) || defined (HAVE_TERMIO_H)
   ttybuff.c_iflag &= (~ISTRIP & ~INLCR & ~IGNCR & ~ICRNL & ~IXON);
-  ttybuff.c_oflag &= (~ONLCR & ~OCRNL);
+#ifdef OCRNL
+  ttybuff.c_oflag &= ~OCRNL;
+#endif
+  ttybuff.c_oflag &= ~ONLCR;
+
   ttybuff.c_lflag &= (~ICANON & ~ECHO);
 
   ttybuff.c_cc[VMIN] = 1;
--- a/libcruft/ChangeLog
+++ b/libcruft/ChangeLog
@@ -1,3 +1,7 @@
+Tue Jan  7 00:17:17 1997  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* Version 2.0.1 released.
+
 Tue Dec 17 11:02:02 1996  John W. Eaton  <jwe@bevo.che.wisc.edu>
 
 	* misc/lo-error.c: Convert C++-style comments to C-style comments.
--- a/liboctave/ChangeLog
+++ b/liboctave/ChangeLog
@@ -1,3 +1,7 @@
+Tue Jan  7 00:16:57 1997  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* Version 2.0.1 released.
+
 Sun Jan  5 12:07:45 1997  John W. Eaton  <jwe@bevo.che.wisc.edu>
 
 	* dMatrix.cc (Matrix::read): Correctly compute the number of
--- a/scripts/ChangeLog
+++ b/scripts/ChangeLog
@@ -1,3 +1,7 @@
+Tue Jan  7 00:16:52 1997  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* Version 2.0.1 released.
+
 Thu Dec 19 22:16:46 1996  John W. Eaton  <jwe@bevo.che.wisc.edu>
 
 	* elfun/lcm.m: Replace missing if statement.
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,19 @@
+Tue Jan  7 00:16:41 1997  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* Version 2.0.1 released.
+
+Mon Jan  6 00:00:07 1997  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* pt-mat.cc (tm_row_const_rep::all_mt): New variable.
+	(tm_row_const::all_empty): New function.
+	(tm_row_const::tm_row_const_rep::init): Set all_mt here.
+	(tm_const::all_mt): New variable.
+	(tm_const::all_emtpy): New function.
+	(tm_const::init): Set all_mt here.
+	(tree_matrix::eval): Return an empty matrix if the list contains
+	only empty elements.  If it contains only empty strings, return an
+	empty string.
+
 Sun Jan  5 12:50:25 1997  John W. Eaton  <jwe@bevo.che.wisc.edu>
 
 	* ops.h (SC_MX_BOOL_OP, MX_SC_BOOL_OP): New arg, empty_result.
--- a/src/pt-mat.cc
+++ b/src/pt-mat.cc
@@ -71,11 +71,11 @@
 
     tm_row_const_rep (void)
       : SLList<octave_value> (), count (1), nr (0), nc (0),
-	all_str (false), is_cmplx (false), ok (false) { }
+	all_str (false), is_cmplx (false), all_mt (true), ok (false) { }
 
     tm_row_const_rep (const tree_matrix_row& mr)
       : SLList<octave_value> (), count (1), nr (0), nc (0),
-	all_str (false), is_cmplx (false), ok (false)
+	all_str (false), is_cmplx (false), all_mt (true), ok (false)
         { init (mr); }
 
     ~tm_row_const_rep (void) { }
@@ -87,6 +87,7 @@
 
     bool all_str;
     bool is_cmplx;
+    bool all_mt;
 
     bool ok;
 
@@ -145,6 +146,7 @@
 
   bool all_strings (void) const { return rep->all_str; }
   bool is_complex (void) const { return rep->is_cmplx; }
+  bool all_empty (void) const { return rep->all_mt; }
 
   octave_value& operator () (Pix p) { return rep->operator () (p); }
 
@@ -198,6 +200,8 @@
 	    }
 	  else
 	    {
+	      all_mt = false;
+
 	      if (first_elem)
 		{
 		  first_elem = false;
@@ -260,7 +264,7 @@
 
   tm_const (const tree_matrix& tm)
     : SLList<tm_row_const> (), nr (0), nc (0), all_str (false),
-      is_cmplx (false), ok (false)
+      is_cmplx (false), all_mt (true), ok (false)
       { init (tm); }
 
   ~tm_const (void) { }
@@ -270,6 +274,7 @@
 
   bool all_strings (void) const { return all_str; }
   bool is_complex (void) const { return is_cmplx; }
+  bool all_empty (void) const { return all_mt; }
 
   operator void* () const { return ok ? (void *) -1 : (void *) 0; }
 
@@ -280,6 +285,7 @@
 
   bool all_str;
   bool is_cmplx;
+  bool all_mt;
 
   bool ok;
 
@@ -318,6 +324,9 @@
 	  if (! is_cmplx && tmp.is_complex ())
 	    is_cmplx = true;
 
+	  if (all_mt && ! tmp.all_empty ())
+	    all_mt = false;
+
 	  append (tmp);
 	}
       else
@@ -345,6 +354,8 @@
 	    }
 	  else
 	    {
+	      all_mt = false;
+
 	      if (first_elem)
 		{
 		  first_elem = false;
@@ -462,6 +473,9 @@
 
   tm_const tmp (*this);
 
+  bool all_strings = false;
+  bool all_empty = false;
+
   if (tmp)
     {
       int nr = tmp.rows ();
@@ -474,9 +488,11 @@
       // Now, extract the values from the individual elements and
       // insert them in the result matrix.
 
-      bool all_strings = tmp.all_strings ();
       bool found_complex = tmp.is_complex ();
 
+      all_strings = tmp.all_strings ();
+      all_empty = tmp.all_empty ();
+
       if (all_strings)
 	chm.resize (nr, nc, Vstring_fill_char);
       else if (found_complex)
@@ -554,6 +570,14 @@
 
 done:
 
+  if (! error_state && retval.is_undefined () && all_empty)
+    {
+      if (all_strings)
+	retval = "";
+      else
+	retval = Matrix ();
+    }
+
   return retval;
 }
 
--- a/test/ChangeLog
+++ b/test/ChangeLog
@@ -1,3 +1,7 @@
+Tue Jan  7 00:16:23 1997  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* Version 2.0.1 released.
+
 Tue Dec 10 01:43:05 1996  John W. Eaton  <jwe@bevo.che.wisc.edu>
 
 	* Version 2.0 released.