changeset 3238:041ea33fbbf4

[project @ 1999-03-26 17:48:16 by jwe]
author jwe
date Fri, 26 Mar 1999 17:48:35 +0000
parents 737b219ab65a
children d54ef0aa6e82
files ChangeLog configure.in doc/interpreter/dir doc/interpreter/struct.texi libcruft/ChangeLog libcruft/Makerules.in liboctave/ChangeLog liboctave/Makefile.in liboctave/data-conv.cc liboctave/lo-ieee.cc scripts/ChangeLog scripts/control/buildssic.m scripts/control/c2d.m scripts/control/d2c.m scripts/control/dlqg.m scripts/control/dre.m scripts/control/h2syn.m scripts/control/hinf_ctr.m scripts/control/hinfnorm.m scripts/control/hinfsyn.m scripts/control/hinfsyn_ric.m scripts/control/is_dgkf.m scripts/control/lqg.m scripts/control/mb.m scripts/control/pzmap.m scripts/control/rlocus.m scripts/control/series.m scripts/control/ss2sys.m scripts/control/starp.m scripts/control/sysadd.m scripts/control/sysconnect.m scripts/control/tf2sys.m scripts/control/tzero.m scripts/control/zginit.m scripts/control/zp2ssg2.m scripts/control/zp2sys.m scripts/general/rot90.m scripts/general/shift.m scripts/image/colormap.m scripts/linear-algebra/cross.m scripts/linear-algebra/dot.m scripts/linear-algebra/norm.m scripts/linear-algebra/qrhouse.m scripts/plot/__plr2__.m scripts/polynomial/polyfit.m scripts/signal/arch_rnd.m scripts/signal/autocov.m scripts/signal/diffpara.m scripts/signal/hurst.m scripts/signal/periodogram.m scripts/signal/spectral_adf.m scripts/signal/spectral_xdf.m scripts/signal/spencer.m scripts/signal/synthesis.m scripts/statistics/distributions/wiener_rnd.m scripts/statistics/models/logistic_regression.m scripts/statistics/models/logistic_regression_derivatives.m scripts/statistics/models/logistic_regression_likelihood.m scripts/statistics/tests/chisquare_test_independence.m scripts/statistics/tests/run_test.m scripts/strings/split.m src/ChangeLog src/Makefile.in src/data.cc src/defaults.cc src/file-io.cc src/lex.l src/octave.cc src/variables.cc src/version.h
diffstat 70 files changed, 301 insertions(+), 175 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+Wed Feb  3 01:02:37 1999  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* configure.in: Use AC_OUTPUT_COMMANDS to chmod install-octave so
+	that the command will also executed in config.status.
+
 Thu Jan 28 21:05:32 1999  John W. Eaton  <jwe@bevo.che.wisc.edu>
 
 	* Makeconf.in (do-subst-config-vals): Do substitution on
--- a/configure.in
+++ b/configure.in
@@ -21,7 +21,7 @@
 ### Software Foundation, 59 Temple Place - Suite 330, Boston, MA
 ### 02111-1307, USA. 
 
-AC_REVISION($Revision: 1.315 $)
+AC_REVISION($Revision: 1.316 $)
 AC_PREREQ(2.9)
 AC_INIT(src/octave.cc)
 AC_CONFIG_HEADER(config.h)
@@ -1176,7 +1176,7 @@
   libcruft/slatec-fn/Makefile libcruft/slatec-err/Makefile \
   libcruft/villad/Makefile)
 
-chmod 755 install-octave
+AC_OUTPUT_COMMANDS([chmod +x install-octave])
 
 ### Print a summary so that important information isn't missed.
 
--- a/doc/interpreter/dir
+++ b/doc/interpreter/dir
@@ -9,4 +9,6 @@
   gives a primer for first-timers, "mItem<Return>" visits the menu
   item named `Item', etc.
 
+* Menu: The list of major topics begins on the next line.
+
 * Octave: (octave).	Interactive language for numerical computations.
--- a/doc/interpreter/struct.texi
+++ b/doc/interpreter/struct.texi
@@ -137,7 +137,7 @@
 
 @example
 @group
-octave:2> f (rand (3) + rand (3) * I);
+octave:2> f (rand (2) + rand (2) * I);
 ans =
 @{
   im =
--- a/libcruft/ChangeLog
+++ b/libcruft/ChangeLog
@@ -1,3 +1,9 @@
+Fri Mar 26 01:19:04 1999  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* Makerules.in (all): Don't try to use a special rule for making
+	the archive.  The default rules may be slower, but they are also
+	correct.
+
 Wed Nov 11 17:27:35 1998  John W. Eaton  <jwe@bevo.che.wisc.edu>
 
 	* Makefile.in (CRUFT_DIRS): Add amos.  Delete specfun.
--- a/libcruft/Makerules.in
+++ b/libcruft/Makerules.in
@@ -29,32 +29,17 @@
 
 LIBCRUFT := ../libcruft.$(LIBEXT)
 
-ifeq ($(STATIC_LIBS), true)
-  LIBCRUFT_DEPEND := $(LIBCRUFT)
-endif
-
 LIBCRUFT_OBJS = $(CRUFT_OBJ) $(SPECIAL_DEPEND)
 
 LIBCRUFT_DEPS = $(LIBCRUFT)($(LIBCRUFT_OBJS))
 
+ifeq ($(STATIC_LIBS), true)
+  LIBCRUFT_DEPEND := $(LIBCRUFT_DEPS)
+endif
+
 all: pic $(LIBCRUFT_DEPEND) $(CRUFT_PICOBJ) $(SPECIAL_PICDEPEND)
 .PHONY: all
 
-# Cancel the default action for when an archive member is out of
-# date.  Instead of inserting the out of date members individually, we
-# will insert them in batches, even if some of them are up to date.
-# This is much faster for a large archive like libcruft.a.
-
-(%) : %
-	@true
-
-$(LIBCRUFT): $(LIBCRUFT_DEPS)
-	$(AR) $(ARFLAGS) $@ $^
-	$(RANLIB) $@
-
-# This is necessary, otherwise we won't have any .o files left when it
-# comes time to insert them in the archive.
-
 .PRECIOUS: $(LIBCRUFT_OBJS)
 
 pic:
--- a/liboctave/ChangeLog
+++ b/liboctave/ChangeLog
@@ -1,3 +1,18 @@
+Fri Mar 26 11:26:32 1999  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* Makefile.in (libraries): Use the libfoo.a(objects) method of
+	creating static libs.
+
+Thu Mar  4 02:17:04 1999  James Macnicol <jamesm@evans.ee.adfa.oz.au>
+
+	* data-conv.cc (oct_data_conv::string_to_data_type): Handle uint16
+	and uint32 data types.
+
+Thu Mar  4 01:51:37 1999  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* lo-ieee.cc (octave_ieee_init): Don't use __alpha__-specific code
+	for Linux.  Remove old Linux-specific code.
+
 Tue Jan 19 09:34:55 1999  John W. Eaton  <jwe@bevo.che.wisc.edu>
 
 	* dMatrix.cc (operator * (const ColumnVector& v, const RowVector& a)):
--- a/liboctave/Makefile.in
+++ b/liboctave/Makefile.in
@@ -113,8 +113,6 @@
   endif
 endif
 
-LIBOCTAVE_DEPEND := $(patsubst %, liboctave.$(LIBEXT)(%), $(OBJECTS))
-
 all: libraries
 .PHONY: all
 
@@ -136,23 +134,19 @@
 
 ifeq ($(SHARED_LIBS), true)
   ifeq ($(STATIC_LIBS), true)
-    libraries: liboctave.$(LIBEXT) liboctave.$(SHLEXT)
+    libraries: liboctave.$(LIBEXT)($(OBJECTS)) liboctave.$(SHLEXT)
   else
     libraries: liboctave.$(SHLEXT)
   endif
 else
   ifeq ($(STATIC_LIBS), true)
-    libraries: liboctave.$(LIBEXT)
+    libraries: liboctave.$(LIBEXT)($(OBJECTS))
   else
     libraries:
   endif
 endif
 .PHONY: libraries
 
-liboctave.$(LIBEXT): $(OBJECTS)
-	$(AR) $(ARFLAGS) $@ $^
-	$(RANLIB) $@
-
 liboctave.$(SHLEXT): liboctave.$(SHLEXT_VER)
 	rm -f $@
 	$(LN_S) $< $@
--- a/liboctave/data-conv.cc
+++ b/liboctave/data-conv.cc
@@ -95,6 +95,26 @@
 	(*current_liboctave_error_handler)
 	  ("unable to find matching native data type for %s", s.c_str ());
     }
+  else if (s == "uint16")
+    {
+      if (sizeof (unsigned short) == 2)
+        retval = dt_ushort;
+      else if (sizeof (unsigned int) == 2)
+        retval = dt_uint;
+      else
+       (*current_liboctave_error_handler)
+         ("unable to find matching native data type for %s", s.c_str ());
+    }
+  else if (s == "uint32")
+    {
+      if (sizeof (unsigned int) == 4)
+        retval = dt_uint;
+      else if (sizeof (unsigned long) == 4)
+        retval = dt_ulong;
+      else
+       (*current_liboctave_error_handler)
+         ("unable to find matching native data type for %s", s.c_str ());
+    }
   else
     (*current_liboctave_error_handler) ("invalid data type specified");
 
--- a/liboctave/lo-ieee.cc
+++ b/liboctave/lo-ieee.cc
@@ -68,13 +68,7 @@
 #if defined (SCO)
   double tmp = 1.0;
   octave_Inf = 1.0 / (tmp - tmp);
-#elif defined (linux)
-#if defined (HUGE_VAL) && ! defined (arm)
-  octave_Inf = HUGE_VAL;
-#else
-  octave_Inf = 1.0/0.0;
-#endif
-#elif defined (__alpha__)
+#elif defined (__alpha__) && ! defined (linux)
   extern unsigned int DINFINITY[2];
   octave_Inf =  (*(X_CAST(double *, DINFINITY)));
 #elif defined (HAVE_INFINITY)
@@ -95,13 +89,7 @@
 
 #if defined (HAVE_ISNAN)
 
-#if defined (linux)
-#if defined (NAN) && ! defined (arm)
-  octave_NaN = NAN;
-#else
-  octave_NaN = 0.0/0.0;
-#endif
-#elif defined (__alpha__)
+#if defined (__alpha__) && ! defined (linux)
   extern unsigned int DQNAN[2];
   octave_NaN = (*(X_CAST(double *, DQNAN)));
 #elif defined (HAVE_QUIET_NAN)
--- a/scripts/ChangeLog
+++ b/scripts/ChangeLog
@@ -1,3 +1,59 @@
+Wed Mar 24 20:34:48 1999  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* linear-algebra/norm.m: Do the right thing for 1- and
+	infinity-norms of complex matrices.  From Sven Khatri
+	<khatri@saturn.vocalpoint.com>.
+
+Tue Mar 16 13:36:36 1999  A. Scottedward Hodel" <scotte@eng.auburn.edu>
+
+	* linear-algebra/qrhouse.m: Handle default args correctly.
+
+Thu Mar 11 12:52:34 1999  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* strings/split.m: Avoid problems when splitting strings that have
+	\ in them.
+
+Thu Mar 11 12:36:13 1999  Massimo Lorenzin <maxlorenzin@tin.it>
+
+	* image/colormap.m: Do better arg checking, handle string args
+	that name the colormap function to call (e.g., colormap ("ocean")).
+
+Mon Mar  8 22:23:24 1999  Rolf Fabian <fabian@TU-Cottbus.De>
+
+	* polynomial/polyfit.m: Use .' transpose operator, not '.
+	* linear-algebra/dot.m: Likewise.
+	* linear-algebra/cross.m: Likewise.
+	* general/rot90.m: Likewise.
+
+Sat Mar  6 01:45:00 1999  A Scott Hodel <hodel@edalf1.msfc.nasa.gov>
+
+	* linear-algebra/qrhouse.m: Permute columns at each iteration so
+	that the leading column is not all zeros.
+
+Fri Mar  5 00:37:47 1999  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* general/shift.m: Fix potential problems with
+	whitespace_in_literal_matrix.
+	* signal/arch_rnd.m: Ditto.
+	* signal/autocov.m: Ditto.
+	* signal/diffpara.m: Ditto.
+	* signal/hurst.m: Ditto.
+	* signal/periodogram.m: Ditto.
+	* signal/spectral_adf.m: Ditto.
+	* signal/spectral_xdf.m: Ditto.
+	* signal/spencer.m: Ditto.
+	* signal/synthesis.m: Ditto.
+	* statistics/distributions/wiener_rnd.m: Ditto.
+	* statistics/models/logistic_regression_likelihood.m: Ditto.
+	* statistics/models/logistic_regression.m: Ditto.
+	* statistics/models/logistic_regression_derivatives.m: Ditto.
+	* statistics/tests/run_test.m: Ditto.
+	* statistics/tests/chisquare_test_independence.m: Ditto.
+
+Wed Mar  3 02:25:00 1999  Joao Cardoso <jcardoso@inescn.pt>
+
+	* plot/__plr2__.m: Fix typo.
+
 Tue Jan 12 10:31:15 1999  John W. Eaton  <jwe@bevo.che.wisc.edu>
 
 	* plot/__pltopt1__.m: Accept "k" to mean black.
--- a/scripts/control/buildssic.m
+++ b/scripts/control/buildssic.m
@@ -129,7 +129,7 @@
     nt = n + nz;
   endif
   for ii = 6:nargin
-    eval(["ss = s" num2str(ii-4) ";"]);
+    eval(["ss = s", num2str(ii-4), ";"]);
     if (!is_struct(ss))
       error("---> Parameter must be a structed system.");
     endif
@@ -150,14 +150,14 @@
     nt1 = n1 + nz1;
     if (!nt1)
       # pure gain (pad B, C with zeros)
-      B = [B  zeros(nt,m1)];
+      B = [B, zeros(nt,m1)];
       C = [C; zeros(p1,nt)];
     else
-      A = [A  zeros(nt,nt1); zeros(nt1,nt) as];
-      B = [B  zeros(nt,m1);  zeros(nt1,m)  bs];
-      C = [C  zeros(p,nt1);  zeros(p1,nt)  cs];
+      A = [A, zeros(nt,nt1); zeros(nt1,nt), as];
+      B = [B, zeros(nt,m1);  zeros(nt1,m),  bs];
+      C = [C, zeros(p,nt1);  zeros(p1,nt),  cs];
     endif
-    D = [D  zeros(p,m1); zeros(p1,m) ds];
+    D = [D, zeros(p,m1); zeros(p1,m), ds];
     n = n + n1;
     nz = nz + nz1;
     nt = nt + nt1;
--- a/scripts/control/c2d.m
+++ b/scripts/control/c2d.m
@@ -97,7 +97,7 @@
     [ sys_a,  sys_b,  sys_c,  sys_d] = sys2ss( sys);
     if(isempty(Acd))                Bmat = sys_b;
     elseif(isempty(csys_b))         Bmat = Acd;
-    else                            Bmat = [Acd csys_b];     endif
+    else                            Bmat = [Acd, csys_b];     endif
     
     row_zer = columns(Bmat);
     csysn = sysdimensions(csys);
@@ -108,7 +108,7 @@
       warning("c2d: no inputs to continuous subsystem.");
       mat = csysa;
     else
-      mat = [csysa Bmat ; zeros( row_zer,col_zer) ];
+      mat = [csysa, Bmat ; zeros( row_zer,col_zer) ];
     endif
 
     matexp = expm(mat * T);
--- a/scripts/control/d2c.m
+++ b/scripts/control/d2c.m
@@ -123,7 +123,7 @@
       warning("d2c: empty b matrix");
       Amat = a;
     else
-      Amat = [a, b; zeros(nb, na) eye(nb)];
+      Amat = [a, b; zeros(nb,na), eye(nb)];
     endif
   
     poles = eig(a);
@@ -160,8 +160,8 @@
         Mall = Mtop;
         DMall = DMtop;
       else
-        Mall = [Mtop; zeros(nb, na+nb)];
-        DMall = [DMtop; zeros(nb, na+nb) ];
+        Mall = [Mtop; zeros(nb,na+nb)];
+        DMall = [DMtop; zeros(nb,na+nb) ];
       endif
   
       if(newgrad)
--- a/scripts/control/dlqg.m
+++ b/scripts/control/dlqg.m
@@ -112,8 +112,8 @@
 
 # now we can just do the design; call dlqr and dlqe, since all matrices
 # are not given in Cholesky factor form (as in h2syn case)
-[Ks P Er] = dlqr(A,B,Q,R);
-[Ke Q jnk Ee] = dlqe(A,G,C,Sigw,Sigv);
+[Ks, P, Er] = dlqr(A,B,Q,R);
+[Ke, Q, jnk, Ee] = dlqe(A,G,C,Sigw,Sigv);
 Ac = A - Ke*C - B*Ks;
 Bc = Ke;
 Cc = -Ks;
--- a/scripts/control/dre.m
+++ b/scripts/control/dre.m
@@ -70,11 +70,11 @@
 mm = sysdimensions(sys,"in");
 pp = sysdimensions(sys,"out");
 
-if(size(Q) != [nn nn])
+if(size(Q) != [nn, nn])
   error("Q(%dx%d); sys has %d states",rows(Q),columns(Q),nn);
-elseif(size(Qf) != [nn nn])
+elseif(size(Qf) != [nn, nn])
   error("Qf(%dx%d); sys has %d states",rows(Qf),columns(Qf),nn);
-elseif(size(R) != [mm mm])
+elseif(size(R) != [mm, mm])
   error("R(%dx%d); sys has %d inputs",rows(R),columns(R),mm);
 endif
 
@@ -109,7 +109,7 @@
     maxerr = max(maxerr,Perr);
     if(Perr > Ptol)
       new_t = mean(tvals([ii,ii-1]));
-      tvals = [tvals new_t];
+      tvals = [tvals, new_t];
       done = 0;
     endif
   endfor
--- a/scripts/control/h2syn.m
+++ b/scripts/control/h2syn.m
@@ -65,10 +65,10 @@
   d22nz = dgs.Dyu_nz;
   dflg = dgs.dflg;
 
-  if(norm(Dzw,Inf) > norm([Dzw Dzu ; Dyw Dyu],Inf)*1e-12)
+  if(norm(Dzw,Inf) > norm([Dzw, Dzu ; Dyw, Dyu],Inf)*1e-12)
     warning("h2syn: Dzw nonzero; feedforward not implemented")
     Dzw
-    D = [Dzw Dzu ; Dyw Dyu]
+    D = [Dzw, Dzu ; Dyw, Dyu]
   endif
 
   # recover i/o transformations
--- a/scripts/control/hinf_ctr.m
+++ b/scripts/control/hinf_ctr.m
@@ -110,9 +110,9 @@
   # rescale controller by Ru and Ry
   b1hat = b1hat/Ry;
   c1hat = Ru\c1hat;
-  bhat  = [b1hat b2hat];
+  bhat  = [b1hat, b2hat];
   chat  = [c1hat; c2hat];
-  dhat  = [Ru\d11hat/Ry Ru\d12hat; d21hat/Ry 0*d11hat'];
+  dhat  = [Ru\d11hat/Ry, Ru\d12hat; d21hat/Ry, 0*d11hat'];
 
   # non-zero D22 is a special case
   if (d22nz)
@@ -120,7 +120,7 @@
       error(" *** cannot compute controller for D22 non-zero.");
     endif
 
-    d22new = [D22 zeros(ny,ny); zeros(nu,nu) 0*D22'];
+    d22new = [D22, zeros(ny,ny); zeros(nu,nu), 0*D22'];
     xx = inv(eye(nu+ny) + d22new*dhat);
     mhat = inv(eye(nu+ny) + dhat*d22new);
     ahat = ahat - bhat*((eye(nu+ny)-xx)/dhat)*chat;
--- a/scripts/control/hinfnorm.m
+++ b/scripts/control/hinfnorm.m
@@ -16,7 +16,7 @@
 # along with Octave; see the file COPYING.  If not, write to the Free 
 # Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. 
  
-function [g gmin gmax] = hinfnorm(sys,tol,gmin,gmax,ptol)
+function [g, gmin, gmax] = hinfnorm(sys,tol,gmin,gmax,ptol)
   # Usage: [g gmin gmax] = hinfnorm(sys[,tol,gmin,gmax,ptol])
   #
   # Computes the H infinity norm of a system data structure
@@ -108,7 +108,7 @@
       [qza,qzb,zz,pls] = qz(s1,s2,"S");	# ordered qz decomposition
       eigerr = abs(abs(pls)-1);
       normH = norm([s1,s2]);
-      Hb = [s1 s2];
+      Hb = [s1, s2];
 
       # check R - B' X B condition (Iglesias and Glover's paper)
       X = zz((nz+1):(2*nz),1:nz)/zz(1:nz,1:nz);
--- a/scripts/control/hinfsyn.m
+++ b/scripts/control/hinfsyn.m
@@ -103,9 +103,9 @@
   Atsam = sysgettsam(Asys);
   [Ast, Ain, Aout] = sysgetsignals(Asys);
 
-  BB = [B1 B2];
+  BB = [B1, B2];
   CC = [C1 ; C2];
-  DD = [D11 D12 ; D21  D22];
+  DD = [D11, D12 ; D21,  D22];
 
   if (dflg == 0)
     n = ncstates;
@@ -182,7 +182,7 @@
       printf("%10.4f ", g);
 
       # computing R and R~
-      d1dot = [D11 D12];
+      d1dot = [D11, D12];
       R = zeros(nin, nin);
       R(1:nw,1:nw) = -g*g*eye(nw);
       R = R + d1dot' * d1dot;
--- a/scripts/control/hinfsyn_ric.m
+++ b/scripts/control/hinfsyn_ric.m
@@ -38,8 +38,8 @@
 nw = is_square(R);
 if(rank(R) != nw)    x_ha_err = 6;
 else                 # build hamiltonian Ha for X_inf
-  xx = ([BB; -C1'*d1dot]/R) * [d1dot'*C1 BB'];
-  Ha = [A 0*A; -C1'*C1 -A'] - xx;
+  xx = ([BB; -C1'*d1dot]/R) * [d1dot'*C1, BB'];
+  Ha = [A, 0*A; -C1'*C1, -A'] - xx;
   x_ha_err = 0;
   [d, Ha] = balance(Ha);
   [u, s] = schur(Ha, "A");
--- a/scripts/control/is_dgkf.m
+++ b/scripts/control/is_dgkf.m
@@ -141,7 +141,7 @@
   endif
 
   # 12 - rank condition at w = 0
-  xx =[A Bu; Cz Dzu];
+  xx =[A, Bu; Cz, Dzu];
   [nr, nc] = size(xx);
   irank = rank(xx);
   if (irank != nc)
@@ -152,7 +152,7 @@
   endif
 
   # 21 - rank condition at w = 0
-  xx =[A Bw; Cy Dyw];
+  xx =[A, Bw; Cy, Dyw];
   [nr, nc] = size(xx);
   irank = rank(xx);
   if (irank != nr)
@@ -174,7 +174,7 @@
   if (nu >= nz)
     Qz = Qz(:,1:nu)';
   else
-    Qz = [Qz(:,(nu+1):nz) Qz(:,1:nu)]';
+    Qz = [Qz(:,(nu+1):nz), Qz(:,1:nu)]';
   endif
   Ru = Ru(1:nu,:);
 
@@ -191,14 +191,14 @@
   if (ny >= nw)
     Qw = Qw(:,1:ny);
   else
-    Qw = [Qw(:,(ny+1):nw) Qw(:,1:ny)];
+    Qw = [Qw(:,(ny+1):nw), Qw(:,1:ny)];
   endif
   Ry = Ry(1:ny,:)';
 
   # transform P by Qz/Ru and Qw/Ry
   Bw  = Bw*Qw;
   Bu  = Bu/Ru;
-  B   = [Bw Bu];
+  B   = [Bw, Bu];
   Cz  = Qz*Cz;
   Cy  = Ry\Cy;
   C   = [Cz; Cy];
--- a/scripts/control/lqg.m
+++ b/scripts/control/lqg.m
@@ -104,11 +104,11 @@
 # now we can just do the design; call dlqr and dlqe, since all matrices
 # are not given in Cholesky factor form (as in h2syn case)
 if(DIG)
-  [Ks P1 Er] = dlqr(A,B,Q,R);
-  [Ke Q1 jnk Ee] = dlqe(A,G,C,Sigw,Sigv);
+  [Ks, P1, Er] = dlqr(A,B,Q,R);
+  [Ke, Q1, jnk, Ee] = dlqe(A,G,C,Sigw,Sigv);
 else
-  [Ks P1 Er] = lqr(A,B,Q,R);
-  [Ke Q1 Ee] = lqe(A,G,C,Sigw,Sigv);
+  [Ks, P1, Er] = lqr(A,B,Q,R);
+  [Ke, Q1, Ee] = lqe(A,G,C,Sigw,Sigv);
 endif
 Ac = A - Ke*C - B*Ks;
 Bc = Ke;
--- a/scripts/control/mb.m
+++ b/scripts/control/mb.m
@@ -19,18 +19,18 @@
 # I think that this m-file can be deleted
 # a.s.hodel@eng.auburn.edu - 4 Dec. 1998
 
-Ap = [0 1;1960 0];
+Ap = [0, 1;1960, 0];
 Bp = [0;-6261];
-Cp = [1 0];
+Cp = [1, 0];
 Dp = 0;
 
 Gp = ss2sys(Ap,Bp,Cp,Dp,0,2,0,[],"delta_i","delta_y");
 Gp = syssetsignals(Gp,"st","delta_x1",1);
 Gp = syssetsignals(Gp,"st","delta_x2",2);
 
-Ak = [-20 1;-22160 -200];
+Ak = [-20, 1;-22160, -200];
 Bk = [-20;-2160];
-Ck = [-3.5074 -0.0319];
+Ck = [-3.5074, -0.0319];
 Dk = 0;
 
 Gk = ss2sys(Ak,Bk,Ck,Dk,0,2,0,[],"y","i");
@@ -39,11 +39,11 @@
 
 Gc = sysgroup(Gp,Gk);
 
-Gc = sysdup(Gc,[],[1 2]);
+Gc = sysdup(Gc,[],[1, 2]);
 # Gc = sysscale(Gc,[],diag([1,1,1,1]));
 
-Gc = sysconnect(Gc,[1 2],[4 3]);
-Gc = sysprune(Gc,1,[1 2]);
+Gc = sysconnect(Gc,[1, 2],[4, 3]);
+Gc = sysprune(Gc,1,[1, 2]);
 
 disp("after pruning, closed loop system is")
 sysout(Gc)
--- a/scripts/control/pzmap.m
+++ b/scripts/control/pzmap.m
@@ -43,11 +43,11 @@
   zerdata = poldata = [];
   if(length(zer))
     zer = reshape(zer,length(zer),1);
-    zerdata = [real(zer(:,1)) imag(zer(:,1))];
+    zerdata = [real(zer(:,1)), imag(zer(:,1))];
   endif
   if(length(pol))
     pol = reshape(pol,length(pol),1);
-    poldata = [real(pol(:,1)) imag(pol(:,1))];
+    poldata = [real(pol(:,1)), imag(pol(:,1))];
   endif
 
   # determine continuous or discrete plane
--- a/scripts/control/rlocus.m
+++ b/scripts/control/rlocus.m
@@ -52,7 +52,7 @@
   if(lden < 2)
     error(sprintf("length of derivative=%d, doesn't make sense",lden));
   elseif(lnum == 1)
-    num = [0 num];     # so that derivative is shortened by one
+    num = [0, num];     # so that derivative is shortened by one
   endif
 
   # root locus plot axis limits
@@ -180,7 +180,7 @@
     idx = find(real(rlpolv) >= xmin & real(rlpolv) <= xmax);
     axdata = [real(rlpolv(idx)),imag(rlpolv(idx))];
     axlim = axis2dlim(axdata);
-    axlim(1:2) = [xmin xmax];
+    axlim(1:2) = [xmin, xmax];
     gset nologscale xy;
     grid("on");
     rldata = [real(rlpolv), imag(rlpolv) ];
--- a/scripts/control/series.m
+++ b/scripts/control/series.m
@@ -79,9 +79,9 @@
 
 # put the two state space systems in series
 
-    a = [a1 zeros(rows(a1),columns(a2));b2*c1 a2];
+    a = [a1, zeros(rows(a1),columns(a2));b2*c1, a2];
     b = [b1;b2*d1];
-    c = [d2*c1 c2];
+    c = [d2*c1, c2];
     d = [d2*d1];
 
 # take care of mu output
--- a/scripts/control/ss2sys.m
+++ b/scripts/control/ss2sys.m
@@ -141,7 +141,7 @@
   retsys.yd = zeros(1,p);     # default value entered below
 
   #  Set the system vector:  active = 2(ss), updated = [0 0 1];
-  retsys.sys = [2 0 0 1]; 
+  retsys.sys = [2, 0, 0, 1]; 
 
   retsys.stname = sysdefstname(n,nz);
   retsys.inname = sysdefioname(m,"u");
--- a/scripts/control/starp.m
+++ b/scripts/control/starp.m
@@ -67,8 +67,8 @@
   nu_sign = 1;
   if (nargin == 2)
     # perform a LFT of P and K (upper or lower)
-    ny = min([pp mk]);
-    nu = min([pk mp]);
+    ny = min([pp, mk]);
+    nu = min([pk, mp]);
   else
     if (ny < 0)
       ny = -ny;
@@ -104,15 +104,15 @@
 
   # checks done, form sys
   if (nzp)  Olst = [1:nzp];  endif
-  if (nzk)  Olst = [Olst pp+nu+1:pp+pk];  endif
+  if (nzk)  Olst = [Olst, pp+nu+1:pp+pk];  endif
   if (nwp)  Ilst = [1:nwp];  endif
-  if (nwk)  Ilst = [Ilst mp+ny+1:mp+mk];  endif
+  if (nwk)  Ilst = [Ilst, mp+ny+1:mp+mk];  endif
   Clst = zeros(ny+nu,2);
   for ii = 1:nu
-    Clst(ii,:) = [nwp+ii nu_sign*(pp+ii)];
+    Clst(ii,:) = [nwp+ii, nu_sign*(pp+ii)];
   endfor
   for ii = 1:ny
-    Clst(nu+ii,:) = [mp+ii ny_sign*(nzp+ii)];
+    Clst(nu+ii,:) = [mp+ii, ny_sign*(nzp+ii)];
   endfor
   sys = buildssic(Clst,[],Olst,Ilst,P,K);
 
--- a/scripts/control/sysadd.m
+++ b/scripts/control/sysadd.m
@@ -92,6 +92,6 @@
   eyin = eye(mg);
   eyout = eye(pg);
 
-  sys = sysscale(sys,[eyout eyout],[eyin;eyin],Gout,Gin);
+  sys = sysscale(sys,[eyout, eyout],[eyin;eyin],Gout,Gin);
 
 endfunction
--- a/scripts/control/sysconnect.m
+++ b/scripts/control/sysconnect.m
@@ -205,7 +205,7 @@
 
   # construct system data structure
   if(m1 > 0)
-   Bc = [B1c B2c];
+   Bc = [B1c, B2c];
   else
    Bc = B2c;
   endif
--- a/scripts/control/tf2sys.m
+++ b/scripts/control/tf2sys.m
@@ -66,7 +66,7 @@
   outsys.den = den;
 
   #  Set the system vector:  active = 0(tf), updated = [1 0 0];
-  outsys.sys = [0 1 0 0];
+  outsys.sys = [0, 1, 0, 0];
 
   #  Set defaults
   outsys.tsam = tsam;
--- a/scripts/control/tzero.m
+++ b/scripts/control/tzero.m
@@ -67,7 +67,7 @@
   # problem balancing method (Hodel and Tiller, Linear Alg. Appl., 1992)
 
   Asys = zgpbal(Asys); [A,B,C,D] = sys2ss(Asys);   # balance coefficients
-  meps = 2*eps*norm([A B; C D],'fro');
+  meps = 2*eps*norm([A, B; C, D],'fro');
   Asys = zgreduce(Asys,meps);  [A, B, C, D] = sys2ss(Asys); # ENVD algorithm
   if(!isempty(A))
     # repeat with dual system
@@ -80,13 +80,13 @@
   zer = [];			# assume none
   [A,B,C,D] = sys2ss(Asys);
   if( !isempty(C) )
-    [W,r,Pi] = qr([C D]');
+    [W,r,Pi] = qr([C, D]');
     [nonz,ztmp] = zgrownorm(r,meps);
     if(nonz)
       # We can now solve the generalized eigenvalue problem.
       [pp,mm] = size(D);
       nn = rows(A);
-      Afm = [A , B ; C D] * W';
+      Afm = [A , B ; C, D] * W';
       Bfm = [eye(nn), zeros(nn,mm); zeros(pp,nn+mm)]*W';
 
       jdx = (mm+1):(mm+nn);
--- a/scripts/control/zginit.m
+++ b/scripts/control/zginit.m
@@ -74,7 +74,7 @@
   endfor
 
   # zz part 3:
-  cd = [c d];
+  cd = [c, d];
   for i=1:pp
     i1 = i+nn+mm;
     cdidx = find(cd(i,:) != 0);
--- a/scripts/control/zp2ssg2.m
+++ b/scripts/control/zp2ssg2.m
@@ -58,7 +58,7 @@
 endif
 
 # remove roots used
-idx = complement([r1i r2i],1:length(rvals));
+idx = complement([r1i, r2i],1:length(rvals));
 rvals = rvals(idx);
 
 endfunction
--- a/scripts/control/zp2sys.m
+++ b/scripts/control/zp2sys.m
@@ -65,7 +65,7 @@
   outsys.k = k;
 
   #  Set the system vector:  active = 1, updated = [0 1 0];
-  outsys.sys = [1 0 1 0];
+  outsys.sys = [1, 0, 1, 0];
 
   #  Set defaults
   outsys.tsam = 0;
--- a/scripts/general/rot90.m
+++ b/scripts/general/rot90.m
@@ -45,11 +45,11 @@
     if (k == 0)
       y = x;
     elseif (k == 1)
-      y = flipud (x');
+      y = flipud (x.');
     elseif (k == 2)
       y = flipud (fliplr (x));
     elseif (k == 3)
-      y = (flipud (x))';
+      y = (flipud (x)).';
     else
       error ("rot90: internal error!");
     endif
--- a/scripts/general/shift.m
+++ b/scripts/general/shift.m
@@ -31,7 +31,7 @@
     error ("usage: shift (X, b)");
   endif
 
-  [nr nc] = size (x);
+  [nr, nc] = size (x);
   
   if (nr == 0 || nc == 0)
     error ("shift: x must not be empty");
@@ -47,10 +47,14 @@
 
   if (b >= 0)
     b = rem (b, nr);
-    y = [x (nr - b + 1 : nr, :); x (1 : nr - b, :)];
+    t1 = x (nr-b+1:nr, :);
+    t2 = x (1:nr-b, :);
+    y = [t1; t2];
   elseif (b < 0)
     b = rem (abs (b), nr);
-    y = [x (b + 1 : nr, :); x (1 : b, :)];
+    t1 = x (b+1:nr, :)
+    t2 = x (1:b, :);
+    y = [t1; t2];
   endif
 
   if (nc == 0)
--- a/scripts/image/colormap.m
+++ b/scripts/image/colormap.m
@@ -42,20 +42,35 @@
   endif
 
   if (nargin == 1)
+
     if (isstr (map))
       if (strcmp (map, "default"))
-        __current_color_map__ = gray ();
+        map = gray ();
       else
-        error ("invalid argument");
+	unwind_protect
+	  save_default_eval_print_flag = default_eval_print_flag;
+	  default_eval_print_flag = 0;
+	  map = eval (map);
+	unwind_protect_cleanup
+	  default_eval_print_flag = save_default_eval_print_flag;
+	end_unwind_protect
       endif
-    else
+    endif
+
+    if (! isempty (map))
+      if (columns (map) != 3)
+	error( "colormap: map must have 3 columns: [R,G,B]." );
+      endif
+      if (min (min (map)) < 0 || max (max (map)) > 1)
+        error( "colormap: map must have values in [0,1]." );
+      endif
       ## Set the new color map
       __current_color_map__ = map;
     endif
+
   endif
 
   ## Return current color map.
-
   cmap = __current_color_map__;
 
 endfunction
--- a/scripts/linear-algebra/cross.m
+++ b/scripts/linear-algebra/cross.m
@@ -38,7 +38,7 @@
 
     if ((x_nr == y_nr && x_nr == 1)
  	|| (x_nr != y_nr && ! prefer_column_vectors))
-      z = z';
+      z = z.';
     endif
 
   else
--- a/scripts/linear-algebra/dot.m
+++ b/scripts/linear-algebra/dot.m
@@ -31,7 +31,7 @@
     [y_nr, y_nc] = size (y);
     if (x_nr == 1)
       if (y_nr == 1)
-	z = x * y';
+	z = x * y.';
       else
 	z = x * y;
       endif
@@ -39,7 +39,7 @@
       if (y_nr == 1)
 	z = y * x;
       else
-	z = y' * x;
+	z = y.' * x;
       endif
     endif
   else
--- a/scripts/linear-algebra/norm.m
+++ b/scripts/linear-algebra/norm.m
@@ -89,20 +89,18 @@
         if (strcmp (p, "fro"))
           retval = sqrt (sum (diag (x' * x)));
         elseif (strcmp (p, "inf"))
-          xp = x';
-          retval = max (sum (abs (real (xp)) + abs (imag (xp))));
+          retval = max (sum (abs (x')));
         else
           error ("norm: unrecognized norm");
         endif
       else
         if (p == 1)
-          retval = max (sum (abs (real (x)) + abs (imag (x))));
+          retval = max (sum (abs (x)));
         elseif (p == 2)
           s = svd (x);
           retval = s (1);
         elseif (p == Inf)
-          xp = x';
-          retval = max (sum (abs (real (xp)) + abs (imag (xp))));
+          retval = max (sum (abs (x')));
         endif
       endif
     elseif (nargin == 1)
--- a/scripts/linear-algebra/qrhouse.m
+++ b/scripts/linear-algebra/qrhouse.m
@@ -17,7 +17,7 @@
 # Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
 
 function [hv,alph,kb] = qrhouse(VV,eps1)
-# function [hv,alph,kb] = qrhouse(VV,eps1)
+# function [hv,alph,kb] = qrhouse(VV{,eps1})
 # construct orthogonal basis of span(VV) with Householder vectors
 # Q R = VV; Q may be obtained via routine krygetq; R is upper triangular
 #   if all rows of VV are nonzero; otherwise it's a permuted uppert
@@ -37,8 +37,10 @@
 
 # Written by A. S. Hodel, 1992
 
-if(nargin < 2)
-  usage("[hv,alph,kb] = qrhouse(VV,eps1)");
+if(nargin < 1 | nargin > 2)
+  usage("[hv,alph,kb] = qrhouse(VV{,eps1})");
+elseif(nargin == 1)     # default value for eps set to 0
+  eps1 = 0;
 endif
 
 
--- a/scripts/plot/__plr2__.m
+++ b/scripts/plot/__plr2__.m
@@ -94,7 +94,7 @@
       if (r_nr != t_nr)
 	error ("polar: vector and matrix sizes must match");
       endif
-      diag_r = diag (r);
+      diag_r = diag (rho);
       x = diag_r * cos (theta);
       y = diag_r * sin (theta);
       __plt2mv__ (x, y, fmt);
--- a/scripts/polynomial/polyfit.m
+++ b/scripts/polynomial/polyfit.m
@@ -66,7 +66,7 @@
   p = flipud (p);
 
   if (! prefer_column_vectors)
-    p = p';
+    p = p.';
   endif
 
 endfunction
--- a/scripts/signal/arch_rnd.m
+++ b/scripts/signal/arch_rnd.m
@@ -56,7 +56,7 @@
     b  = [b, 0];
     lb = lb + 1;
   endif
-  M  = max([la lb]);
+  M  = max([la, lb]);
   
   e  = zeros (T, 1);
   h  = zeros (T, 1);
@@ -67,10 +67,10 @@
   y(1) = b(1) + e(1);
   
   for t= 2 : M;
-    ta   = min ([t la]);
+    ta   = min ([t, la]);
     h(t) = a(1) + a(2:ta) * e(t-1:t-ta+1).^2;
     e(t) = sqrt (h(t)) * randn;
-    tb   = min ([t lb]);
+    tb   = min ([t, lb]);
     y(t) = b(1) + b(2:tb) * y(t-1:t-tb+1) + e(t);
   endfor
   if (T > M)
--- a/scripts/signal/autocov.m
+++ b/scripts/signal/autocov.m
@@ -26,7 +26,7 @@
   
 function retval = autocov (X, h)
   
-  [n c] = size (X);
+  [n, c] = size (X);
   
   if (is_vector (X))
     n = length (X);
--- a/scripts/signal/diffpara.m
+++ b/scripts/signal/diffpara.m
@@ -44,7 +44,7 @@
       k = 1;
       X = reshape (X, n, 1);
     else
-      [n k] = size(X);
+      [n, k] = size(X);
     endif
     if (nargin == 1)
       a = 0.5 * sqrt (n);
--- a/scripts/signal/hurst.m
+++ b/scripts/signal/hurst.m
@@ -35,7 +35,7 @@
     x = reshape (x, length (x), 1);
   end
     
-  [xr xc] = size (x);
+  [xr, xc] = size (x);
 
   s = std (x);
   w = cumsum (x - mean (x));
--- a/scripts/signal/periodogram.m
+++ b/scripts/signal/periodogram.m
@@ -23,7 +23,7 @@
 
 function retval = periodogram (x)
 
-  [r c] = size(x);
+  [r, c] = size(x);
 
   if (r == 1)
     r = c;
--- a/scripts/signal/spectral_adf.m
+++ b/scripts/signal/spectral_adf.m
@@ -50,7 +50,7 @@
   c = c .* w;
   
   retval = 2 * real (fft (c)) - c(1);
-  retval = [zeros (cr, 1) retval];
+  retval = [(zeros (cr, 1)), retval];
   retval(:, 1) = (0 : xr-1)' / xr;
   
 endfunction
--- a/scripts/signal/spectral_xdf.m
+++ b/scripts/signal/spectral_xdf.m
@@ -52,7 +52,7 @@
   retval = (abs (fft (X)) / xr).^2;
   retval = real (ifft (fft(retval) .* fft(w)));
   
-  retval = [zeros (xr, 1) retval];
+  retval = [(zeros (xr, 1)), retval];
   retval(:, 1) = (0 : xr-1)' / xr;
   
 endfunction
--- a/scripts/signal/spencer.m
+++ b/scripts/signal/spencer.m
@@ -27,7 +27,7 @@
     usage ("spencer (X)");
   endif
 
-  [xr xc] = size(X);
+  [xr, xc] = size(X);
   
   n = xr;
   c = xc;
@@ -38,7 +38,7 @@
    X = reshape(X, n, 1);
   endif
    
-  W = [ -3 -6 -5 3 21 46 67 74 67 46 21 3 -5 -6 -3 ] / 320;
+  W = [-3, -6, -5, 3, 21, 46, 67, 74, 67, 46, 21, 3, -5, -6, -3] / 320;
 
   retval = fftfilt (W, X);
   retval = [zeros(7,c); retval(15:n,:); zeros(7,c);];
--- a/scripts/signal/synthesis.m
+++ b/scripts/signal/synthesis.m
@@ -30,7 +30,7 @@
     usage ("X = synthesis (Y, c)");
   endif
   
-  [nr nc] = size (c);
+  [nr, nc] = size (c);
   if (nr * nc != 3)
     error ("synthesis:  c must contain exactly 3 elements");
   endif
--- a/scripts/statistics/distributions/wiener_rnd.m
+++ b/scripts/statistics/distributions/wiener_rnd.m
@@ -42,5 +42,5 @@
   retval = randn (n * t, d);
   retval = cumsum (retval) / sqrt (n);
 
-  retval = [(1: n*t)' / n retval];
+  retval = [((1: n*t)' / n), retval];
 endfunction
--- a/scripts/statistics/models/logistic_regression.m
+++ b/scripts/statistics/models/logistic_regression.m
@@ -66,11 +66,11 @@
   
   ## check input
   y = round (vec (y)); 
-  [my ny] = size (y);   
+  [my, ny] = size (y);   
   if (nargin < 2)
     x = zeros (my, 0); 
   endif;
-  [mx nx] = size (x);
+  [mx, nx] = size (x);
   if (mx != my)
     error ("x and y must have the same number of observations");
   endif
@@ -83,7 +83,7 @@
   z1 = (y * ones (1, yrange)) == ((y * 0 + 1) * ((ymin + 1) : ymax));
   z  = z(:, any (z)); 
   z1 = z1 (:, any(z1)); 
-  [mz nz] = size (z);
+  [mz, nz] = size (z);
   
   ## starting values
   if (nargin < 3)
@@ -164,7 +164,7 @@
     else
       e = (y * 0 + 1) * theta';
     endif
-    gamma = diff ([(y * 0) exp (e) ./ (1 + exp (e)) (y * 0 + 1)]')';
+    gamma = diff ([(y * 0), (exp (e) ./ (1 + exp (e))), (y * 0 + 1)]')';
   endif
   
 endfunction
--- a/scripts/statistics/models/logistic_regression_derivatives.m
+++ b/scripts/statistics/models/logistic_regression_derivatives.m
@@ -26,12 +26,12 @@
   
   ## first derivative
   v = g .* (1 - g) ./ p; v1 = g1 .* (1 - g1) ./ p;
-  dlogp = [dmult (v, z) - dmult (v1, z1) dmult (v - v1, x)];
+  dlogp = [(dmult (v, z) - dmult (v1, z1)), (dmult (v - v1, x))];
   dl = sum (dlogp)';
 
   ## second derivative
   w = v .* (1 - 2 * g); w1 = v1 .* (1 - 2 * g1);
-  d2l = [z x]' * dmult (w, [z x]) - [z1 x]' * dmult (w1, [z1 x]) ...
+  d2l = [z, x]' * dmult (w, [z, x]) - [z1, x]' * dmult (w1, [z1, x]) ...
       - dlogp' * dlogp;
   
 endfunction
\ No newline at end of file
--- a/scripts/statistics/models/logistic_regression_likelihood.m
+++ b/scripts/statistics/models/logistic_regression_likelihood.m
@@ -24,7 +24,7 @@
 function [g, g1, p, dev] ...
       = logistic_regression_likelihood (y, x, beta, z, z1)
   
-  e = exp ([z x] * beta); e1 = exp ([z1 x] * beta);
+  e = exp ([z, x] * beta); e1 = exp ([z1, x] * beta);
   g = e ./ (1 + e); g1 = e1 ./ (1 + e1);
   g = max (y == max (y), g); g1 = min (y > min(y), g1);
   
--- a/scripts/statistics/tests/chisquare_test_independence.m
+++ b/scripts/statistics/tests/chisquare_test_independence.m
@@ -34,11 +34,11 @@
     usage ("chisquare_test_independence (X)");
   endif
   
-  [r s] = size (X);
-  df    = (r - 1) * (s - 1);
-  n     = sum (sum (X));
-  Y     = sum (X')' * sum (X) / n;
-  X     = (X - Y) .^2 ./ Y;
+  [r, s] = size (X);
+  df = (r - 1) * (s - 1);
+  n = sum (sum (X));
+  Y = sum (X')' * sum (X) / n;
+  X = (X - Y) .^2 ./ Y;
   chisq = sum (sum (X));
   pval  = 1 - chisquare_cdf (chisq, df);
   
--- a/scripts/statistics/tests/run_test.m
+++ b/scripts/statistics/tests/run_test.m
@@ -31,12 +31,12 @@
     usage ("run_test (x)");
   endif
 
-  A = [ 4529.4 9044.9 13568 18091 22615 27892
-      9044.4 18097 27139 36187 45234 55789
-      13568 27139 40721 54281 67852 83685
-      18091 36187 54281 72414 90470 111580
-      22615 45234 67852 90470 113262 139476
-      27892 55789 83685 111580 139476 172860 ];
+  A = [4529.4,  9044.9, 13568,  18091,  22615,  27892;
+       9044.4, 18097,   27139,  36187,  45234,  55789;
+      13568,   27139,   40721,  54281,  67852,  83685;
+      18091,   36187,   54281,  72414,  90470, 111580;
+      22615,   45234,   67852,  90470, 113262, 139476;
+      27892,   55789,   83685, 111580, 139476, 172860];
 
   b = [1/6; 5/24; 11/120; 19/720; 29/5040; 1/840];
   
--- a/scripts/strings/split.m
+++ b/scripts/strings/split.m
@@ -61,9 +61,9 @@
     range = (ind (k) + l_t) : ind (k + 1) - 1;
 
     if (k != limit)
-      cmd = sprintf ("%s\"%s\", ", cmd, s (range));
+      cmd = sprintf ("%s\"%s\", ", cmd, undo_string_escapes (s (range)));
     else
-      cmd = sprintf ("%s\"%s\"", cmd, s (range));
+      cmd = sprintf ("%s\"%s\"", cmd, undo_string_escapes (s (range)));
     endif
 
   endfor
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,35 @@
+Fri Mar 26 00:51:53 1999  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* Makefile.in (libraries): Use the libfoo.a(objects) method of
+	creating static libs.
+
+	* defaults.cc (symbols_of_defaults): Initialize LOADPATH to
+	Vload_path, not ":".
+
+Thu Mar 18 12:09:23 1999  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* data.cc (Fisnumeric): Fix typo.
+
+Thu Mar  4 02:17:04 1999  James Macnicol <jamesm@evans.ee.adfa.oz.au>
+
+	* file-io.cc (Ffread, Ffwrite): Add uint16 and uint32 data types
+	to doc string.
+
+Wed Mar  3 11:55:17 1999  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* lex.l (handle_string): Allow "" to pass through unchanged if
+	working on a gset command.
+
+Tue Mar  2 01:36:29 1999  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* variables.cc (Fexist): If a variable isn't defined, only go on
+	to look for a global by the same name if we are at the top level.
+
+Fri Jan 29 02:18:36 1999  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* version.h (OCTAVE_NAME_AND_VERSION): Say `GNU Octave', not just
+	Octave.
+
 Thu Jan 28 21:29:16 1999  John W. Eaton  <jwe@bevo.che.wisc.edu>
 
 	* toplev.cc (Fcomputer): Use CANONICAL_HOST_TYPE, not TARGET_HOST_TYPE.
--- a/src/Makefile.in
+++ b/src/Makefile.in
@@ -225,13 +225,13 @@
 
 ifeq ($(SHARED_LIBS), true)
   ifeq ($(STATIC_LIBS), true)
-    libraries: liboctinterp.$(LIBEXT) liboctinterp.$(SHLEXT)
+    libraries: liboctinterp.$(LIBEXT)($(OBJECTS)) liboctinterp.$(SHLEXT)
   else
     libraries: liboctinterp.$(SHLEXT)
   endif
 else
   ifeq ($(STATIC_LIBS), true)
-    libraries: liboctinterp.$(LIBEXT)
+    libraries: liboctinterp.$(LIBEXT)($(OBJECTS))
   else
     libraries:
   endif
--- a/src/data.cc
+++ b/src/data.cc
@@ -809,7 +809,7 @@
   if (args.length () == 1)
     retval = args(0).is_numeric_type () ? 1.0 : 0.0;
   else
-    print_usage ("is_list");
+    print_usage ("isnumeric");
 
   return retval;
 }
--- a/src/defaults.cc
+++ b/src/defaults.cc
@@ -421,7 +421,7 @@
   DEFVAR (EXEC_PATH, Vexec_path, 0, exec_path,
     "colon separated list of directories to search for programs to run");
 
-  DEFVAR (LOADPATH, ":", 0, loadpath,
+  DEFVAR (LOADPATH, Vload_path, 0, loadpath,
     "colon separated list of directories to search for scripts.\n\
 The default value is \":\", which means to search the default list\n\
 of directories.  The default list of directories may be found in\n\
--- a/src/file-io.cc
+++ b/src/file-io.cc
@@ -935,7 +935,9 @@
    float, float32, real*4         --  single precision float\n\
    double, float64, real*8        --  double precision float\n\
    int16, integer*2               --  two byte integer\n\
+   uint16                         --  two byte unsigned integer\n\
    int32, integer*4               --  four byte integer\n\
+   uint32                         --  four byte unsigned integer\n\
 \n\
   SKIP      : number of bytes to skip after each element is read\n\
               (default is 0)\n\
@@ -1067,7 +1069,9 @@
    float, float32, real*4         --  single precision float\n\
    double, float64, real*8        --  double precision float\n\
    int16, integer*2               --  two byte integer\n\
+   uint16                         --  two byte unsigned integer\n\
    int32, integer*4               --  four byte integer\n\
+   uint32                         --  four byte unsigned integer\n\
 \n\
   SKIP      : number of bytes to skip before each element is written\n\
               (the default is 0)\n\
--- a/src/lex.l
+++ b/src/lex.l
@@ -1601,8 +1601,7 @@
 
 		  if (text_style && lexer_flags.doing_set)
 		    {
-		      if (! s.empty ())
-			s = string (1, delim) + s + string (1, delim);
+		      s = string (1, delim) + s + string (1, delim);
 		    }
 		  else
 		    {
--- a/src/octave.cc
+++ b/src/octave.cc
@@ -274,7 +274,6 @@
   --echo-commands, -x     Echo commands as they are executed.\n\
   --exec-path PATH        Set path for executing subprograms.\n\
   --help, -h, -?          Print short help message and exit.\n\
-  --norc, -f              Don't read any initialization files.\n\
   --info-file FILE        Use top-level info file FILE.\n\
   --info-program PROGRAM  Use PROGRAM for reading info files.\n\
   --interactive, -i       Force interactive behavior.\n\
@@ -282,6 +281,7 @@
   --no-init-file          Don't read the ~/.octaverc or .octaverc files.\n\
   --no-line-editing       Don't use readline for command-line editing.\n\
   --no-site-file          Don't read the site-wide octaverc file.\n\
+  --norc, -f              Don't read any initialization files.\n\
   --path PATH, -p PATH    Set initial LOADPATH to PATH.\n\
   --silent, -q            Don't print message at startup.\n\
   --traditional           Set compatibility variables.\n\
--- a/src/variables.cc
+++ b/src/variables.cc
@@ -442,7 +442,8 @@
     }
 
   symbol_record *sr = curr_sym_tab->lookup (symbol_name);
-  if (! (sr && sr->is_defined ()))
+  if (! (sr && (sr->is_defined ()
+		|| (curr_sym_tab != top_level_sym_tab))))
     sr = global_sym_tab->lookup (symbol_name);
 
   retval = 0.0;
--- a/src/version.h
+++ b/src/version.h
@@ -29,7 +29,7 @@
   "Copyright (C) 1996, 1997, 1998 John W. Eaton."
 
 #define OCTAVE_NAME_AND_VERSION \
-  "Octave, version " OCTAVE_VERSION " (" CANONICAL_HOST_TYPE ")"
+  "GNU Octave, version " OCTAVE_VERSION " (" CANONICAL_HOST_TYPE ")"
 
 #define OCTAVE_NAME_VERSION_AND_COPYRIGHT \
   OCTAVE_NAME_AND_VERSION ".\n" OCTAVE_COPYRIGHT "\n\