# HG changeset patch # User jwe # Date 953286270 0 # Node ID b1ff6597576f31a51dca1575b97766be0640098f # Parent 1222153daafbc56b9b12bb8f912f661c4ed31d04 [project @ 2000-03-17 09:44:29 by jwe] diff -r 1222153daafb -r b1ff6597576f src/ChangeLog --- a/src/ChangeLog Fri Mar 17 02:31:58 2000 +0000 +++ b/src/ChangeLog Fri Mar 17 09:44:30 2000 +0000 @@ -1,3 +1,14 @@ +2000-03-17 John W. Eaton + + * c_file_ptr_stream.h, c_file_ptr_stream.cc: New files. + * oct-stdstrm.h, oct-stdstrm.cc, oct-prcstrm.cc: + Use c_file_ptr_buf, i_c_file_ptr_stream, and o_c_fie_ptr_stream + instead of stdiobuf, istdiostream, and ostdiostream. + + * pr-output.cc (set_real_format, set_real_matrix_format, + set_complex_format, set_complex_matrix_format, set_range_format): + Do the right thing again for int, NaN, and Inf values. + 2000-03-14 John W. Eaton * pr-output.cc (pr_plus_format): Rename from do_plus_format. diff -r 1222153daafb -r b1ff6597576f src/Makefile.in --- a/src/Makefile.in Fri Mar 17 02:31:58 2000 +0000 +++ b/src/Makefile.in Fri Mar 17 09:44:30 2000 +0000 @@ -78,9 +78,9 @@ pt-pr-code.h pt-select.h pt-stmt.h pt-unop.h pt-walk.h INCLUDES := BaseSLList.h Cell.h DLList.h Map.h Pix.h SLList.h \ - SLStack.h Stack.h defun-dld.h defun-int.h defun.h \ - dirfns.h dynamic-ld.h error.h file-io.h fn-cache.h \ - gripes.h help.h input.h lex.h load-save.h \ + SLStack.h Stack.h c_file_ptr_stream.h defun-dld.h \ + defun-int.h defun.h dirfns.h dynamic-ld.h error.h file-io.h \ + fn-cache.h gripes.h help.h input.h lex.h load-save.h \ oct-fstrm.h oct-hist.h oct-iostrm.h oct-map.h oct-obj.h \ oct-prcstrm.h oct-procbuf.h oct-stdstrm.h oct-stream.h \ oct-strstrm.h oct-lvalue.h oct.h ops.h pager.h parse.h \ @@ -120,16 +120,16 @@ pt-select.cc pt-stmt.cc pt-unop.cc DIST_SRC := BaseSLList.cc Cell.cc DLList.cc Map.cc SLList.cc \ - SLStack.cc Stack.cc cutils.c data.cc defaults.cc defun.cc \ - dirfns.cc dynamic-ld.cc error.cc file-io.cc fn-cache.cc \ - gripes.cc help.cc input.cc lex.l load-save.cc mappers.cc \ - matherr.c oct-fstrm.cc oct-hist.cc oct-iostrm.cc oct-map.cc \ - oct-obj.cc oct-prcstrm.cc oct-procbuf.cc oct-stdstrm.cc \ - oct-stream.cc oct-strstrm.cc oct-lvalue.cc pager.cc parse.y \ - pr-output.cc procstream.cc sighandlers.cc siglist.c \ - strcasecmp.c strncase.c strfns.cc symtab.cc syscalls.cc \ - sysdep.cc system.c token.cc toplev.cc unwind-prot.cc \ - utils.cc variables.cc xdiv.cc xpow.cc \ + SLStack.cc Stack.cc c_file_ptr_stream.cc cutils.c data.cc \ + defaults.cc defun.cc dirfns.cc dynamic-ld.cc error.cc \ + file-io.cc fn-cache.cc gripes.cc help.cc input.cc lex.l \ + load-save.cc mappers.cc matherr.c oct-fstrm.cc oct-hist.cc \ + oct-iostrm.cc oct-map.cc oct-obj.cc oct-prcstrm.cc \ + oct-procbuf.cc oct-stdstrm.cc oct-stream.cc oct-strstrm.cc \ + oct-lvalue.cc pager.cc parse.y pr-output.cc procstream.cc \ + sighandlers.cc siglist.c strcasecmp.c strncase.c strfns.cc \ + symtab.cc syscalls.cc sysdep.cc system.c token.cc toplev.cc \ + unwind-prot.cc utils.cc variables.cc xdiv.cc xpow.cc \ $(OV_SRC) \ $(PT_SRC) diff -r 1222153daafb -r b1ff6597576f src/oct-prcstrm.cc --- a/src/oct-prcstrm.cc Fri Mar 17 02:31:58 2000 +0000 +++ b/src/oct-prcstrm.cc Fri Mar 17 09:44:30 2000 +0000 @@ -45,7 +45,7 @@ if (fp) { delete is; - is = new std::istdiostream (fp); + is = new i_c_file_ptr_stream (fp); } } @@ -75,7 +75,7 @@ if (fp) { delete os; - os = new std::ostdiostream (fp); + os = new o_c_file_ptr_stream (fp); } } diff -r 1222153daafb -r b1ff6597576f src/oct-stdstrm.cc --- a/src/oct-stdstrm.cc Fri Mar 17 02:31:58 2000 +0000 +++ b/src/oct-stdstrm.cc Fri Mar 17 09:44:30 2000 +0000 @@ -46,13 +46,13 @@ if (! bad ()) { - stdiobuf *sb = rdbuf (); + c_file_ptr_buf *sb = rdbuf (); if (sb) { clear (); - sb->seekoff (offset, origin); + sb->pubseekoff (offset, origin); retval = bad () ? -1 : 0; } } @@ -69,11 +69,11 @@ if (! bad ()) { - stdiobuf *sb = rdbuf (); + c_file_ptr_buf *sb = rdbuf (); if (sb) { - retval = static_cast (sb->seekoff (0, ios::cur)); + retval = static_cast (sb->pubseekoff (0, std::ios::cur)); if (bad ()) retval = -1; @@ -97,7 +97,7 @@ : octave_base_stdiostream (n, f, arg_md, flt_fmt), is (0) { if (f) - is = new std::istdiostream (f); + is = new i_c_file_ptr_stream (f); } octave_istdiostream::~octave_istdiostream (void) @@ -119,7 +119,7 @@ : octave_base_stdiostream (n, f, arg_md, flt_fmt), os (0) { if (f) - os = new std::ostdiostream (f); + os = new o_c_file_ptr_stream (f); } octave_ostdiostream::~octave_ostdiostream (void) diff -r 1222153daafb -r b1ff6597576f src/oct-stdstrm.h --- a/src/oct-stdstrm.h Fri Mar 17 02:31:58 2000 +0000 +++ b/src/oct-stdstrm.h Fri Mar 17 09:44:30 2000 +0000 @@ -23,9 +23,8 @@ #if !defined (octave_octave_stdiostream_h) #define octave_octave_stdiostream_h 1 -#include - #include "oct-stream.h" +#include "c_file_ptr_stream.h" class octave_base_stdiostream : public octave_base_stream @@ -50,7 +49,7 @@ std::string name (void) const { return nm; } - virtual stdiobuf *rdbuf (void) const = 0; + virtual c_file_ptr_buf *rdbuf (void) const = 0; virtual bool bad (void) const = 0; @@ -95,8 +94,7 @@ std::ostream *output_stream (void) { return 0; } // XXX FIXME XXX -- should not have to cast away const here. - stdiobuf *rdbuf (void) const - { return is ? (const_cast (is))->rdbuf () : 0; } + c_file_ptr_buf *rdbuf (void) const { return is ? is->rdbuf () : 0; } bool bad (void) const { return is ? is->bad () : true; } @@ -108,7 +106,7 @@ protected: - std::istdiostream *is; + i_c_file_ptr_stream *is; ~octave_istdiostream (void); @@ -145,8 +143,8 @@ std::ostream *output_stream (void) { return os; } // XXX FIXME XXX -- should not have to cast away const here. - stdiobuf *rdbuf (void) const - { return os ? (const_cast (os))->rdbuf () : 0; } + c_file_ptr_buf *rdbuf (void) const + { return os ? (const_cast (os))->rdbuf () : 0; } bool bad (void) const { return os ? os->bad () : true; } @@ -158,7 +156,7 @@ protected: - std::ostdiostream *os; + o_c_file_ptr_stream *os; ~octave_ostdiostream (void); diff -r 1222153daafb -r b1ff6597576f src/pr-output.cc --- a/src/pr-output.cc Fri Mar 17 02:31:58 2000 +0000 +++ b/src/pr-output.cc Fri Mar 17 09:44:30 2000 +0000 @@ -247,7 +247,7 @@ // functions,.. static void -set_real_format (bool sign, int digits, bool inf_or_nan, bool nan_or_int, +set_real_format (bool sign, int digits, bool inf_or_nan, bool int_only, int &fw) { static float_format fmt; @@ -274,7 +274,7 @@ fw = 8 * sizeof (double); rd = 0; } - else if (nan_or_int) + else if (inf_or_nan || int_only) { fw = digits; if (inf_or_nan && fw < 3) @@ -320,6 +320,8 @@ if (print_big_e) fmt.uppercase (); } + else if (inf_or_nan || int_only) + fmt = float_format (fw, rd); else fmt = float_format (fw, rd, std::ios::fixed); @@ -339,14 +341,14 @@ bool inf_or_nan = (xisinf (d) || xisnan (d)); - bool nan_or_int = (xisnan (d) || D_NINT (d) == d); + bool int_only = (! inf_or_nan && D_NINT (d) == d); double d_abs = d < 0.0 ? -d : d; int digits = (inf_or_nan || d_abs == 0.0) ? 0 : static_cast (floor (log10 (d_abs) + 1.0)); - set_real_format (sign, digits, inf_or_nan, nan_or_int, fw); + set_real_format (sign, digits, inf_or_nan, int_only, fw); } static inline void @@ -459,6 +461,8 @@ if (print_big_e) fmt.uppercase (); } + else if (int_or_inf_or_nan) + fmt = float_format (fw, rd); else fmt = float_format (fw, rd, std::ios::fixed); @@ -606,6 +610,11 @@ i_fmt.uppercase (); } } + else if (inf_or_nan || int_only) + { + r_fmt = float_format (r_fw, rd); + i_fmt = float_format (i_fw, rd); + } else { r_fmt = float_format (r_fw, rd, std::ios::fixed); @@ -779,6 +788,11 @@ i_fmt.uppercase (); } } + else if (int_or_inf_or_nan) + { + r_fmt = float_format (r_fw, rd); + i_fmt = float_format (i_fw, rd); + } else { r_fmt = float_format (r_fw, rd, std::ios::fixed); @@ -932,6 +946,8 @@ if (print_big_e) fmt.uppercase (); } + else if (all_ints) + fmt = float_format (fw, rd); else fmt = float_format (fw, rd, std::ios::fixed);