? octave/Makeconf
? octave/Makefile
? octave/Makefrag.f77
? octave/autom4te.cache
? octave/config.h
? octave/config.h.in
? octave/config.log
? octave/config.status
? octave/configure
? octave/install-octave
? octave/mkoctfile
? octave/octMakefile
? octave/octave-bug
? octave/octave-config
? octave/pr-output.h
? octave/dlfcn/Makefile
? octave/doc/Makefile
? octave/doc/faq/Makefile
? octave/doc/faq/Octave-FAQ.aux
? octave/doc/faq/Octave-FAQ.cp
? octave/doc/faq/Octave-FAQ.cps
? octave/doc/faq/Octave-FAQ.dvi
? octave/doc/faq/Octave-FAQ.fn
? octave/doc/faq/Octave-FAQ.html
? octave/doc/faq/Octave-FAQ.info
? octave/doc/faq/Octave-FAQ.ky
? octave/doc/faq/Octave-FAQ.log
? octave/doc/faq/Octave-FAQ.pg
? octave/doc/faq/Octave-FAQ.ps
? octave/doc/faq/Octave-FAQ.toc
? octave/doc/faq/Octave-FAQ.tp
? octave/doc/faq/Octave-FAQ.vr
? octave/doc/faq/Octave-FAQ_1.html
? octave/doc/faq/Octave-FAQ_10.html
? octave/doc/faq/Octave-FAQ_11.html
? octave/doc/faq/Octave-FAQ_12.html
? octave/doc/faq/Octave-FAQ_2.html
? octave/doc/faq/Octave-FAQ_3.html
? octave/doc/faq/Octave-FAQ_4.html
? octave/doc/faq/Octave-FAQ_5.html
? octave/doc/faq/Octave-FAQ_6.html
? octave/doc/faq/Octave-FAQ_7.html
? octave/doc/faq/Octave-FAQ_8.html
? octave/doc/faq/Octave-FAQ_9.html
? octave/doc/faq/Octave-FAQ_abt.html
? octave/doc/faq/Octave-FAQ_fot.html
? octave/doc/faq/Octave-FAQ_ovr.html
? octave/doc/faq/Octave-FAQ_toc.html
? octave/doc/interpreter/Makefile
? octave/doc/interpreter/arith.texi
? octave/doc/interpreter/audio.texi
? octave/doc/interpreter/basics.texi
? octave/doc/interpreter/bugs.texi
? octave/doc/interpreter/container.texi
? octave/doc/interpreter/control.texi
? octave/doc/interpreter/cp-idx.texi
? octave/doc/interpreter/data.texi
? octave/doc/interpreter/debug.texi
? octave/doc/interpreter/diffeq.texi
? octave/doc/interpreter/emacs.texi
? octave/doc/interpreter/errors.texi
? octave/doc/interpreter/eval.texi
? octave/doc/interpreter/expr.texi
? octave/doc/interpreter/finance.texi
? octave/doc/interpreter/fn-idx.texi
? octave/doc/interpreter/func.texi
? octave/doc/interpreter/gpl.texi
? octave/doc/interpreter/grammar.texi
? octave/doc/interpreter/image.texi
? octave/doc/interpreter/install.texi
? octave/doc/interpreter/intro.texi
? octave/doc/interpreter/io.texi
? octave/doc/interpreter/linalg.texi
? octave/doc/interpreter/matrix.texi
? octave/doc/interpreter/munge-texi
? octave/doc/interpreter/nonlin.texi
? octave/doc/interpreter/numbers.texi
? octave/doc/interpreter/octave.aux
? octave/doc/interpreter/octave.cp
? octave/doc/interpreter/octave.cps
? octave/doc/interpreter/octave.dvi
? octave/doc/interpreter/octave.fn
? octave/doc/interpreter/octave.fns
? octave/doc/interpreter/octave.html
? octave/doc/interpreter/octave.info
? octave/doc/interpreter/octave.info-1
? octave/doc/interpreter/octave.info-10
? octave/doc/interpreter/octave.info-11
? octave/doc/interpreter/octave.info-12
? octave/doc/interpreter/octave.info-13
? octave/doc/interpreter/octave.info-14
? octave/doc/interpreter/octave.info-15
? octave/doc/interpreter/octave.info-16
? octave/doc/interpreter/octave.info-2
? octave/doc/interpreter/octave.info-3
? octave/doc/interpreter/octave.info-4
? octave/doc/interpreter/octave.info-5
? octave/doc/interpreter/octave.info-6
? octave/doc/interpreter/octave.info-7
? octave/doc/interpreter/octave.info-8
? octave/doc/interpreter/octave.info-9
? octave/doc/interpreter/octave.ky
? octave/doc/interpreter/octave.log
? octave/doc/interpreter/octave.op
? octave/doc/interpreter/octave.ops
? octave/doc/interpreter/octave.pg
? octave/doc/interpreter/octave.ps
? octave/doc/interpreter/octave.toc
? octave/doc/interpreter/octave.tp
? octave/doc/interpreter/octave.vr
? octave/doc/interpreter/octave.vrs
? octave/doc/interpreter/octave_1.html
? octave/doc/interpreter/octave_10.html
? octave/doc/interpreter/octave_11.html
? octave/doc/interpreter/octave_12.html
? octave/doc/interpreter/octave_13.html
? octave/doc/interpreter/octave_14.html
? octave/doc/interpreter/octave_15.html
? octave/doc/interpreter/octave_16.html
? octave/doc/interpreter/octave_17.html
? octave/doc/interpreter/octave_18.html
? octave/doc/interpreter/octave_19.html
? octave/doc/interpreter/octave_2.html
? octave/doc/interpreter/octave_20.html
? octave/doc/interpreter/octave_21.html
? octave/doc/interpreter/octave_22.html
? octave/doc/interpreter/octave_23.html
? octave/doc/interpreter/octave_24.html
? octave/doc/interpreter/octave_25.html
? octave/doc/interpreter/octave_26.html
? octave/doc/interpreter/octave_27.html
? octave/doc/interpreter/octave_28.html
? octave/doc/interpreter/octave_29.html
? octave/doc/interpreter/octave_3.html
? octave/doc/interpreter/octave_30.html
? octave/doc/interpreter/octave_31.html
? octave/doc/interpreter/octave_32.html
? octave/doc/interpreter/octave_33.html
? octave/doc/interpreter/octave_34.html
? octave/doc/interpreter/octave_35.html
? octave/doc/interpreter/octave_36.html
? octave/doc/interpreter/octave_37.html
? octave/doc/interpreter/octave_38.html
? octave/doc/interpreter/octave_39.html
? octave/doc/interpreter/octave_4.html
? octave/doc/interpreter/octave_40.html
? octave/doc/interpreter/octave_41.html
? octave/doc/interpreter/octave_42.html
? octave/doc/interpreter/octave_43.html
? octave/doc/interpreter/octave_44.html
? octave/doc/interpreter/octave_45.html
? octave/doc/interpreter/octave_46.html
? octave/doc/interpreter/octave_47.html
? octave/doc/interpreter/octave_48.html
? octave/doc/interpreter/octave_49.html
? octave/doc/interpreter/octave_5.html
? octave/doc/interpreter/octave_50.html
? octave/doc/interpreter/octave_51.html
? octave/doc/interpreter/octave_52.html
? octave/doc/interpreter/octave_53.html
? octave/doc/interpreter/octave_54.html
? octave/doc/interpreter/octave_6.html
? octave/doc/interpreter/octave_7.html
? octave/doc/interpreter/octave_8.html
? octave/doc/interpreter/octave_9.html
? octave/doc/interpreter/octave_abt.html
? octave/doc/interpreter/octave_fot.html
? octave/doc/interpreter/octave_ovr.html
? octave/doc/interpreter/octave_toc.html
? octave/doc/interpreter/op-idx.texi
? octave/doc/interpreter/optim.texi
? octave/doc/interpreter/plot.texi
? octave/doc/interpreter/poly.texi
? octave/doc/interpreter/preface.texi
? octave/doc/interpreter/quad.texi
? octave/doc/interpreter/quaternion.texi
? octave/doc/interpreter/set.texi
? octave/doc/interpreter/signal.texi
? octave/doc/interpreter/stats.texi
? octave/doc/interpreter/stmt.texi
? octave/doc/interpreter/stream.texi
? octave/doc/interpreter/strings.texi
? octave/doc/interpreter/struct.texi
? octave/doc/interpreter/system.texi
? octave/doc/interpreter/tips.texi
? octave/doc/interpreter/var.texi
? octave/doc/interpreter/vr-idx.texi
? octave/doc/liboctave/Makefile
? octave/doc/liboctave/liboctave.aux
? octave/doc/liboctave/liboctave.cp
? octave/doc/liboctave/liboctave.cps
? octave/doc/liboctave/liboctave.dvi
? octave/doc/liboctave/liboctave.fn
? octave/doc/liboctave/liboctave.fns
? octave/doc/liboctave/liboctave.html
? octave/doc/liboctave/liboctave.info
? octave/doc/liboctave/liboctave.info-1
? octave/doc/liboctave/liboctave.info-2
? octave/doc/liboctave/liboctave.info-3
? octave/doc/liboctave/liboctave.ky
? octave/doc/liboctave/liboctave.log
? octave/doc/liboctave/liboctave.op
? octave/doc/liboctave/liboctave.pg
? octave/doc/liboctave/liboctave.ps
? octave/doc/liboctave/liboctave.toc
? octave/doc/liboctave/liboctave.tp
? octave/doc/liboctave/liboctave.vr
? octave/doc/liboctave/liboctave_1.html
? octave/doc/liboctave/liboctave_10.html
? octave/doc/liboctave/liboctave_11.html
? octave/doc/liboctave/liboctave_12.html
? octave/doc/liboctave/liboctave_13.html
? octave/doc/liboctave/liboctave_14.html
? octave/doc/liboctave/liboctave_15.html
? octave/doc/liboctave/liboctave_16.html
? octave/doc/liboctave/liboctave_17.html
? octave/doc/liboctave/liboctave_18.html
? octave/doc/liboctave/liboctave_19.html
? octave/doc/liboctave/liboctave_2.html
? octave/doc/liboctave/liboctave_20.html
? octave/doc/liboctave/liboctave_21.html
? octave/doc/liboctave/liboctave_22.html
? octave/doc/liboctave/liboctave_23.html
? octave/doc/liboctave/liboctave_3.html
? octave/doc/liboctave/liboctave_4.html
? octave/doc/liboctave/liboctave_5.html
? octave/doc/liboctave/liboctave_6.html
? octave/doc/liboctave/liboctave_7.html
? octave/doc/liboctave/liboctave_8.html
? octave/doc/liboctave/liboctave_9.html
? octave/doc/liboctave/liboctave_abt.html
? octave/doc/liboctave/liboctave_ovr.html
? octave/doc/liboctave/liboctave_toc.html
? octave/doc/refcard/Makefile
? octave/doc/refcard/refcard-a4.dvi
? octave/doc/refcard/refcard-a4.log
? octave/doc/refcard/refcard-a4.pdf
? octave/doc/refcard/refcard-a4.ps
? octave/doc/refcard/refcard-legal.dvi
? octave/doc/refcard/refcard-legal.log
? octave/doc/refcard/refcard-legal.pdf
? octave/doc/refcard/refcard-legal.ps
? octave/doc/refcard/refcard-letter.dvi
? octave/doc/refcard/refcard-letter.log
? octave/doc/refcard/refcard-letter.pdf
? octave/doc/refcard/refcard-letter.ps
? octave/emacs/Makefile
? octave/examples/Makefile
? octave/glob/Makefile
? octave/glob/autom4te.cache
? octave/glob/config.h
? octave/glob/config.h.in
? octave/glob/config.log
? octave/glob/config.status
? octave/glob/configure
? octave/libcruft/Makefile
? octave/libcruft/Makerules
? octave/libcruft/amos/Makefile
? octave/libcruft/amos/pic
? octave/libcruft/blas/Makefile
? octave/libcruft/blas/pic
? octave/libcruft/blas-xtra/Makefile
? octave/libcruft/blas-xtra/pic
? octave/libcruft/daspk/Makefile
? octave/libcruft/daspk/pic
? octave/libcruft/dasrt/Makefile
? octave/libcruft/dasrt/pic
? octave/libcruft/dassl/Makefile
? octave/libcruft/dassl/pic
? octave/libcruft/fftpack/Makefile
? octave/libcruft/fftpack/pic
? octave/libcruft/lapack/Makefile
? octave/libcruft/lapack/pic
? octave/libcruft/lapack-xtra/Makefile
? octave/libcruft/lapack-xtra/pic
? octave/libcruft/minpack/Makefile
? octave/libcruft/minpack/pic
? octave/libcruft/misc/Makefile
? octave/libcruft/misc/cquit.d
? octave/libcruft/misc/f77-extern.d
? octave/libcruft/misc/f77-fcn.d
? octave/libcruft/misc/lo-error.d
? octave/libcruft/misc/machar.d
? octave/libcruft/misc/pic
? octave/libcruft/misc/quit.d
? octave/libcruft/odepack/Makefile
? octave/libcruft/odepack/pic
? octave/libcruft/odessa/Makefile
? octave/libcruft/odessa/pic
? octave/libcruft/ordered-qz/Makefile
? octave/libcruft/ordered-qz/pic
? octave/libcruft/quadpack/Makefile
? octave/libcruft/quadpack/pic
? octave/libcruft/ranlib/Makefile
? octave/libcruft/ranlib/pic
? octave/libcruft/slatec-err/Makefile
? octave/libcruft/slatec-err/pic
? octave/libcruft/slatec-fn/Makefile
? octave/libcruft/slatec-fn/pic
? octave/libcruft/villad/Makefile
? octave/libcruft/villad/pic
? octave/liboctave/Array-C.d
? octave/liboctave/Array-b.d
? octave/liboctave/Array-ch.d
? octave/liboctave/Array-d.d
? octave/liboctave/Array-flags.d
? octave/liboctave/Array-i.d
? octave/liboctave/Array-idx-vec.d
? octave/liboctave/Array-s.d
? octave/liboctave/Array-so.d
? octave/liboctave/Array-str.d
? octave/liboctave/Array-util.d
? octave/liboctave/Array.d
? octave/liboctave/ArrayN.d
? octave/liboctave/Bounds.d
? octave/liboctave/CColVector.d
? octave/liboctave/CDiagMatrix.d
? octave/liboctave/CMatrix.d
? octave/liboctave/CNDArray.d
? octave/liboctave/CRowVector.d
? octave/liboctave/CmplxAEPBAL.d
? octave/liboctave/CmplxCHOL.d
? octave/liboctave/CmplxDET.d
? octave/liboctave/CmplxHESS.d
? octave/liboctave/CmplxLU.d
? octave/liboctave/CmplxQR.d
? octave/liboctave/CmplxQRP.d
? octave/liboctave/CmplxSCHUR.d
? octave/liboctave/CmplxSVD.d
? octave/liboctave/CollocWt.d
? octave/liboctave/DASPK-opts.h
? octave/liboctave/DASPK.d
? octave/liboctave/DASRT-opts.h
? octave/liboctave/DASRT.d
? octave/liboctave/DASSL-opts.h
? octave/liboctave/DASSL.d
? octave/liboctave/DiagArray2.d
? octave/liboctave/EIG.d
? octave/liboctave/FEGrid.d
? octave/liboctave/LPsolve.d
? octave/liboctave/LSODE-opts.h
? octave/liboctave/LSODE.d
? octave/liboctave/LinConst.d
? octave/liboctave/MArray-C.d
? octave/liboctave/MArray-ch.d
? octave/liboctave/MArray-d.d
? octave/liboctave/MArray-i.d
? octave/liboctave/MArray-s.d
? octave/liboctave/MArray.d
? octave/liboctave/MArray2.d
? octave/liboctave/MArrayN.d
? octave/liboctave/MDiagArray2.d
? octave/liboctave/Makefile
? octave/liboctave/NLEqn-opts.h
? octave/liboctave/NLEqn.d
? octave/liboctave/ODES.d
? octave/liboctave/ODESSA-opts.h
? octave/liboctave/ODESSA.d
? octave/liboctave/Quad-opts.h
? octave/liboctave/Quad.d
? octave/liboctave/Range.d
? octave/liboctave/base-lu.d
? octave/liboctave/boolMatrix.d
? octave/liboctave/boolNDArray.d
? octave/liboctave/chMatrix.d
? octave/liboctave/chNDArray.d
? octave/liboctave/cmd-edit.d
? octave/liboctave/cmd-hist.d
? octave/liboctave/dColVector.d
? octave/liboctave/dDiagMatrix.d
? octave/liboctave/dMatrix.d
? octave/liboctave/dNDArray.d
? octave/liboctave/dRowVector.d
? octave/liboctave/data-conv.d
? octave/liboctave/dbleAEPBAL.d
? octave/liboctave/dbleCHOL.d
? octave/liboctave/dbleDET.d
? octave/liboctave/dbleHESS.d
? octave/liboctave/dbleLU.d
? octave/liboctave/dbleQR.d
? octave/liboctave/dbleQRP.d
? octave/liboctave/dbleSCHUR.d
? octave/liboctave/dbleSVD.d
? octave/liboctave/dir-ops.d
? octave/liboctave/f2c-main.d
? octave/liboctave/file-ops.d
? octave/liboctave/file-stat.d
? octave/liboctave/filemode.d
? octave/liboctave/getopt.d
? octave/liboctave/getopt1.d
? octave/liboctave/glob-match.d
? octave/liboctave/idx-vector.d
? octave/liboctave/kpse-xfns.d
? octave/liboctave/lo-cieee.d
? octave/liboctave/lo-cutils.d
? octave/liboctave/lo-ieee.d
? octave/liboctave/lo-mappers.d
? octave/liboctave/lo-specfun.d
? octave/liboctave/lo-sysdep.d
? octave/liboctave/lo-utils.d
? octave/liboctave/mach-info.d
? octave/liboctave/mkdir.d
? octave/liboctave/mx-cdm-cm.cc
? octave/liboctave/mx-cdm-cm.d
? octave/liboctave/mx-cdm-cm.h
? octave/liboctave/mx-cdm-cs.cc
? octave/liboctave/mx-cdm-cs.d
? octave/liboctave/mx-cdm-cs.h
? octave/liboctave/mx-cdm-dm.cc
? octave/liboctave/mx-cdm-dm.d
? octave/liboctave/mx-cdm-dm.h
? octave/liboctave/mx-cdm-m.cc
? octave/liboctave/mx-cdm-m.d
? octave/liboctave/mx-cdm-m.h
? octave/liboctave/mx-cdm-s.cc
? octave/liboctave/mx-cdm-s.d
? octave/liboctave/mx-cdm-s.h
? octave/liboctave/mx-cm-cdm.cc
? octave/liboctave/mx-cm-cdm.d
? octave/liboctave/mx-cm-cdm.h
? octave/liboctave/mx-cm-dm.cc
? octave/liboctave/mx-cm-dm.d
? octave/liboctave/mx-cm-dm.h
? octave/liboctave/mx-cm-m.cc
? octave/liboctave/mx-cm-m.d
? octave/liboctave/mx-cm-m.h
? octave/liboctave/mx-cm-s.cc
? octave/liboctave/mx-cm-s.d
? octave/liboctave/mx-cm-s.h
? octave/liboctave/mx-cnda-nda.cc
? octave/liboctave/mx-cnda-nda.d
? octave/liboctave/mx-cnda-nda.h
? octave/liboctave/mx-cnda-s.cc
? octave/liboctave/mx-cnda-s.d
? octave/liboctave/mx-cnda-s.h
? octave/liboctave/mx-cs-cdm.cc
? octave/liboctave/mx-cs-cdm.d
? octave/liboctave/mx-cs-cdm.h
? octave/liboctave/mx-cs-dm.cc
? octave/liboctave/mx-cs-dm.d
? octave/liboctave/mx-cs-dm.h
? octave/liboctave/mx-cs-m.cc
? octave/liboctave/mx-cs-m.d
? octave/liboctave/mx-cs-m.h
? octave/liboctave/mx-cs-nda.cc
? octave/liboctave/mx-cs-nda.d
? octave/liboctave/mx-cs-nda.h
? octave/liboctave/mx-dm-cdm.cc
? octave/liboctave/mx-dm-cdm.d
? octave/liboctave/mx-dm-cdm.h
? octave/liboctave/mx-dm-cm.cc
? octave/liboctave/mx-dm-cm.d
? octave/liboctave/mx-dm-cm.h
? octave/liboctave/mx-dm-cs.cc
? octave/liboctave/mx-dm-cs.d
? octave/liboctave/mx-dm-cs.h
? octave/liboctave/mx-dm-m.cc
? octave/liboctave/mx-dm-m.d
? octave/liboctave/mx-dm-m.h
? octave/liboctave/mx-dm-s.cc
? octave/liboctave/mx-dm-s.d
? octave/liboctave/mx-dm-s.h
? octave/liboctave/mx-m-cdm.cc
? octave/liboctave/mx-m-cdm.d
? octave/liboctave/mx-m-cdm.h
? octave/liboctave/mx-m-cm.cc
? octave/liboctave/mx-m-cm.d
? octave/liboctave/mx-m-cm.h
? octave/liboctave/mx-m-cs.cc
? octave/liboctave/mx-m-cs.d
? octave/liboctave/mx-m-cs.h
? octave/liboctave/mx-m-dm.cc
? octave/liboctave/mx-m-dm.d
? octave/liboctave/mx-m-dm.h
? octave/liboctave/mx-nda-cnda.cc
? octave/liboctave/mx-nda-cnda.d
? octave/liboctave/mx-nda-cnda.h
? octave/liboctave/mx-nda-cs.cc
? octave/liboctave/mx-nda-cs.d
? octave/liboctave/mx-nda-cs.h
? octave/liboctave/mx-ops.h
? octave/liboctave/mx-s-cdm.cc
? octave/liboctave/mx-s-cdm.d
? octave/liboctave/mx-s-cdm.h
? octave/liboctave/mx-s-cm.cc
? octave/liboctave/mx-s-cm.d
? octave/liboctave/mx-s-cm.h
? octave/liboctave/mx-s-cnda.cc
? octave/liboctave/mx-s-cnda.d
? octave/liboctave/mx-s-cnda.h
? octave/liboctave/mx-s-dm.cc
? octave/liboctave/mx-s-dm.d
? octave/liboctave/mx-s-dm.h
? octave/liboctave/oct-alloc.d
? octave/liboctave/oct-env.d
? octave/liboctave/oct-fftw.d
? octave/liboctave/oct-getopt.d
? octave/liboctave/oct-group.d
? octave/liboctave/oct-passwd.d
? octave/liboctave/oct-rand.d
? octave/liboctave/oct-rl-edit.d
? octave/liboctave/oct-rl-hist.d
? octave/liboctave/oct-shlib.d
? octave/liboctave/oct-syscalls.d
? octave/liboctave/oct-time.d
? octave/liboctave/pathsearch.d
? octave/liboctave/prog-args.d
? octave/liboctave/rename.d
? octave/liboctave/rmdir.d
? octave/liboctave/so-array.d
? octave/liboctave/stamp-prereq
? octave/liboctave/str-vec.d
? octave/liboctave/strftime.d
? octave/liboctave/strptime.d
? octave/liboctave/tempnam.d
? octave/liboctave/tempname.d
? octave/liboctave/vx-ccv-cv.cc
? octave/liboctave/vx-ccv-cv.d
? octave/liboctave/vx-ccv-cv.h
? octave/liboctave/vx-ccv-s.cc
? octave/liboctave/vx-ccv-s.d
? octave/liboctave/vx-ccv-s.h
? octave/liboctave/vx-crv-rv.cc
? octave/liboctave/vx-crv-rv.d
? octave/liboctave/vx-crv-rv.h
? octave/liboctave/vx-crv-s.cc
? octave/liboctave/vx-crv-s.d
? octave/liboctave/vx-crv-s.h
? octave/liboctave/vx-cs-cv.cc
? octave/liboctave/vx-cs-cv.d
? octave/liboctave/vx-cs-cv.h
? octave/liboctave/vx-cs-rv.cc
? octave/liboctave/vx-cs-rv.d
? octave/liboctave/vx-cs-rv.h
? octave/liboctave/vx-cv-ccv.cc
? octave/liboctave/vx-cv-ccv.d
? octave/liboctave/vx-cv-ccv.h
? octave/liboctave/vx-cv-cs.cc
? octave/liboctave/vx-cv-cs.d
? octave/liboctave/vx-cv-cs.h
? octave/liboctave/vx-rv-crv.cc
? octave/liboctave/vx-rv-crv.d
? octave/liboctave/vx-rv-crv.h
? octave/liboctave/vx-rv-cs.cc
? octave/liboctave/vx-rv-cs.d
? octave/liboctave/vx-rv-cs.h
? octave/liboctave/vx-s-ccv.cc
? octave/liboctave/vx-s-ccv.d
? octave/liboctave/vx-s-ccv.h
? octave/liboctave/vx-s-crv.cc
? octave/liboctave/vx-s-crv.d
? octave/liboctave/vx-s-crv.h
? octave/scripts/DOCSTRINGS
? octave/scripts/Makefile
? octave/scripts/autom4te.cache
? octave/scripts/config.log
? octave/scripts/config.status
? octave/scripts/configure
? octave/scripts/gethelp
? octave/scripts/audio/Makefile
? octave/scripts/control/Makefile
? octave/scripts/control/base/Makefile
? octave/scripts/control/hinf/Makefile
? octave/scripts/control/obsolete/Makefile
? octave/scripts/control/system/Makefile
? octave/scripts/control/util/Makefile
? octave/scripts/deprecated/Makefile
? octave/scripts/elfun/Makefile
? octave/scripts/finance/Makefile
? octave/scripts/general/Makefile
? octave/scripts/image/Makefile
? octave/scripts/io/Makefile
? octave/scripts/linear-algebra/Makefile
? octave/scripts/miscellaneous/Makefile
? octave/scripts/plot/Makefile
? octave/scripts/polynomial/Makefile
? octave/scripts/quaternion/Makefile
? octave/scripts/set/Makefile
? octave/scripts/signal/Makefile
? octave/scripts/specfun/Makefile
? octave/scripts/special-matrix/Makefile
? octave/scripts/startup/Makefile
? octave/scripts/statistics/Makefile
? octave/scripts/statistics/base/Makefile
? octave/scripts/statistics/distributions/Makefile
? octave/scripts/statistics/models/Makefile
? octave/scripts/statistics/tests/Makefile
? octave/scripts/strings/Makefile
? octave/scripts/time/Makefile
? octave/src/Array-oc.d
? octave/src/Array-os.d
? octave/src/Array-sym.d
? octave/src/Array-tc.d
? octave/src/Cell.d
? octave/src/DASPK-opts.cc
? octave/src/DASRT-opts.cc
? octave/src/DASSL-opts.cc
? octave/src/DOCSTRINGS
? octave/src/LSODE-opts.cc
? octave/src/Makefile
? octave/src/NLEqn-opts.cc
? octave/src/ODESSA-opts.cc
? octave/src/Quad-opts.cc
? octave/src/balance.d
? octave/src/balance.df
? octave/src/besselj.d
? octave/src/besselj.df
? octave/src/betainc.d
? octave/src/betainc.df
? octave/src/builtins.cc
? octave/src/builtins.d
? octave/src/c-file-ptr-stream.d
? octave/src/chol.d
? octave/src/chol.df
? octave/src/colloc.d
? octave/src/colloc.df
? octave/src/comment-list.d
? octave/src/cutils.d
? octave/src/daspk.d
? octave/src/daspk.df
? octave/src/dasrt.d
? octave/src/dasrt.df
? octave/src/dassl.d
? octave/src/dassl.df
? octave/src/data.d
? octave/src/data.df
? octave/src/debug.d
? octave/src/debug.df
? octave/src/def-files
? octave/src/defaults.d
? octave/src/defaults.df
? octave/src/defaults.h
? octave/src/defun.d
? octave/src/defun.df
? octave/src/det.d
? octave/src/det.df
? octave/src/dirfns.d
? octave/src/dirfns.df
? octave/src/doc-files
? octave/src/dynamic-ld.d
? octave/src/dynamic-ld.df
? octave/src/eig.d
? octave/src/eig.df
? octave/src/error.d
? octave/src/error.df
? octave/src/expm.d
? octave/src/expm.df
? octave/src/fft.d
? octave/src/fft.df
? octave/src/fft2.d
? octave/src/fft2.df
? octave/src/file-io.d
? octave/src/file-io.df
? octave/src/filter.d
? octave/src/filter.df
? octave/src/find.d
? octave/src/find.df
? octave/src/fn-cache.d
? octave/src/fsolve.d
? octave/src/fsolve.df
? octave/src/gammainc.d
? octave/src/gammainc.df
? octave/src/gendoc
? octave/src/gendoc.cc
? octave/src/getgrent.d
? octave/src/getgrent.df
? octave/src/getpwent.d
? octave/src/getpwent.df
? octave/src/getrusage.d
? octave/src/getrusage.df
? octave/src/givens.d
? octave/src/givens.df
? octave/src/gripes.d
? octave/src/help.d
? octave/src/help.df
? octave/src/hess.d
? octave/src/hess.df
? octave/src/ifft.d
? octave/src/ifft.df
? octave/src/ifft2.d
? octave/src/ifft2.df
? octave/src/input.d
? octave/src/input.df
? octave/src/inv.d
? octave/src/inv.df
? octave/src/kron.d
? octave/src/kron.df
? octave/src/lex.cc
? octave/src/lex.d
? octave/src/lex.df
? octave/src/load-save.d
? octave/src/load-save.df
? octave/src/lpsolve.d
? octave/src/lpsolve.df
? octave/src/ls-hdf5.d
? octave/src/ls-mat-ascii.d
? octave/src/ls-mat4.d
? octave/src/ls-mat5.d
? octave/src/ls-oct-ascii.d
? octave/src/ls-oct-ascii.df
? octave/src/ls-oct-binary.d
? octave/src/ls-utils.d
? octave/src/lsode.d
? octave/src/lsode.df
? octave/src/lu.d
? octave/src/lu.df
? octave/src/main.d
? octave/src/mappers.d
? octave/src/mappers.df
? octave/src/matherr.d
? octave/src/minmax.d
? octave/src/minmax.df
? octave/src/oct-conf.h
? octave/src/oct-fstrm.d
? octave/src/oct-gperf.h
? octave/src/oct-hist.d
? octave/src/oct-hist.df
? octave/src/oct-iostrm.d
? octave/src/oct-lvalue.d
? octave/src/oct-map.d
? octave/src/oct-obj.d
? octave/src/oct-prcstrm.d
? octave/src/oct-procbuf.d
? octave/src/oct-procbuf.df
? octave/src/oct-stdstrm.d
? octave/src/oct-stream.d
? octave/src/oct-strstrm.d
? octave/src/octave
? octave/src/octave.d
? octave/src/odessa.d
? octave/src/odessa.df
? octave/src/op-b-b.d
? octave/src/op-b-bm.d
? octave/src/op-bm-b.d
? octave/src/op-bm-bm.d
? octave/src/op-cell.d
? octave/src/op-chm.d
? octave/src/op-cm-cm.d
? octave/src/op-cm-cs.d
? octave/src/op-cm-m.d
? octave/src/op-cm-s.d
? octave/src/op-cs-cm.d
? octave/src/op-cs-cs.d
? octave/src/op-cs-m.d
? octave/src/op-cs-s.d
? octave/src/op-fcn-handle.d
? octave/src/op-fil-b.d
? octave/src/op-fil-bm.d
? octave/src/op-fil-cm.d
? octave/src/op-fil-cs.d
? octave/src/op-fil-lis.d
? octave/src/op-fil-m.d
? octave/src/op-fil-rec.d
? octave/src/op-fil-s.d
? octave/src/op-fil-str.d
? octave/src/op-list.d
? octave/src/op-m-cm.d
? octave/src/op-m-cs.d
? octave/src/op-m-m.d
? octave/src/op-m-s.d
? octave/src/op-range.d
? octave/src/op-s-cm.d
? octave/src/op-s-cs.d
? octave/src/op-s-m.d
? octave/src/op-s-s.d
? octave/src/op-str-m.d
? octave/src/op-str-s.d
? octave/src/op-str-str.d
? octave/src/op-streamoff.d
? octave/src/ops.cc
? octave/src/ops.d
? octave/src/ov-base-mat.d
? octave/src/ov-base-scalar.d
? octave/src/ov-base.d
? octave/src/ov-bool-mat.d
? octave/src/ov-bool.d
? octave/src/ov-builtin.d
? octave/src/ov-cell.d
? octave/src/ov-cell.df
? octave/src/ov-ch-mat.d
? octave/src/ov-colon.d
? octave/src/ov-complex.d
? octave/src/ov-cs-list.d
? octave/src/ov-cx-mat.d
? octave/src/ov-dld-fcn.d
? octave/src/ov-fcn-handle.d
? octave/src/ov-fcn-handle.df
? octave/src/ov-fcn.d
? octave/src/ov-file.d
? octave/src/ov-list.d
? octave/src/ov-list.df
? octave/src/ov-mapper.d
? octave/src/ov-range.d
? octave/src/ov-re-mat.d
? octave/src/ov-scalar.d
? octave/src/ov-str-mat.d
? octave/src/ov-streamoff.d
? octave/src/ov-streamoff.df
? octave/src/ov-struct.d
? octave/src/ov-struct.df
? octave/src/ov-typeinfo.d
? octave/src/ov-typeinfo.df
? octave/src/ov-usr-fcn.d
? octave/src/ov-usr-fcn.df
? octave/src/ov-va-args.d
? octave/src/ov.d
? octave/src/ov.df
? octave/src/pager.d
? octave/src/pager.df
? octave/src/parse.cc
? octave/src/parse.d
? octave/src/parse.df
? octave/src/pinv.d
? octave/src/pinv.df
? octave/src/pr-output.d
? octave/src/pr-output.df
? octave/src/procstream.d
? octave/src/pt-arg-list.d
? octave/src/pt-arg-list.df
? octave/src/pt-assign.d
? octave/src/pt-assign.df
? octave/src/pt-binop.d
? octave/src/pt-bp.d
? octave/src/pt-cell.d
? octave/src/pt-check.d
? octave/src/pt-cmd.d
? octave/src/pt-colon.d
? octave/src/pt-const.d
? octave/src/pt-decl.d
? octave/src/pt-except.d
? octave/src/pt-exp.d
? octave/src/pt-fcn-handle.d
? octave/src/pt-id.d
? octave/src/pt-idx.d
? octave/src/pt-jump.d
? octave/src/pt-loop.d
? octave/src/pt-mat.d
? octave/src/pt-mat.df
? octave/src/pt-misc.d
? octave/src/pt-misc.df
? octave/src/pt-plot.d
? octave/src/pt-plot.df
? octave/src/pt-pr-code.d
? octave/src/pt-select.d
? octave/src/pt-stmt.d
? octave/src/pt-unop.d
? octave/src/pt.d
? octave/src/qr.d
? octave/src/qr.df
? octave/src/quad.d
? octave/src/quad.df
? octave/src/qz.d
? octave/src/qz.df
? octave/src/rand.d
? octave/src/rand.df
? octave/src/schur.d
? octave/src/schur.df
? octave/src/sighandlers.d
? octave/src/sighandlers.df
? octave/src/siglist.d
? octave/src/sort.d
? octave/src/sort.df
? octave/src/sqrtm.d
? octave/src/sqrtm.df
? octave/src/stamp-liboctave-prereq
? octave/src/stamp-oct-links
? octave/src/stamp-prereq
? octave/src/strcasecmp.d
? octave/src/strfns.d
? octave/src/strfns.df
? octave/src/strncase.d
? octave/src/svd.d
? octave/src/svd.df
? octave/src/syl.d
? octave/src/syl.df
? octave/src/symtab.d
? octave/src/symtab.df
? octave/src/syscalls.d
? octave/src/syscalls.df
? octave/src/sysdep.d
? octave/src/sysdep.df
? octave/src/time.d
? octave/src/time.df
? octave/src/token.d
? octave/src/toplev.d
? octave/src/toplev.df
? octave/src/unwind-prot.d
? octave/src/utils.d
? octave/src/utils.df
? octave/src/var-files
? octave/src/variables.d
? octave/src/variables.df
? octave/src/xdiv.d
? octave/src/xpow.d
? octave/src/y.output
? octave/src/y.tab.h
? octave/test/Makefile
Index: octave/ChangeLog
===================================================================
RCS file: /cvs/octave/ChangeLog,v
retrieving revision 1.396
diff -c -r1.396 ChangeLog
*** octave/ChangeLog 2004/01/29 18:38:49 1.396
--- octave/ChangeLog 2004/02/03 23:07:49
***************
*** 1,3 ****
--- 1,44 ----
+ 2004-02-04 Øyvind Kristiansen
+ * ov-base-nd-array.cc
+ (octave_base_nd_array::print_name_tag): Modified (machine_readable)
+
+ * ov-base-scalar.cc, ov-base_scalar.h
+ (octave_base_scalar::print): Modified (machine_readable)
+ (octave_base_scalar::print_raw): Modified (machine_readable)
+ (octave_base_scalar::print_name_tag): Modified (machine_readable)
+
+ * ov-base.cc
+ New include: pr-output.h
+ (octave_base_value::print_name_tag): Modified (machine_readable)
+
+ * ov-file.cc, ov-file.h
+ New include: pr-output.h
+ (octave_file::print_name_tag): Modified (machine_readable)
+
+ * ov-list.cc
+ New include: pr-output.h
+ (octave_list::print_name_tag): Modified (machine_readable)
+
+ * ov-range.cc
+ (octave_range::print): Modified (machine_readable)
+ (octave_range::print_name_tag): Modified (machine_readable)
+
+ * ov-struct.cc, ov-struct.h
+ New include: pr-output.h
+ (octave_struct::print): Modified (machine_readable)
+ (octave_struct::print_machine_readable): New method
+ (octave_struct::print_name_tag): Modified (machine_readable)
+
+ * pr-output.cc
+ (pr_complex): Modified (machine_readable)
+ (print_empty_matrix): Modified (machine_readable)
+ (print_empty_nd_array): Modified (machine_readable)
+ (octave_print_internal): 11 functions modified (double, Matrix,
+ NDArray, Complex, ComplexMatrix, ComplexNDArray, Range,
+ boolNDArray, charMatrix, charNDArray, ArrayN). (machine_readable)
+ (machine_readable_print_bool_nd_array): New function (machine_readable)
+ (machine_readable, Vmachine_readable): New built-in variable
+
2004-01-29 John W. Eaton
* emacs/octave-mod.el: If line-end-position is not defined,
Index: octave/src/ov-base-mat.cc
===================================================================
RCS file: /cvs/octave/src/ov-base-mat.cc,v
retrieving revision 1.25
diff -c -r1.25 ov-base-mat.cc
*** octave/src/ov-base-mat.cc 2003/11/24 18:56:35 1.25
--- octave/src/ov-base-mat.cc 2004/02/03 23:07:50
***************
*** 215,221 ****
octave_base_matrix::print (std::ostream& os, bool pr_as_read_syntax) const
{
print_raw (os, pr_as_read_syntax);
! newline (os);
}
template
--- 215,222 ----
octave_base_matrix::print (std::ostream& os, bool pr_as_read_syntax) const
{
print_raw (os, pr_as_read_syntax);
! if (! Vmachine_readable)
! newline (os);
}
template
Index: octave/src/ov-base-nd-array.cc
===================================================================
RCS file: /cvs/octave/src/ov-base-nd-array.cc,v
retrieving revision 1.6
diff -c -r1.6 ov-base-nd-array.cc
*** octave/src/ov-base-nd-array.cc 2002/11/20 16:56:48 1.6
--- octave/src/ov-base-nd-array.cc 2004/02/03 23:07:50
***************
*** 129,135 ****
indent (os);
! if (print_as_scalar ())
os << name << " = ";
else
{
--- 129,137 ----
indent (os);
! if (Vmachine_readable)
! os << name << "=";
! else if (print_as_scalar ())
os << name << " = ";
else
{
Index: octave/src/ov-base-scalar.cc
===================================================================
RCS file: /cvs/octave/src/ov-base-scalar.cc,v
retrieving revision 1.10
diff -c -r1.10 ov-base-scalar.cc
*** octave/src/ov-base-scalar.cc 2002/12/30 23:05:27 1.10
--- octave/src/ov-base-scalar.cc 2004/02/03 23:07:51
***************
*** 115,121 ****
octave_base_scalar::print (std::ostream& os, bool pr_as_read_syntax) const
{
print_raw (os, pr_as_read_syntax);
! newline (os);
}
template
--- 115,122 ----
octave_base_scalar::print (std::ostream& os, bool pr_as_read_syntax) const
{
print_raw (os, pr_as_read_syntax);
! if (! Vmachine_readable)
! newline (os);
}
template
***************
*** 123,129 ****
octave_base_scalar::print_raw (std::ostream& os,
bool pr_as_read_syntax) const
{
! indent (os);
octave_print_internal (os, scalar, pr_as_read_syntax);
}
--- 124,131 ----
octave_base_scalar::print_raw (std::ostream& os,
bool pr_as_read_syntax) const
{
! if (! Vmachine_readable)
! indent (os);
octave_print_internal (os, scalar, pr_as_read_syntax);
}
***************
*** 132,140 ****
octave_base_scalar::print_name_tag (std::ostream& os,
const std::string& name) const
{
! indent (os);
! os << name << " = ";
! return false;
}
/*
--- 134,145 ----
octave_base_scalar::print_name_tag (std::ostream& os,
const std::string& name) const
{
! if (! Vmachine_readable) indent (os);
! os << name << (Vmachine_readable ? "=" : " = ");
! if (Vmachine_readable)
! return true;
! else
! return false;
}
/*
Index: octave/src/ov-base.cc
===================================================================
RCS file: /cvs/octave/src/ov-base.cc,v
retrieving revision 1.58
diff -c -r1.58 ov-base.cc
*** octave/src/ov-base.cc 2004/01/21 03:28:31 1.58
--- octave/src/ov-base.cc 2004/02/03 23:07:51
***************
*** 54,59 ****
--- 54,61 ----
#include "ov-fcn-handle.h"
#include "variables.h"
+ #include "pr-output.h"
+
DEFINE_OV_TYPEID_FUNCTIONS_AND_DATA (octave_base_value,
"", "unknown");
***************
*** 224,230 ****
indent (os);
! if (print_as_scalar ())
os << name << " = ";
else
{
--- 226,237 ----
indent (os);
! if (Vmachine_readable)
! {
! os << name << "=";
! retval = true;
! }
! else if (print_as_scalar ())
os << name << " = ";
else
{
Index: octave/src/ov-file.cc
===================================================================
RCS file: /cvs/octave/src/ov-file.cc,v
retrieving revision 1.14
diff -c -r1.14 ov-file.cc
*** octave/src/ov-file.cc 2003/11/22 12:25:44 1.14
--- octave/src/ov-file.cc 2004/02/03 23:07:51
***************
*** 37,42 ****
--- 37,44 ----
#include "ov-scalar.h"
#include "unwind-prot.h"
+ #include "pr-output.h"
+
DEFINE_OCTAVE_ALLOCATOR (octave_file);
DEFINE_OV_TYPEID_FUNCTIONS_AND_DATA (octave_file, "file", "file");
***************
*** 88,93 ****
--- 90,96 ----
indent (os);
os << "status = " << (stream.is_open () ? "open" : "closed");
+
newline (os);
decrement_indent_level ();
***************
*** 98,106 ****
bool
octave_file::print_name_tag (std::ostream& os, const std::string& name) const
{
! indent (os);
! os << name << " =";
! newline (os);
return false;
}
--- 101,115 ----
bool
octave_file::print_name_tag (std::ostream& os, const std::string& name) const
{
! if (Vmachine_readable)
! os << name << "=";
! else
! {
! indent (os);
! os << name << " =";
! newline (os);
! }
!
return false;
}
Index: octave/src/ov-list.cc
===================================================================
RCS file: /cvs/octave/src/ov-list.cc,v
retrieving revision 1.34
diff -c -r1.34 ov-list.cc
*** octave/src/ov-list.cc 2004/01/15 02:11:59 1.34
--- octave/src/ov-list.cc 2004/02/03 23:07:51
***************
*** 45,50 ****
--- 45,52 ----
#include "ls-hdf5.h"
#include "ls-utils.h"
+ #include "pr-output.h"
+
DEFINE_OCTAVE_ALLOCATOR (octave_list);
DEFINE_OV_TYPEID_FUNCTIONS_AND_DATA (octave_list, "list", "list");
***************
*** 301,313 ****
bool
octave_list::print_name_tag (std::ostream& os, const std::string& name) const
{
! indent (os);
! if (data.length () == 0)
! os << name << " = ";
else
{
! os << name << " =";
! newline (os);
}
return false;
}
--- 303,324 ----
bool
octave_list::print_name_tag (std::ostream& os, const std::string& name) const
{
! bool retval = false;
!
! if (Vmachine_readable)
! os << name << "=";
else
{
! indent (os);
!
! if (data.length () == 0)
! os << name << " = ";
! else
! {
! os << name << " =";
!
! newline (os);
! }
}
return false;
}
Index: octave/src/ov-range.cc
===================================================================
RCS file: /cvs/octave/src/ov-range.cc,v
retrieving revision 1.35
diff -c -r1.35 ov-range.cc
*** octave/src/ov-range.cc 2004/01/06 21:53:34 1.35
--- octave/src/ov-range.cc 2004/02/03 23:07:51
***************
*** 222,228 ****
octave_range::print (std::ostream& os, bool pr_as_read_syntax) const
{
print_raw (os, pr_as_read_syntax);
! newline (os);
}
void
--- 222,229 ----
octave_range::print (std::ostream& os, bool pr_as_read_syntax) const
{
print_raw (os, pr_as_read_syntax);
! if (! Vmachine_readable)
! newline (os);
}
void
***************
*** 241,247 ****
indent (os);
! if (n == 0 || n == 1)
os << name << " = ";
else
{
--- 242,253 ----
indent (os);
! if (Vmachine_readable)
! {
! os << name << "=";
! retval = true;
! }
! else if (n == 0 || n == 1)
os << name << " = ";
else
{
Index: octave/src/ov-struct.cc
===================================================================
RCS file: /cvs/octave/src/ov-struct.cc,v
retrieving revision 1.39
diff -c -r1.39 ov-struct.cc
*** octave/src/ov-struct.cc 2004/01/15 02:11:59 1.39
--- octave/src/ov-struct.cc 2004/02/03 23:07:51
***************
*** 46,51 ****
--- 46,53 ----
#include "ls-hdf5.h"
#include "ls-utils.h"
+ #include "pr-output.h"
+
DEFINE_OCTAVE_ALLOCATOR(octave_struct);
DEFINE_OV_TYPEID_FUNCTIONS_AND_DATA(octave_struct, "struct", "struct");
***************
*** 354,363 ****
void
octave_struct::print (std::ostream& os, bool) const
{
! print_raw (os);
}
void
octave_struct::print_raw (std::ostream& os, bool) const
{
// XXX FIXME XXX -- would be nice to print the output in some
--- 356,394 ----
void
octave_struct::print (std::ostream& os, bool) const
{
! if (Vmachine_readable)
! print_machine_readable (os);
! else
! print_raw (os);
}
void
+ octave_struct::print_machine_readable (std::ostream& os) const
+ {
+ // XXX FIXME XXX -- would be nice to print the output in some
+ // standard order. Maybe all substructures first, maybe
+ // alphabetize entries, etc.
+
+ os << MACHINE_READABLE_STRUCT_START_TAG;
+
+ int n = map.numel ();
+
+ for (Octave_map::const_iterator p = map.begin (); p != map.end (); p++)
+ {
+ std::string key = map.key (p);
+ Cell val = map.contents (p);
+
+ octave_value tmp = (n == 1) ? val(0) : octave_value (val, true);
+
+ // Not using print_with_name because we don't want additional newlines
+ tmp.print_name_tag (os, key);
+ tmp.print (os, false);
+ }
+
+ os << MACHINE_READABLE_STRUCT_END_TAG;
+ }
+
+ void
octave_struct::print_raw (std::ostream& os, bool) const
{
// XXX FIXME XXX -- would be nice to print the output in some
***************
*** 441,447 ****
indent (os);
! if (Vstruct_levels_to_print < 0)
os << name << " = ";
else
{
--- 472,483 ----
indent (os);
! if (Vmachine_readable)
! {
! os << name << "=";
! retval = true;
! }
! else if (Vstruct_levels_to_print < 0)
os << name << " = ";
else
{
Index: octave/src/ov-struct.h
===================================================================
RCS file: /cvs/octave/src/ov-struct.h,v
retrieving revision 1.27
diff -c -r1.27 ov-struct.h
*** octave/src/ov-struct.h 2004/01/06 21:53:34 1.27
--- octave/src/ov-struct.h 2004/02/03 23:07:52
***************
*** 103,108 ****
--- 103,110 ----
void print (std::ostream& os, bool pr_as_read_syntax = false) const;
+ void print_machine_readable (std::ostream& os) const;
+
void print_raw (std::ostream& os, bool pr_as_read_syntax = false) const;
bool print_name_tag (std::ostream& os, const std::string& name) const;
Index: octave/src/pr-output.cc
===================================================================
RCS file: /cvs/octave/src/pr-output.cc,v
retrieving revision 1.119
diff -c -r1.119 pr-output.cc
*** octave/src/pr-output.cc 2003/11/25 06:07:28 1.119
--- octave/src/pr-output.cc 2004/02/03 23:07:53
***************
*** 57,66 ****
--- 57,71 ----
#include "utils.h"
#include "variables.h"
+ #include "pr-output.h"
+
// TRUE means use a scaled fixed point format for `format long' and
// `format short'.
static bool Vfixed_point_format;
+ // If TRUE, make output easier to parse
+ bool Vmachine_readable = false;
+
// The maximum field width for a number printed by the default output
// routines.
static int Voutput_max_field_width;
***************
*** 1238,1248 ****
double r = tmp.real ();
! pr_float (os, r, r_fw);
! if (! bank_format)
{
double i = tmp.imag ();
if (! (hex_format || bit_format) && lo_ieee_signbit (i))
{
os << " - ";
--- 1243,1267 ----
double r = tmp.real ();
! if (Vmachine_readable)
! {
! os << "(";
!
! pr_float (os, r, 0);
! }
! else
! pr_float (os, r, r_fw);
! if (Vmachine_readable)
{
double i = tmp.imag ();
+ os << ",";
+ pr_float (os, i, 0);
+ os << ")";
+ }
+ else if (! bank_format)
+ {
+ double i = tmp.imag ();
if (! (hex_format || bit_format) && lo_ieee_signbit (i))
{
os << " - ";
***************
*** 1267,1273 ****
{
assert (nr == 0 || nc == 0);
! if (pr_as_read_syntax)
{
if (nr == 0 && nc == 0)
os << "[]";
--- 1286,1294 ----
{
assert (nr == 0 || nc == 0);
! if (Vmachine_readable)
! os << MACHINE_READABLE_EMPTY_TAG;
! else if (pr_as_read_syntax)
{
if (nr == 0 && nc == 0)
os << "[]";
***************
*** 1289,1294 ****
--- 1310,1317 ----
{
assert (dims.any_zero ());
+ if (Vmachine_readable)
+ os << MACHINE_READABLE_EMPTY_TAG;
if (pr_as_read_syntax)
os << "zeros (" << dims.str (',') << ")";
else
***************
*** 1357,1364 ****
octave_print_internal (std::ostream& os, double d,
bool /* pr_as_read_syntax */)
{
! if (plus_format)
{
pr_plus_format (os, d);
}
else
--- 1380,1403 ----
octave_print_internal (std::ostream& os, double d,
bool /* pr_as_read_syntax */)
{
! if (Vmachine_readable)
{
+ float_format fmt;
+ curr_real_fmt = &fmt;
+
+ curr_real_fmt->lowercase ();
+ curr_real_fmt->trailing_zeros (true);
+ curr_real_fmt->precision (current_output_precision ());
+ curr_real_fmt->width (0);
+ curr_real_fmt->scientific ();
+
+ pr_float (os, d);
+ os << MACHINE_READABLE_ELEMENT_END_TAG;
+
+ curr_real_fmt = 0;
+ }
+ else if (plus_format)
+ {
pr_plus_format (os, d);
}
else
***************
*** 1378,1384 ****
int nr = m.rows ();
int nc = m.columns ();
! if (nr == 0 || nc == 0)
print_empty_matrix (os, nr, nc, pr_as_read_syntax);
else if (plus_format && ! pr_as_read_syntax)
{
--- 1417,1425 ----
int nr = m.rows ();
int nc = m.columns ();
! if (Vmachine_readable)
! machine_readable_print_nd_array (os, m);
! else if (nr == 0 || nc == 0)
print_empty_matrix (os, nr, nc, pr_as_read_syntax);
else if (plus_format && ! pr_as_read_syntax)
{
***************
*** 1389,1398 ****
OCTAVE_QUIT;
pr_plus_format (os, m(i,j));
- }
! if (i < nr - 1)
! os << "\n";
}
}
else
--- 1430,1439 ----
OCTAVE_QUIT;
pr_plus_format (os, m(i,j));
! if (i < nr - 1)
! os << "\n";
! }
}
}
else
***************
*** 1505,1510 ****
--- 1546,1762 ----
}
}
+ void machine_readable_print_bool_nd_array (std::ostream& os,
+ const boolNDArray& nda)
+ {
+ // Print a multi-dimensional matrix in a machine-readable way.
+ // The matrix consists of boolean values
+ os << MACHINE_READABLE_MATRIX_START_TAG;
+
+ if (nda.is_empty ())
+ print_empty_nd_array (os, nda.dims (), false);
+ else
+ {
+ int ndims = nda.ndims ();
+ dim_vector dims = nda.dims ();
+ Array ra_idx (ndims, 0);
+ int m = nda.numel();
+ float_format fmt;
+
+ curr_real_fmt = &fmt;
+
+ // Special settings for machine_readable ...
+ curr_real_fmt->lowercase ();
+ curr_real_fmt->trailing_zeros (true);
+ curr_real_fmt->precision (current_output_precision ());
+ curr_real_fmt->width (0);
+ curr_real_fmt->fixed ();
+
+ for (int i = 0; i < m; i++)
+ {
+ OCTAVE_QUIT;
+
+ if (m > 1)
+ {
+ for (int k = 0; k < ndims; k++)
+ {
+ os << ra_idx(k) + 1;
+ if (k < ndims - 1)
+ os << ",";
+ else
+ os << MACHINE_READABLE_EQUIVALENT_TAG;
+ }
+ }
+
+ os << nda(ra_idx) << MACHINE_READABLE_ELEMENT_END_TAG;
+
+ if (i < m)
+ increment_index (ra_idx, dims, 0);
+ }
+
+ curr_real_fmt = 0;
+ }
+ os << MACHINE_READABLE_MATRIX_END_TAG;
+ }
+
+ void machine_readable_print_char_nd_array (std::ostream& os,
+ const charNDArray& nda)
+ {
+
+ // Print a multi-dimensional matrix in a machine-readable way.
+ // The matrix consists of characters
+ os << MACHINE_READABLE_MATRIX_START_TAG;
+
+ if (nda.is_empty ())
+ print_empty_nd_array (os, nda.dims (), false);
+ else
+ {
+ int ndims = nda.ndims ();
+ dim_vector dims = nda.dims ();
+ Array ra_idx (ndims, 0);
+ int m = nda.numel();
+
+ for (int i = 0; i < m; i++)
+ {
+ OCTAVE_QUIT;
+
+ if (m > 1)
+ {
+ for (int k = 0; k < ndims; k++)
+ {
+ os << ra_idx(k) + 1;
+ if (k < ndims - 1)
+ os << ",";
+ else
+ os << MACHINE_READABLE_EQUIVALENT_TAG;
+ }
+ }
+
+ os << "\"" << undo_string_escape (nda(ra_idx)) << "\"";
+ os << MACHINE_READABLE_ELEMENT_END_TAG;
+
+ if (i < m)
+ increment_index (ra_idx, dims, 0);
+ }
+ }
+ os << MACHINE_READABLE_MATRIX_END_TAG;
+ }
+
+ void machine_readable_print_complex_nd_array (std::ostream& os,
+ const ComplexNDArray& nda)
+ {
+ // Print a multi-dimensional matrix in a machine-readable way.
+ // The matrix consists of complex numbers
+ os << MACHINE_READABLE_MATRIX_START_TAG;
+
+ if (nda.is_empty ())
+ print_empty_nd_array (os, nda.dims (), false);
+ else
+ {
+ int ndims = nda.ndims ();
+ dim_vector dims = nda.dims ();
+ Array ra_idx (ndims, 0);
+ int m = nda.numel();
+ float_format fmt, ifmt;
+
+ curr_real_fmt = &fmt;
+ curr_imag_fmt = &ifmt;
+
+ // Special settings for machine_readable ...
+ curr_real_fmt->lowercase ();
+ curr_real_fmt->trailing_zeros (true);
+ curr_real_fmt->precision (current_output_precision ());
+ curr_real_fmt->width (0);
+ curr_real_fmt->scientific ();
+ curr_imag_fmt->lowercase ();
+ curr_imag_fmt->trailing_zeros (true);
+ curr_imag_fmt->precision (current_output_precision ());
+ curr_imag_fmt->width (0);
+ curr_imag_fmt->scientific ();
+
+ for (int i = 0; i < m; i++)
+ {
+ OCTAVE_QUIT;
+
+ if (m > 1)
+ {
+ for (int k = 0; k < ndims; k++)
+ {
+ os << ra_idx(k) + 1;
+ if (k < ndims - 1)
+ os << ",";
+ else
+ os << MACHINE_READABLE_EQUIVALENT_TAG;
+ }
+ }
+
+ pr_complex (os, nda(ra_idx), 0, 0, 1.0);
+ os << MACHINE_READABLE_ELEMENT_END_TAG;
+
+ if (i < m)
+ increment_index (ra_idx, dims, 0);
+ }
+
+ curr_real_fmt = 0;
+ curr_imag_fmt = 0;
+ }
+ os << MACHINE_READABLE_MATRIX_END_TAG;
+ }
+
+ void machine_readable_print_nd_array (std::ostream& os, const NDArray& nda)
+ {
+ // Print a multi-dimensional matrix in a machine-readable way.
+ // The matrix consists of real numbers
+
+ os << MACHINE_READABLE_MATRIX_START_TAG;
+
+ if (nda.is_empty ())
+ print_empty_nd_array (os, nda.dims (), false);
+ else
+ {
+ int ndims = nda.ndims ();
+ dim_vector dims = nda.dims ();
+ Array ra_idx (ndims, 0);
+ int m = nda.numel();
+ float_format fmt;
+
+ curr_real_fmt = &fmt;
+
+ // Special settings for machine_readable ...
+ curr_real_fmt->lowercase ();
+ curr_real_fmt->trailing_zeros (true);
+ curr_real_fmt->precision (current_output_precision ());
+ curr_real_fmt->width (0);
+ curr_real_fmt->scientific ();
+
+ for (int i = 0; i < m; i++)
+ {
+ OCTAVE_QUIT;
+
+ if (m > 1)
+ {
+ for (int k = 0; k < ndims; k++)
+ {
+ os << ra_idx(k) + 1;
+ if (k < ndims - 1)
+ os << ",";
+ else
+ os << MACHINE_READABLE_EQUIVALENT_TAG;
+ }
+ }
+
+ pr_float (os, nda(ra_idx), 0, 1.0);
+ os << MACHINE_READABLE_ELEMENT_END_TAG;
+
+ if (i < m)
+ increment_index (ra_idx, dims, 0);
+ }
+
+ curr_real_fmt = 0;
+ }
+ os << MACHINE_READABLE_MATRIX_END_TAG;
+ }
+
#define PRINT_ND_ARRAY(os, nda, NDA_T, ELT_T, MAT_T) \
do \
{ \
***************
*** 1584,1595 ****
{
case 1:
case 2:
! octave_print_internal (os, nda.matrix_value (),
! pr_as_read_syntax, extra_indent);
break;
default:
! PRINT_ND_ARRAY (os, nda, NDArray, double, Matrix);
break;
}
}
--- 1836,1853 ----
{
case 1:
case 2:
! if (Vmachine_readable)
! machine_readable_print_nd_array (os, nda);
! else
! octave_print_internal (os, nda.matrix_value (),
! pr_as_read_syntax, extra_indent);
break;
default:
! if (Vmachine_readable)
! machine_readable_print_nd_array (os, nda);
! else
! PRINT_ND_ARRAY (os, nda, NDArray, double, Matrix);
break;
}
}
***************
*** 1617,1624 ****
octave_print_internal (std::ostream& os, const Complex& c,
bool /* pr_as_read_syntax */)
{
! if (plus_format)
{
pr_plus_format (os, c);
}
else
--- 1875,1906 ----
octave_print_internal (std::ostream& os, const Complex& c,
bool /* pr_as_read_syntax */)
{
! if (Vmachine_readable)
{
+ float_format fmt, ifmt;
+
+ curr_real_fmt = &fmt;
+ curr_imag_fmt = &ifmt;
+
+ curr_real_fmt->lowercase ();
+ curr_real_fmt->trailing_zeros (true);
+ curr_real_fmt->precision (current_output_precision ());
+ curr_real_fmt->width (0);
+ curr_real_fmt->scientific ();
+
+ curr_imag_fmt->lowercase ();
+ curr_imag_fmt->trailing_zeros (true);
+ curr_imag_fmt->precision (current_output_precision ());
+ curr_imag_fmt->width (0);
+ curr_imag_fmt->scientific ();
+
+ pr_complex (os, c);
+
+ curr_real_fmt = 0;
+ curr_imag_fmt = 0;
+ }
+ else if (plus_format)
+ {
pr_plus_format (os, c);
}
else
***************
*** 1638,1644 ****
int nr = cm.rows ();
int nc = cm.columns ();
! if (nr == 0 || nc == 0)
print_empty_matrix (os, nr, nc, pr_as_read_syntax);
else if (plus_format && ! pr_as_read_syntax)
{
--- 1920,1928 ----
int nr = cm.rows ();
int nc = cm.columns ();
! if (Vmachine_readable)
! machine_readable_print_complex_nd_array (os, cm);
! else if (nr == 0 || nc == 0)
print_empty_matrix (os, nr, nc, pr_as_read_syntax);
else if (plus_format && ! pr_as_read_syntax)
{
***************
*** 1774,1785 ****
{
case 1:
case 2:
! octave_print_internal (os, nda.matrix_value (),
! pr_as_read_syntax, extra_indent);
break;
default:
! PRINT_ND_ARRAY (os, nda, ComplexNDArray, Complex, ComplexMatrix);
break;
}
}
--- 2058,2075 ----
{
case 1:
case 2:
! if (Vmachine_readable)
! machine_readable_print_complex_nd_array (os, nda);
! else
! octave_print_internal (os, nda.matrix_value (),
! pr_as_read_syntax, extra_indent);
break;
default:
! if (Vmachine_readable)
! machine_readable_print_complex_nd_array (os, nda);
! else
! PRINT_ND_ARRAY (os, nda, ComplexNDArray, Complex, ComplexMatrix);
break;
}
}
***************
*** 1792,1799 ****
double increment = r.inc ();
double limit = r.limit ();
int num_elem = r.nelem ();
! if (plus_format && ! pr_as_read_syntax)
{
for (int i = 0; i < num_elem; i++)
{
--- 2082,2119 ----
double increment = r.inc ();
double limit = r.limit ();
int num_elem = r.nelem ();
+
+ if (Vmachine_readable)
+ {
+ double val;
+ float_format fmt;
+
+ curr_real_fmt = &fmt;
+
+ // Special settings for machine_readable ...
+ curr_real_fmt->lowercase ();
+ curr_real_fmt->trailing_zeros (true);
+ curr_real_fmt->precision (current_output_precision ());
+ curr_real_fmt->width (0);
+ curr_real_fmt->scientific ();
+
+ os << MACHINE_READABLE_MATRIX_START_TAG;
+
+ for (int i = 0; i < num_elem; i++)
+ {
+ OCTAVE_QUIT;
+
+ val = base + i * increment;
+ os << "1," << i + 1 << MACHINE_READABLE_EQUIVALENT_TAG;
+ pr_float(os, val, 0);
+ os << MACHINE_READABLE_ELEMENT_END_TAG;
+ }
! os << MACHINE_READABLE_MATRIX_END_TAG;
!
! curr_real_fmt = 0;
! }
! else if (plus_format && ! pr_as_read_syntax)
{
for (int i = 0; i < num_elem; i++)
{
***************
*** 1906,1917 ****
{
case 1:
case 2:
! octave_print_internal (os, nda.matrix_value (),
! pr_as_read_syntax, extra_indent);
break;
default:
! PRINT_ND_ARRAY (os, nda, boolNDArray, bool, boolMatrix);
break;
}
}
--- 2226,2243 ----
{
case 1:
case 2:
! if (Vmachine_readable)
! machine_readable_print_bool_nd_array (os, nda);
! else
! octave_print_internal (os, nda.matrix_value (),
! pr_as_read_syntax, extra_indent);
break;
default:
! if (Vmachine_readable)
! machine_readable_print_bool_nd_array (os, nda);
! else
! PRINT_ND_ARRAY (os, nda, boolNDArray, bool, boolMatrix);
break;
}
}
***************
*** 1922,1948 ****
int /* extra_indent XXX FIXME XXX */,
bool pr_as_string)
{
! if (pr_as_string)
{
int nstr = chm.rows ();
! if (pr_as_read_syntax && nstr > 1)
os << "[ ";
! if (nstr != 0)
{
for (int i = 0; i < nstr; i++)
{
OCTAVE_QUIT;
std::string row = chm.row_as_string (i);
! if (pr_as_read_syntax)
{
! os << "\"" << undo_string_escapes (row) << "\"";
! if (i < nstr - 1)
! os << "; ";
}
else
{
--- 2248,2286 ----
int /* extra_indent XXX FIXME XXX */,
bool pr_as_string)
{
! if (pr_as_string || Vmachine_readable)
{
int nstr = chm.rows ();
! if (! Vmachine_readable && pr_as_read_syntax && nstr > 1)
os << "[ ";
! if (nstr != 0 || Vmachine_readable)
{
+ if (Vmachine_readable)
+ os << MACHINE_READABLE_MATRIX_START_TAG;
+
for (int i = 0; i < nstr; i++)
{
OCTAVE_QUIT;
std::string row = chm.row_as_string (i);
! if (pr_as_read_syntax || Vmachine_readable)
{
! if (Vmachine_readable)
! os << i << ",:" << MACHINE_READABLE_EQUIVALENT_TAG
! << "\"" << undo_string_escapes (row) << "\"";
! if (Vmachine_readable)
! {
! os << MACHINE_READABLE_ELEMENT_END_TAG;
! }
! else
! {
! if (i < nstr - 1)
! os << "; ";
! }
}
else
{
***************
*** 1952,1965 ****
os << "\n";
}
}
}
! if (pr_as_read_syntax && nstr > 1)
os << " ]";
}
else
{
! os << "sorry, printing char matrices not implemented yet\n";
}
}
--- 2290,2324 ----
os << "\n";
}
}
+ if (Vmachine_readable)
+ os << MACHINE_READABLE_MATRIX_END_TAG;
}
! if (! Vmachine_readable && pr_as_read_syntax && nstr > 1)
os << " ]";
}
else
{
! int nc = chm.columns ();
! int nr = chm.rows ();
!
! if (Vmachine_readable)
! {
! os << MACHINE_READABLE_MATRIX_START_TAG;
!
! for (int i = 0; i < nr; i++)
! {
! for (int j = 0; i < nc; i++)
! {
! os << i + 1 << "," << j + 1 << "='" << chm(i,j)
! << "'" << MACHINE_READABLE_ELEMENT_END_TAG;
! }
! }
!
! os << MACHINE_READABLE_MATRIX_END_TAG;
! }
! else
! os << "sorry, printing char matrices not implemented yet\n";
}
}
***************
*** 1972,1983 ****
{
case 1:
case 2:
! octave_print_internal (os, nda.matrix_value (),
! pr_as_read_syntax, extra_indent, pr_as_string);
break;
default:
! PRINT_ND_ARRAY (os, nda, charNDArray, char, charMatrix);
break;
}
}
--- 2331,2345 ----
{
case 1:
case 2:
! octave_print_internal (os, nda.matrix_value (),
! pr_as_read_syntax, extra_indent, pr_as_string);
break;
default:
! if (Vmachine_readable)
! machine_readable_print_char_nd_array (os, nda);
! else
! PRINT_ND_ARRAY (os, nda, charNDArray, char, charMatrix);
break;
}
}
***************
*** 1989,1995 ****
// XXX FIXME XXX -- this mostly duplicates the code in the
// PRINT_ND_ARRAY macro.
! if (nda.is_empty ())
print_empty_nd_array (os, nda.dims (), pr_as_read_syntax);
else if (nda.length () == 1)
{
--- 2351,2361 ----
// XXX FIXME XXX -- this mostly duplicates the code in the
// PRINT_ND_ARRAY macro.
! // XXX FIXME XXX -- not fixed with regards to the machine_readable option
!
! if (Vmachine_readable)
! os << "sorry, printing string-arrays with option machine_readable not implemented yet...";
! else if (nda.is_empty ())
print_empty_nd_array (os, nda.dims (), pr_as_read_syntax);
else if (nda.length () == 1)
{
***************
*** 2519,2524 ****
--- 2885,2898 ----
}
static int
+ machine_readable (void)
+ {
+ Vmachine_readable = check_preference ("machine_readable");
+
+ return 0;
+ }
+
+ static int
output_max_field_width (void)
{
double val;
***************
*** 2601,2606 ****
--- 2975,2997 ----
@code{fixed_point_format} to a nonzero value.\n\
\n\
The default value of @code{fixed_point_format} is 0.\n\
+ @end defvr");
+
+ DEFVAR (machine_readable, false, machine_readable,
+ "-*- texinfo -*-\n\
+ @defvr {Built-in Variable} machine_readable\n\
+ If the value of @code{machine_readable} is @code{FALSE}, the output is easy\n\
+ to read (for humans). Otherwise, the output is easier to interpret from\n\
+ another program (and harder to read for humans).\n\
+ \n\
+ The output from whos uses the following syntax:\n\
+ :\n\
+ ,,,,,;\n\
+ ...\n\
+ \n\
+ \n\
+ This variable overrides some other variables, like @code{who_traditional}\n\
+ and @code{who_print_dims}.\n\
@end defvr");
DEFVAR (output_max_field_width, 10.0, output_max_field_width,
Index: octave/src/pr-output.h
===================================================================
RCS file: /cvs/octave/src/pr-output.h,v
retrieving revision 1.28
diff -c -r1.28 pr-output.h
*** octave/src/pr-output.h 2003/11/24 21:24:37 1.28
--- octave/src/pr-output.h 2004/02/03 23:07:53
***************
*** 27,32 ****
--- 27,40 ----
#include "oct-cmplx.h"
+ #define MACHINE_READABLE_EMPTY_TAG ""
+ #define MACHINE_READABLE_ELEMENT_END_TAG ";"
+ #define MACHINE_READABLE_STRUCT_START_TAG "{"
+ #define MACHINE_READABLE_STRUCT_END_TAG "};"
+ #define MACHINE_READABLE_MATRIX_START_TAG "["
+ #define MACHINE_READABLE_MATRIX_END_TAG "];"
+ #define MACHINE_READABLE_EQUIVALENT_TAG ":"
+
template class ArrayN;
class ComplexMatrix;
class ComplexNDArray;
***************
*** 39,44 ****
--- 47,60 ----
class charNDArray;
class Cell;
+ void machine_readable_print_nd_array (std::ostream& os, const NDArray& nda);
+
+ void machine_readable_print_complex_nd_array (std::ostream& os, const ComplexNDArray& nda);
+
+ void machine_readable_print_char_nd_array (std::ostream& os, const charNDArray& nda);
+
+ void machine_readable_print_bool_nd_array (std::ostream& os, const boolNDArray& nda);
+
extern void
octave_print_internal (std::ostream& os, double d,
bool pr_as_read_syntax = false);
***************
*** 104,109 ****
--- 120,128 ----
bool pr_as_read_syntax = false,
int extra_indent = 0,
bool pr_as_string = false);
+
+ // If TRUE, make output easier to parse
+ extern bool Vmachine_readable;
#endif