Mercurial > hg > octave-nkf
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 |
rev | line source |
---|---|
1 | 1 /* |
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 | 4 |
5 This file is part of Octave. | |
6 | |
7 Octave is free software; you can redistribute it and/or modify it | |
8 under the terms of the GNU General Public License as published by the | |
7016 | 9 Free Software Foundation; either version 3 of the License, or (at your |
10 option) any later version. | |
1 | 11 |
12 Octave is distributed in the hope that it will be useful, but WITHOUT | |
13 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | |
14 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License | |
15 for more details. | |
16 | |
17 You should have received a copy of the GNU General Public License | |
7016 | 18 along with Octave; see the file COPYING. If not, see |
19 <http://www.gnu.org/licenses/>. | |
1 | 20 |
21 */ | |
22 | |
383 | 23 #if !defined (octave_utils_h) |
24 #define octave_utils_h 1 | |
1 | 25 |
3620 | 26 #include <cstdarg> |
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 | 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 | 31 |
4478 | 32 #include "dMatrix.h" |
1966 | 33 #include "lo-utils.h" |
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 | 37 class octave_value; |
2086 | 38 class octave_value_list; |
1755 | 39 class string_vector; |
1 | 40 |
6109 | 41 extern OCTINTERP_API bool valid_identifier (const char *s); |
42 extern OCTINTERP_API bool valid_identifier (const std::string& s); | |
607 | 43 |
6323 | 44 extern OCTINTERP_API bool |
45 same_file (const std::string& f, const std::string& g); | |
46 | |
47 extern OCTINTERP_API int almost_match (const std::string& std, | |
10313 | 48 const std::string& s, |
49 int min_match_len = 1, | |
50 int case_sens = 1); | |
607 | 51 |
6109 | 52 extern OCTINTERP_API int |
3072 | 53 keyword_almost_match (const char * const *std, int *min_len, |
10313 | 54 const std::string& s, int min_toks_to_match, |
55 int max_toks); | |
1755 | 56 |
6323 | 57 extern OCTINTERP_API int empty_arg (const char *name, octave_idx_type nr, |
10313 | 58 octave_idx_type nc); |
628 | 59 |
6109 | 60 extern OCTINTERP_API std::string |
4243 | 61 search_path_for_file (const std::string&, const string_vector&); |
4216 | 62 |
6109 | 63 extern OCTINTERP_API string_vector |
4243 | 64 search_path_for_all_files (const std::string&, const string_vector&); |
4216 | 65 |
6323 | 66 extern OCTINTERP_API std::string |
67 file_in_path (const std::string&, const std::string&); | |
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 | 76 extern OCTINTERP_API std::string fcn_file_in_path (const std::string&); |
77 extern OCTINTERP_API std::string oct_file_in_path (const std::string&); | |
78 extern OCTINTERP_API std::string mex_file_in_path (const std::string&); | |
2042 | 79 |
6109 | 80 extern OCTINTERP_API std::string do_string_escapes (const std::string& s); |
3103 | 81 |
6109 | 82 extern OCTINTERP_API const char *undo_string_escape (char c); |
4143 | 83 |
6109 | 84 extern OCTINTERP_API std::string undo_string_escapes (const std::string& s); |
801 | 85 |
6109 | 86 extern OCTINTERP_API void |
4513 | 87 check_dimensions (dim_vector& dim, const char *warnfor); |
4481 | 88 |
6109 | 89 extern OCTINTERP_API void |
4481 | 90 get_dimensions (const octave_value& a, const char *warn_for, |
4513 | 91 dim_vector& dim); |
4481 | 92 |
6109 | 93 extern OCTINTERP_API void |
3354 | 94 get_dimensions (const octave_value& a, const octave_value& b, |
10313 | 95 const char *warn_for, octave_idx_type& nr, |
96 octave_idx_type& nc); | |
3354 | 97 |
6109 | 98 extern OCTINTERP_API void |
6323 | 99 get_dimensions (const octave_value& a,const char *warn_for, |
10313 | 100 octave_idx_type& nr, octave_idx_type& nc); |
3354 | 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 | 105 extern OCTINTERP_API Matrix |
106 identity_matrix (octave_idx_type nr, octave_idx_type nc); | |
4478 | 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 | 112 octave_format (std::ostream& os, const char *fmt, ...); |
3620 | 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 | 115 octave_vformat (std::ostream& os, const char *fmt, va_list args); |
3620 | 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 | 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 | 121 |
6109 | 122 extern OCTINTERP_API void octave_sleep (double seconds); |
3308 | 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 | 156 #endif |