# HG changeset patch # User Kai T. Ohlhus # Date 1450365591 -3600 # Node ID 667861ffffab414d4fff44cb56cbf2f2a07b9bd0 # Parent e74e617060cfe69cac57f04296e336100b3f639c Extracted header class octave-preserve-stream-state from utils.{cc/h}. * libinterp/corefcn/octave-preserve-stream-state.h: extracted class definition. * libinterp/corefcn/module.mk: add octave-preserve-stream-state.h to build system. * libinterp/corefcn/utils.{cc/h}: extracted code of class octave-preserve-stream-state. * libinterp/corefcn/debug.cc: add new header dependency. * libinterp/corefcn/pr-output.cc: add new header dependency. * libinterp/corefcn/variables.cc: add new header dependency. * libinterp/corefcn/ov-base-sparse.cc: add new header dependency. diff -r e74e617060cf -r 667861ffffab libinterp/corefcn/debug.cc --- a/libinterp/corefcn/debug.cc Thu Dec 17 16:14:24 2015 +0100 +++ b/libinterp/corefcn/debug.cc Thu Dec 17 16:19:51 2015 +0100 @@ -45,6 +45,7 @@ #include "parse.h" #include "symtab.h" #include "gripes.h" +#include "octave-preserve-stream-state.h" #include "ov.h" #include "ov-usr-fcn.h" #include "ov-fcn.h" diff -r e74e617060cf -r 667861ffffab libinterp/corefcn/module.mk --- a/libinterp/corefcn/module.mk Thu Dec 17 16:14:24 2015 +0100 +++ b/libinterp/corefcn/module.mk Thu Dec 17 16:19:51 2015 +0100 @@ -74,6 +74,7 @@ libinterp/corefcn/oct.h \ libinterp/corefcn/octave-default-image.h \ libinterp/corefcn/octave-link.h \ + libinterp/corefcn/octave-preserve-stream-state.h \ libinterp/corefcn/pager.h \ libinterp/corefcn/pr-output.h \ libinterp/corefcn/procstream.h \ diff -r e74e617060cf -r 667861ffffab libinterp/corefcn/octave-preserve-stream-state.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/libinterp/corefcn/octave-preserve-stream-state.h Thu Dec 17 16:19:51 2015 +0100 @@ -0,0 +1,53 @@ +/* + +Copyright (C) 1993-2015 John W. Eaton + +This file is part of Octave. + +Octave is free software; you can redistribute it and/or modify it +under the terms of the GNU General Public License as published by the +Free Software Foundation; either version 3 of the License, or (at your +option) any later version. + +Octave is distributed in the hope that it will be useful, but WITHOUT +ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +for more details. + +You should have received a copy of the GNU General Public License +along with Octave; see the file COPYING. If not, see +. + +*/ + +#if ! defined (octave_preserve_stream_state_h) +#define octave_preserve_stream_state_h 1 + +class +octave_preserve_stream_state +{ +public: + + octave_preserve_stream_state (std::ios& s) + : stream (s), oflags (s.flags ()), oprecision (s.precision ()), + owidth (s.width ()), ofill (s.fill ()) + { } + + ~octave_preserve_stream_state (void) + { + stream.flags (oflags); + stream.precision (oprecision); + stream.width (owidth); + stream.fill (ofill); + } + +private: + + std::ios& stream; + std::ios::fmtflags oflags; + std::streamsize oprecision; + int owidth; + char ofill; +}; + +#endif diff -r e74e617060cf -r 667861ffffab libinterp/corefcn/pr-output.cc --- a/libinterp/corefcn/pr-output.cc Thu Dec 17 16:14:24 2015 +0100 +++ b/libinterp/corefcn/pr-output.cc Thu Dec 17 16:19:51 2015 +0100 @@ -51,6 +51,7 @@ #include "gripes.h" #include "oct-obj.h" #include "oct-stream.h" +#include "octave-preserve-stream-state.h" #include "pager.h" #include "pr-output.h" #include "sysdep.h" diff -r e74e617060cf -r 667861ffffab libinterp/corefcn/utils.cc --- a/libinterp/corefcn/utils.cc Thu Dec 17 16:14:24 2015 +0100 +++ b/libinterp/corefcn/utils.cc Thu Dec 17 16:19:51 2015 +0100 @@ -1516,14 +1516,6 @@ return retval; } -octave_preserve_stream_state::~octave_preserve_stream_state (void) -{ - stream.flags (oflags); - stream.precision (oprecision); - stream.width (owidth); - stream.fill (ofill); -} - DEFUN (isstudent, args, , "-*- texinfo -*-\n\ @deftypefn {} {} isstudent ()\n\ diff -r e74e617060cf -r 667861ffffab libinterp/corefcn/utils.h --- a/libinterp/corefcn/utils.h Thu Dec 17 16:14:24 2015 +0100 +++ b/libinterp/corefcn/utils.h Thu Dec 17 16:19:51 2015 +0100 @@ -130,25 +130,4 @@ do_simple_cellfun (octave_value_list (*fun) (const octave_value_list&, int), const char *fun_name, const octave_value_list& args); -class -octave_preserve_stream_state -{ -public: - - octave_preserve_stream_state (std::ios& s) - : stream (s), oflags (s.flags ()), oprecision (s.precision ()), - owidth (s.width ()), ofill (s.fill ()) - { } - - ~octave_preserve_stream_state (void); - -private: - - std::ios& stream; - std::ios::fmtflags oflags; - std::streamsize oprecision; - int owidth; - char ofill; -}; - #endif diff -r e74e617060cf -r 667861ffffab libinterp/corefcn/variables.cc --- a/libinterp/corefcn/variables.cc Thu Dec 17 16:14:24 2015 +0100 +++ b/libinterp/corefcn/variables.cc Thu Dec 17 16:19:51 2015 +0100 @@ -50,6 +50,7 @@ #include "lex.h" #include "load-path.h" #include "octave-link.h" +#include "octave-preserve-stream-state.h" #include "oct-map.h" #include "oct-obj.h" #include "ov.h" diff -r e74e617060cf -r 667861ffffab libinterp/octave-value/ov-base-sparse.cc --- a/libinterp/octave-value/ov-base-sparse.cc Thu Dec 17 16:14:24 2015 +0100 +++ b/libinterp/octave-value/ov-base-sparse.cc Thu Dec 17 16:19:51 2015 +0100 @@ -41,6 +41,7 @@ #include "boolSparse.h" #include "ov-base-sparse.h" +#include "octave-preserve-stream-state.h" #include "pager.h" #include "utils.h"