Mercurial > octave
diff libinterp/corefcn/octave-preserve-stream-state.h @ 20925:667861ffffab
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.
author | Kai T. Ohlhus <k.ohlhus@gmail.com> |
---|---|
date | Thu, 17 Dec 2015 16:19:51 +0100 |
parents | |
children | f7d1050b9b53 |
line wrap: on
line diff
--- /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 +<http://www.gnu.org/licenses/>. + +*/ + +#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