annotate libinterp/corefcn/utils.h @ 20068:19755f4fc851

maint: Cleanup C++ code to follow Octave coding conventions. Try to wrap long lines to < 80 characters. Use GNU style and don't indent first brace of function definition. "case" statement is aligned flush left with brace of switch stmt. Remove trailing '\' line continuation from the end of #define macros. Use 2 spaces for indent. * files-dock-widget.cc, history-dock-widget.cc, main-window.cc, octave-cmd.cc, octave-dock-widget.cc, octave-gui.cc, resource-manager.cc, settings-dialog.cc, shortcut-manager.cc, welcome-wizard.cc, workspace-view.cc, cellfun.cc, data.cc, debug.cc, debug.h, dirfns.cc, error.h, file-io.cc, gl-render.cc, gl-render.h, gl2ps-renderer.h, graphics.cc, graphics.in.h, help.cc, input.cc, load-path.cc, load-path.h, lookup.cc, lu.cc, oct-stream.cc, octave-default-image.h, ordschur.cc, pr-output.cc, qz.cc, strfns.cc, symtab.cc, symtab.h, sysdep.cc, variables.cc, zfstream.h, __fltk_uigetfile__.cc, __init_fltk__.cc, __magick_read__.cc, __osmesa_print__.cc, audiodevinfo.cc, ov-classdef.cc, ov-classdef.h, ov-fcn.h, ov-float.cc, ov-flt-complex.cc, ov-java.cc, ov-range.cc, ov-re-mat.cc, ov-usr-fcn.h, ov.cc, op-int.h, options-usage.h, pt-eval.cc, Array-C.cc, Array-fC.cc, Array.cc, Array.h, PermMatrix.cc, Sparse.cc, chMatrix.h, dSparse.cc, dim-vector.h, bsxfun-decl.h, bsxfun-defs.cc, oct-norm.cc, Sparse-op-defs.h, oct-inttypes.cc, oct-inttypes.h, main.in.cc, mkoctfile.in.cc: Cleanup C++ code to follow Octave coding conventions.
author Rik <rik@octave.org>
date Wed, 25 Feb 2015 11:55:49 -0800
parents 4197fc428c7d
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
1 /*
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
2
19898
4197fc428c7d maint: Update copyright notices for 2015.
John W. Eaton <jwe@octave.org>
parents: 19222
diff changeset
3 Copyright (C) 1993-2015 John W. Eaton
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
4
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
5 This file is part of Octave.
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
6
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
7 Octave is free software; you can redistribute it and/or modify it
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
8 under the terms of the GNU General Public License as published by the
7016
93c65f2a5668 [project @ 2007-10-12 06:40:56 by jwe]
jwe
parents: 6323
diff changeset
9 Free Software Foundation; either version 3 of the License, or (at your
93c65f2a5668 [project @ 2007-10-12 06:40:56 by jwe]
jwe
parents: 6323
diff changeset
10 option) any later version.
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
11
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
12 Octave is distributed in the hope that it will be useful, but WITHOUT
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
13 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
14 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
15 for more details.
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
16
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
17 You should have received a copy of the GNU General Public License
7016
93c65f2a5668 [project @ 2007-10-12 06:40:56 by jwe]
jwe
parents: 6323
diff changeset
18 along with Octave; see the file COPYING. If not, see
93c65f2a5668 [project @ 2007-10-12 06:40:56 by jwe]
jwe
parents: 6323
diff changeset
19 <http://www.gnu.org/licenses/>.
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
20
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
21 */
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
22
383
0b52c68ec81f [project @ 1994-03-09 21:19:44 by jwe]
jwe
parents: 339
diff changeset
23 #if !defined (octave_utils_h)
0b52c68ec81f [project @ 1994-03-09 21:19:44 by jwe]
jwe
parents: 339
diff changeset
24 #define octave_utils_h 1
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
25
3620
0886bbb236cb [project @ 2000-03-23 05:17:23 by jwe]
jwe
parents: 3523
diff changeset
26 #include <cstdarg>
0886bbb236cb [project @ 2000-03-23 05:17:23 by jwe]
jwe
parents: 3523
diff changeset
27
8950
d865363208d6 include <iosfwd> instead of <iostream> in header files
John W. Eaton <jwe@octave.org>
parents: 8920
diff changeset
28 #include <iosfwd>
1755
3a9462b655f1 [project @ 1996-01-22 04:47:22 by jwe]
jwe
parents: 1738
diff changeset
29 #include <string>
10033
f349847c4541 optimize cellfun (@subsref, args, {subs}, uniformoutput, true) case
Jaroslav Hajek <highegg@gmail.com>
parents: 9705
diff changeset
30 #include <list>
1755
3a9462b655f1 [project @ 1996-01-22 04:47:22 by jwe]
jwe
parents: 1738
diff changeset
31
4478
7afd4bf05aa8 [project @ 2003-07-30 19:15:31 by jwe]
jwe
parents: 4302
diff changeset
32 #include "dMatrix.h"
1966
4b8e9571bbdf [project @ 1996-02-17 02:52:04 by jwe]
jwe
parents: 1884
diff changeset
33 #include "lo-utils.h"
4b8e9571bbdf [project @ 1996-02-17 02:52:04 by jwe]
jwe
parents: 1884
diff changeset
34
11512
e4e82740e9cd prototype fixes for C language files
John W. Eaton <jwe@octave.org>
parents: 10313
diff changeset
35 #include "cutils.h"
e4e82740e9cd prototype fixes for C language files
John W. Eaton <jwe@octave.org>
parents: 10313
diff changeset
36
3354
87721841efd7 [project @ 1999-11-17 19:06:11 by jwe]
jwe
parents: 3350
diff changeset
37 class octave_value;
2086
bfb775fb6fe8 [project @ 1996-04-25 05:55:19 by jwe]
jwe
parents: 2042
diff changeset
38 class octave_value_list;
1755
3a9462b655f1 [project @ 1996-01-22 04:47:22 by jwe]
jwe
parents: 1738
diff changeset
39 class string_vector;
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
40
6109
c68896f193e3 [project @ 2006-10-27 02:16:18 by jwe]
jwe
parents: 5864
diff changeset
41 extern OCTINTERP_API bool valid_identifier (const char *s);
c68896f193e3 [project @ 2006-10-27 02:16:18 by jwe]
jwe
parents: 5864
diff changeset
42 extern OCTINTERP_API bool valid_identifier (const std::string& s);
607
ae3b8b2924a0 [project @ 1994-08-13 20:11:17 by jwe]
jwe
parents: 578
diff changeset
43
6323
ea65de49e18e [project @ 2007-02-17 02:51:02 by jwe]
jwe
parents: 6111
diff changeset
44 extern OCTINTERP_API bool
ea65de49e18e [project @ 2007-02-17 02:51:02 by jwe]
jwe
parents: 6111
diff changeset
45 same_file (const std::string& f, const std::string& g);
ea65de49e18e [project @ 2007-02-17 02:51:02 by jwe]
jwe
parents: 6111
diff changeset
46
ea65de49e18e [project @ 2007-02-17 02:51:02 by jwe]
jwe
parents: 6111
diff changeset
47 extern OCTINTERP_API int almost_match (const std::string& std,
10313
f3b65e1ae355 untabify src header files
John W. Eaton <jwe@octave.org>
parents: 10160
diff changeset
48 const std::string& s,
f3b65e1ae355 untabify src header files
John W. Eaton <jwe@octave.org>
parents: 10160
diff changeset
49 int min_match_len = 1,
f3b65e1ae355 untabify src header files
John W. Eaton <jwe@octave.org>
parents: 10160
diff changeset
50 int case_sens = 1);
607
ae3b8b2924a0 [project @ 1994-08-13 20:11:17 by jwe]
jwe
parents: 578
diff changeset
51
6109
c68896f193e3 [project @ 2006-10-27 02:16:18 by jwe]
jwe
parents: 5864
diff changeset
52 extern OCTINTERP_API int
3072
ca9677cdb62e [project @ 1997-07-15 02:45:42 by jwe]
jwe
parents: 3040
diff changeset
53 keyword_almost_match (const char * const *std, int *min_len,
10313
f3b65e1ae355 untabify src header files
John W. Eaton <jwe@octave.org>
parents: 10160
diff changeset
54 const std::string& s, int min_toks_to_match,
f3b65e1ae355 untabify src header files
John W. Eaton <jwe@octave.org>
parents: 10160
diff changeset
55 int max_toks);
1755
3a9462b655f1 [project @ 1996-01-22 04:47:22 by jwe]
jwe
parents: 1738
diff changeset
56
6323
ea65de49e18e [project @ 2007-02-17 02:51:02 by jwe]
jwe
parents: 6111
diff changeset
57 extern OCTINTERP_API int empty_arg (const char *name, octave_idx_type nr,
10313
f3b65e1ae355 untabify src header files
John W. Eaton <jwe@octave.org>
parents: 10160
diff changeset
58 octave_idx_type nc);
628
aecbe369233b [project @ 1994-08-19 13:27:51 by jwe]
jwe
parents: 607
diff changeset
59
6109
c68896f193e3 [project @ 2006-10-27 02:16:18 by jwe]
jwe
parents: 5864
diff changeset
60 extern OCTINTERP_API std::string
4243
7e4d5b5520e5 [project @ 2002-12-27 05:30:59 by jwe]
jwe
parents: 4216
diff changeset
61 search_path_for_file (const std::string&, const string_vector&);
4216
e613ffa9f0e6 [project @ 2002-12-04 17:37:09 by jwe]
jwe
parents: 4153
diff changeset
62
6109
c68896f193e3 [project @ 2006-10-27 02:16:18 by jwe]
jwe
parents: 5864
diff changeset
63 extern OCTINTERP_API string_vector
4243
7e4d5b5520e5 [project @ 2002-12-27 05:30:59 by jwe]
jwe
parents: 4216
diff changeset
64 search_path_for_all_files (const std::string&, const string_vector&);
4216
e613ffa9f0e6 [project @ 2002-12-04 17:37:09 by jwe]
jwe
parents: 4153
diff changeset
65
6323
ea65de49e18e [project @ 2007-02-17 02:51:02 by jwe]
jwe
parents: 6111
diff changeset
66 extern OCTINTERP_API std::string
ea65de49e18e [project @ 2007-02-17 02:51:02 by jwe]
jwe
parents: 6111
diff changeset
67 file_in_path (const std::string&, const std::string&);
ea65de49e18e [project @ 2007-02-17 02:51:02 by jwe]
jwe
parents: 6111
diff changeset
68
19222
9ef10e6a5987 make "file found in path" warnings consistent
John W. Eaton <jwe@octave.org>
parents: 17818
diff changeset
69 extern OCTINTERP_API std::string
9ef10e6a5987 make "file found in path" warnings consistent
John W. Eaton <jwe@octave.org>
parents: 17818
diff changeset
70 find_data_file_in_load_path (const std::string& fcn,
9ef10e6a5987 make "file found in path" warnings consistent
John W. Eaton <jwe@octave.org>
parents: 17818
diff changeset
71 const std::string& file,
9ef10e6a5987 make "file found in path" warnings consistent
John W. Eaton <jwe@octave.org>
parents: 17818
diff changeset
72 bool require_regular_file = false);
9ef10e6a5987 make "file found in path" warnings consistent
John W. Eaton <jwe@octave.org>
parents: 17818
diff changeset
73
8041
a14bdf90be55 Add a search for Contents.m files to the help function
David Bateman <dbateman@free.fr>
parents: 7789
diff changeset
74 extern OCTINTERP_API std::string contents_file_in_path (const std::string&);
a14bdf90be55 Add a search for Contents.m files to the help function
David Bateman <dbateman@free.fr>
parents: 7789
diff changeset
75
6109
c68896f193e3 [project @ 2006-10-27 02:16:18 by jwe]
jwe
parents: 5864
diff changeset
76 extern OCTINTERP_API std::string fcn_file_in_path (const std::string&);
c68896f193e3 [project @ 2006-10-27 02:16:18 by jwe]
jwe
parents: 5864
diff changeset
77 extern OCTINTERP_API std::string oct_file_in_path (const std::string&);
c68896f193e3 [project @ 2006-10-27 02:16:18 by jwe]
jwe
parents: 5864
diff changeset
78 extern OCTINTERP_API std::string mex_file_in_path (const std::string&);
2042
31f4f775b8c6 [project @ 1996-03-28 09:06:28 by jwe]
jwe
parents: 1996
diff changeset
79
6109
c68896f193e3 [project @ 2006-10-27 02:16:18 by jwe]
jwe
parents: 5864
diff changeset
80 extern OCTINTERP_API std::string do_string_escapes (const std::string& s);
3103
98d862e12945 [project @ 1997-11-18 10:46:30 by jwe]
jwe
parents: 3072
diff changeset
81
6109
c68896f193e3 [project @ 2006-10-27 02:16:18 by jwe]
jwe
parents: 5864
diff changeset
82 extern OCTINTERP_API const char *undo_string_escape (char c);
4143
62afb31c1f85 [project @ 2002-11-01 17:27:38 by jwe]
jwe
parents: 4086
diff changeset
83
6109
c68896f193e3 [project @ 2006-10-27 02:16:18 by jwe]
jwe
parents: 5864
diff changeset
84 extern OCTINTERP_API std::string undo_string_escapes (const std::string& s);
801
cbc37d8d0fdf [project @ 1994-10-13 17:03:23 by jwe]
jwe
parents: 707
diff changeset
85
6109
c68896f193e3 [project @ 2006-10-27 02:16:18 by jwe]
jwe
parents: 5864
diff changeset
86 extern OCTINTERP_API void
4513
508238e65af7 [project @ 2003-09-19 21:40:57 by jwe]
jwe
parents: 4481
diff changeset
87 check_dimensions (dim_vector& dim, const char *warnfor);
4481
cfbaee1f562f [project @ 2003-08-06 13:56:07 by jwe]
jwe
parents: 4478
diff changeset
88
6109
c68896f193e3 [project @ 2006-10-27 02:16:18 by jwe]
jwe
parents: 5864
diff changeset
89 extern OCTINTERP_API void
4481
cfbaee1f562f [project @ 2003-08-06 13:56:07 by jwe]
jwe
parents: 4478
diff changeset
90 get_dimensions (const octave_value& a, const char *warn_for,
4513
508238e65af7 [project @ 2003-09-19 21:40:57 by jwe]
jwe
parents: 4481
diff changeset
91 dim_vector& dim);
4481
cfbaee1f562f [project @ 2003-08-06 13:56:07 by jwe]
jwe
parents: 4478
diff changeset
92
6109
c68896f193e3 [project @ 2006-10-27 02:16:18 by jwe]
jwe
parents: 5864
diff changeset
93 extern OCTINTERP_API void
3354
87721841efd7 [project @ 1999-11-17 19:06:11 by jwe]
jwe
parents: 3350
diff changeset
94 get_dimensions (const octave_value& a, const octave_value& b,
10313
f3b65e1ae355 untabify src header files
John W. Eaton <jwe@octave.org>
parents: 10160
diff changeset
95 const char *warn_for, octave_idx_type& nr,
f3b65e1ae355 untabify src header files
John W. Eaton <jwe@octave.org>
parents: 10160
diff changeset
96 octave_idx_type& nc);
3354
87721841efd7 [project @ 1999-11-17 19:06:11 by jwe]
jwe
parents: 3350
diff changeset
97
6109
c68896f193e3 [project @ 2006-10-27 02:16:18 by jwe]
jwe
parents: 5864
diff changeset
98 extern OCTINTERP_API void
6323
ea65de49e18e [project @ 2007-02-17 02:51:02 by jwe]
jwe
parents: 6111
diff changeset
99 get_dimensions (const octave_value& a,const char *warn_for,
10313
f3b65e1ae355 untabify src header files
John W. Eaton <jwe@octave.org>
parents: 10160
diff changeset
100 octave_idx_type& nr, octave_idx_type& nc);
3354
87721841efd7 [project @ 1999-11-17 19:06:11 by jwe]
jwe
parents: 3350
diff changeset
101
9705
5acd99c3e794 avoid recursive overloaded calls in builtin numel
Jaroslav Hajek <highegg@gmail.com>
parents: 8950
diff changeset
102 extern OCTINTERP_API octave_idx_type
5acd99c3e794 avoid recursive overloaded calls in builtin numel
Jaroslav Hajek <highegg@gmail.com>
parents: 8950
diff changeset
103 dims_to_numel (const dim_vector& dims, const octave_value_list& idx);
5acd99c3e794 avoid recursive overloaded calls in builtin numel
Jaroslav Hajek <highegg@gmail.com>
parents: 8950
diff changeset
104
6323
ea65de49e18e [project @ 2007-02-17 02:51:02 by jwe]
jwe
parents: 6111
diff changeset
105 extern OCTINTERP_API Matrix
ea65de49e18e [project @ 2007-02-17 02:51:02 by jwe]
jwe
parents: 6111
diff changeset
106 identity_matrix (octave_idx_type nr, octave_idx_type nc);
4478
7afd4bf05aa8 [project @ 2003-07-30 19:15:31 by jwe]
jwe
parents: 4302
diff changeset
107
7789
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7017
diff changeset
108 extern OCTINTERP_API FloatMatrix
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7017
diff changeset
109 float_identity_matrix (octave_idx_type nr, octave_idx_type nc);
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7017
diff changeset
110
13991
051a8f94b6f8 avoid memory issue with octave_vsnprintf
John W. Eaton <jwe@octave.org>
parents: 13932
diff changeset
111 extern OCTINTERP_API size_t
3622
52594f1c37b6 [project @ 2000-03-23 06:20:06 by jwe]
jwe
parents: 3620
diff changeset
112 octave_format (std::ostream& os, const char *fmt, ...);
3620
0886bbb236cb [project @ 2000-03-23 05:17:23 by jwe]
jwe
parents: 3523
diff changeset
113
13991
051a8f94b6f8 avoid memory issue with octave_vsnprintf
John W. Eaton <jwe@octave.org>
parents: 13932
diff changeset
114 extern OCTINTERP_API size_t
3622
52594f1c37b6 [project @ 2000-03-23 06:20:06 by jwe]
jwe
parents: 3620
diff changeset
115 octave_vformat (std::ostream& os, const char *fmt, va_list args);
3620
0886bbb236cb [project @ 2000-03-23 05:17:23 by jwe]
jwe
parents: 3523
diff changeset
116
14005
f8556baf1949 rename octave_vsnprintf and octave_snprintf
John W. Eaton <jwe@octave.org>
parents: 13991
diff changeset
117 extern OCTINTERP_API std::string
f8556baf1949 rename octave_vsnprintf and octave_snprintf
John W. Eaton <jwe@octave.org>
parents: 13991
diff changeset
118 octave_vasprintf (const char *fmt, va_list args);
4302
ebc2d8e4968b [project @ 2003-01-22 22:02:23 by jwe]
jwe
parents: 4243
diff changeset
119
14005
f8556baf1949 rename octave_vsnprintf and octave_snprintf
John W. Eaton <jwe@octave.org>
parents: 13991
diff changeset
120 extern OCTINTERP_API std::string octave_asprintf (const char *fmt, ...);
4302
ebc2d8e4968b [project @ 2003-01-22 22:02:23 by jwe]
jwe
parents: 4243
diff changeset
121
6109
c68896f193e3 [project @ 2006-10-27 02:16:18 by jwe]
jwe
parents: 5864
diff changeset
122 extern OCTINTERP_API void octave_sleep (double seconds);
3308
7ae1928ca623 [project @ 1999-10-21 08:57:11 by jwe]
jwe
parents: 3174
diff changeset
123
10086
76df75b10c80 allow more cells in strfind/strrep + supply a general mechanism
Jaroslav Hajek <highegg@gmail.com>
parents: 10033
diff changeset
124 extern OCTINTERP_API
76df75b10c80 allow more cells in strfind/strrep + supply a general mechanism
Jaroslav Hajek <highegg@gmail.com>
parents: 10033
diff changeset
125 octave_value_list
76df75b10c80 allow more cells in strfind/strrep + supply a general mechanism
Jaroslav Hajek <highegg@gmail.com>
parents: 10033
diff changeset
126 do_simple_cellfun (octave_value_list (*fun) (const octave_value_list&, int),
11586
12df7854fa7c strip trailing whitespace from source files
John W. Eaton <jwe@octave.org>
parents: 11523
diff changeset
127 const char *fun_name, const octave_value_list& args,
10086
76df75b10c80 allow more cells in strfind/strrep + supply a general mechanism
Jaroslav Hajek <highegg@gmail.com>
parents: 10033
diff changeset
128 int nargout);
76df75b10c80 allow more cells in strfind/strrep + supply a general mechanism
Jaroslav Hajek <highegg@gmail.com>
parents: 10033
diff changeset
129
76df75b10c80 allow more cells in strfind/strrep + supply a general mechanism
Jaroslav Hajek <highegg@gmail.com>
parents: 10033
diff changeset
130 extern OCTINTERP_API
76df75b10c80 allow more cells in strfind/strrep + supply a general mechanism
Jaroslav Hajek <highegg@gmail.com>
parents: 10033
diff changeset
131 octave_value
76df75b10c80 allow more cells in strfind/strrep + supply a general mechanism
Jaroslav Hajek <highegg@gmail.com>
parents: 10033
diff changeset
132 do_simple_cellfun (octave_value_list (*fun) (const octave_value_list&, int),
76df75b10c80 allow more cells in strfind/strrep + supply a general mechanism
Jaroslav Hajek <highegg@gmail.com>
parents: 10033
diff changeset
133 const char *fun_name, const octave_value_list& args);
11512
e4e82740e9cd prototype fixes for C language files
John W. Eaton <jwe@octave.org>
parents: 10313
diff changeset
134
17818
f1b59ef34eda attempt to avoid setting persistent state on i/o streams (bug #40396)
John W. Eaton <jwe@octave.org>
parents: 17744
diff changeset
135 class
f1b59ef34eda attempt to avoid setting persistent state on i/o streams (bug #40396)
John W. Eaton <jwe@octave.org>
parents: 17744
diff changeset
136 octave_preserve_stream_state
f1b59ef34eda attempt to avoid setting persistent state on i/o streams (bug #40396)
John W. Eaton <jwe@octave.org>
parents: 17744
diff changeset
137 {
f1b59ef34eda attempt to avoid setting persistent state on i/o streams (bug #40396)
John W. Eaton <jwe@octave.org>
parents: 17744
diff changeset
138 public:
f1b59ef34eda attempt to avoid setting persistent state on i/o streams (bug #40396)
John W. Eaton <jwe@octave.org>
parents: 17744
diff changeset
139
f1b59ef34eda attempt to avoid setting persistent state on i/o streams (bug #40396)
John W. Eaton <jwe@octave.org>
parents: 17744
diff changeset
140 octave_preserve_stream_state (std::ios& s)
f1b59ef34eda attempt to avoid setting persistent state on i/o streams (bug #40396)
John W. Eaton <jwe@octave.org>
parents: 17744
diff changeset
141 : stream (s), oflags (s.flags ()), oprecision (s.precision ()),
f1b59ef34eda attempt to avoid setting persistent state on i/o streams (bug #40396)
John W. Eaton <jwe@octave.org>
parents: 17744
diff changeset
142 owidth (s.width ()), ofill (s.fill ())
f1b59ef34eda attempt to avoid setting persistent state on i/o streams (bug #40396)
John W. Eaton <jwe@octave.org>
parents: 17744
diff changeset
143 { }
f1b59ef34eda attempt to avoid setting persistent state on i/o streams (bug #40396)
John W. Eaton <jwe@octave.org>
parents: 17744
diff changeset
144
f1b59ef34eda attempt to avoid setting persistent state on i/o streams (bug #40396)
John W. Eaton <jwe@octave.org>
parents: 17744
diff changeset
145 ~octave_preserve_stream_state (void);
f1b59ef34eda attempt to avoid setting persistent state on i/o streams (bug #40396)
John W. Eaton <jwe@octave.org>
parents: 17744
diff changeset
146
f1b59ef34eda attempt to avoid setting persistent state on i/o streams (bug #40396)
John W. Eaton <jwe@octave.org>
parents: 17744
diff changeset
147 private:
f1b59ef34eda attempt to avoid setting persistent state on i/o streams (bug #40396)
John W. Eaton <jwe@octave.org>
parents: 17744
diff changeset
148
f1b59ef34eda attempt to avoid setting persistent state on i/o streams (bug #40396)
John W. Eaton <jwe@octave.org>
parents: 17744
diff changeset
149 std::ios& stream;
f1b59ef34eda attempt to avoid setting persistent state on i/o streams (bug #40396)
John W. Eaton <jwe@octave.org>
parents: 17744
diff changeset
150 std::ios::fmtflags oflags;
f1b59ef34eda attempt to avoid setting persistent state on i/o streams (bug #40396)
John W. Eaton <jwe@octave.org>
parents: 17744
diff changeset
151 std::streamsize oprecision;
f1b59ef34eda attempt to avoid setting persistent state on i/o streams (bug #40396)
John W. Eaton <jwe@octave.org>
parents: 17744
diff changeset
152 int owidth;
f1b59ef34eda attempt to avoid setting persistent state on i/o streams (bug #40396)
John W. Eaton <jwe@octave.org>
parents: 17744
diff changeset
153 char ofill;
f1b59ef34eda attempt to avoid setting persistent state on i/o streams (bug #40396)
John W. Eaton <jwe@octave.org>
parents: 17744
diff changeset
154 };
f1b59ef34eda attempt to avoid setting persistent state on i/o streams (bug #40396)
John W. Eaton <jwe@octave.org>
parents: 17744
diff changeset
155
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
156 #endif