Mercurial > octave-nkf
annotate libinterp/corefcn/gripes.cc @ 20614:10ec79b47808
use new string_value method to handle value extraction errors
* __voronoi__.cc, chol.cc, colamd.cc, fftw.cc:
Use new string_value method.
author | John W. Eaton <jwe@octave.org> |
---|---|
date | Thu, 08 Oct 2015 18:15:56 -0400 |
parents | b70cc4bd8109 |
children |
rev | line source |
---|---|
1 | 1 /* |
2 | |
19731
4197fc428c7d
maint: Update copyright notices for 2015.
John W. Eaton <jwe@octave.org>
parents:
19064
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 | |
240 | 23 #ifdef HAVE_CONFIG_H |
1192 | 24 #include <config.h> |
1 | 25 #endif |
26 | |
5755 | 27 #include "defun.h" |
1352 | 28 #include "error.h" |
1 | 29 #include "gripes.h" |
4055 | 30 #include "oct-obj.h" |
5755 | 31 #include "utils.h" |
32 | |
1 | 33 void |
2078 | 34 gripe_not_supported (const char *fcn) |
35 { | |
36 error ("%s: not supported on this system", fcn); | |
37 } | |
38 | |
39 void | |
6890 | 40 gripe_not_implemented (const char *fcn) |
41 { | |
42 error ("%s: not implemented", fcn); | |
43 } | |
44 | |
45 void | |
1 | 46 gripe_string_invalid (void) |
47 { | |
3523 | 48 error ("std::string constant used in invalid context"); |
1 | 49 } |
50 | |
51 void | |
52 gripe_range_invalid (void) | |
53 { | |
54 error ("range constant used in invalid context"); | |
55 } | |
56 | |
57 void | |
58 gripe_nonconformant (void) | |
59 { | |
60 error ("nonconformant matrices"); | |
61 } | |
62 | |
63 void | |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
64 gripe_nonconformant (octave_idx_type r1, octave_idx_type c1, |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
65 octave_idx_type r2, octave_idx_type c2) |
143 | 66 { |
67 error ("nonconformant matrices (op1 is %dx%d, op2 is %dx%d)", | |
10315
57a59eae83cc
untabify src C++ source files
John W. Eaton <jwe@octave.org>
parents:
10160
diff
changeset
|
68 r1, c1, r2, c2); |
143 | 69 } |
70 | |
71 void | |
2799 | 72 gripe_empty_arg (const char *name, bool is_error) |
1 | 73 { |
74 if (is_error) | |
75 error ("%s: empty matrix is invalid as an argument", name); | |
76 else | |
77 warning ("%s: argument is empty matrix", name); | |
78 } | |
79 | |
80 void | |
81 gripe_square_matrix_required (const char *name) | |
82 { | |
83 error ("%s: argument must be a square matrix", name); | |
84 } | |
85 | |
86 void | |
87 gripe_user_supplied_eval (const char *name) | |
88 { | |
89 error ("%s: evaluation of user-supplied function failed", name); | |
90 } | |
91 | |
92 void | |
93 gripe_user_returned_invalid (const char *name) | |
94 { | |
95 error ("%s: user-supplied function returned invalid value", name); | |
96 } | |
97 | |
628 | 98 void |
3523 | 99 gripe_invalid_conversion (const std::string& from, const std::string& to) |
628 | 100 { |
2374 | 101 error ("invalid conversion from %s to %s", from.c_str (), to.c_str ()); |
628 | 102 } |
103 | |
777 | 104 void |
1416 | 105 gripe_invalid_value_specified (const char *name) |
106 { | |
15466
d174210ce1ec
use ' instead of ` in error messages, warnings and most comments
John W. Eaton <jwe@octave.org>
parents:
14138
diff
changeset
|
107 warning ("invalid value specified for '%s'", name); |
1416 | 108 } |
109 | |
110 void | |
777 | 111 gripe_2_or_3_dim_plot (void) |
112 { | |
113 error ("plot: can only plot in 2 or 3 dimensions"); | |
114 } | |
115 | |
116 void | |
117 gripe_unrecognized_float_fmt (void) | |
118 { | |
119 error ("unrecognized floating point format requested"); | |
120 } | |
121 | |
122 void | |
123 gripe_unrecognized_data_fmt (const char *warn_for) | |
124 { | |
125 error ("%s: unrecognized data format requested", warn_for); | |
126 } | |
127 | |
128 void | |
129 gripe_data_conversion (const char *from, const char *to) | |
130 { | |
131 error ("unable to convert from %s to %s format", from, to); | |
132 } | |
133 | |
134 void | |
5602 | 135 gripe_wrong_type_arg (const char *name, const char *s, bool is_error) |
2668 | 136 { |
2799 | 137 if (is_error) |
15466
d174210ce1ec
use ' instead of ` in error messages, warnings and most comments
John W. Eaton <jwe@octave.org>
parents:
14138
diff
changeset
|
138 error ("%s: wrong type argument '%s'", name, s); |
2799 | 139 else |
15466
d174210ce1ec
use ' instead of ` in error messages, warnings and most comments
John W. Eaton <jwe@octave.org>
parents:
14138
diff
changeset
|
140 warning ("%s: wrong type argument '%s'", name, s); |
5602 | 141 } |
142 | |
143 void | |
144 gripe_wrong_type_arg (const char *name, const std::string& s, bool is_error) | |
145 { | |
146 gripe_wrong_type_arg (name, s.c_str (), is_error); | |
2668 | 147 } |
148 | |
149 void | |
2799 | 150 gripe_wrong_type_arg (const char *name, const octave_value& tc, |
10315
57a59eae83cc
untabify src C++ source files
John W. Eaton <jwe@octave.org>
parents:
10160
diff
changeset
|
151 bool is_error) |
777 | 152 { |
3523 | 153 std::string type = tc.type_name (); |
2799 | 154 |
5602 | 155 gripe_wrong_type_arg (name, type, is_error); |
777 | 156 } |
157 | |
158 void | |
7352 | 159 gripe_wrong_type_arg (const std::string& name, const octave_value& tc, |
10315
57a59eae83cc
untabify src C++ source files
John W. Eaton <jwe@octave.org>
parents:
10160
diff
changeset
|
160 bool is_error) |
7352 | 161 { |
162 gripe_wrong_type_arg (name.c_str (), tc, is_error); | |
163 } | |
164 | |
165 void | |
2086 | 166 gripe_wrong_type_arg_for_unary_op (const octave_value& op) |
777 | 167 { |
3523 | 168 std::string type = op.type_name (); |
15466
d174210ce1ec
use ' instead of ` in error messages, warnings and most comments
John W. Eaton <jwe@octave.org>
parents:
14138
diff
changeset
|
169 error ("invalid operand '%s' for unary operator", type.c_str ()); |
777 | 170 } |
171 | |
172 void | |
2086 | 173 gripe_wrong_type_arg_for_binary_op (const octave_value& op) |
777 | 174 { |
3523 | 175 std::string type = op.type_name (); |
15466
d174210ce1ec
use ' instead of ` in error messages, warnings and most comments
John W. Eaton <jwe@octave.org>
parents:
14138
diff
changeset
|
176 error ("invalid operand '%s' for binary operator", type.c_str ()); |
2374 | 177 } |
178 | |
179 void | |
5781 | 180 gripe_implicit_conversion (const char *id, const char *from, const char *to) |
2374 | 181 { |
5781 | 182 warning_with_id (id, "implicit conversion from %s to %s", from, to); |
2374 | 183 } |
184 | |
185 void | |
5781 | 186 gripe_implicit_conversion (const std::string& id, |
10315
57a59eae83cc
untabify src C++ source files
John W. Eaton <jwe@octave.org>
parents:
10160
diff
changeset
|
187 const std::string& from, const std::string& to) |
4452 | 188 { |
5781 | 189 warning_with_id (id.c_str (), |
10315
57a59eae83cc
untabify src C++ source files
John W. Eaton <jwe@octave.org>
parents:
10160
diff
changeset
|
190 "implicit conversion from %s to %s", |
57a59eae83cc
untabify src C++ source files
John W. Eaton <jwe@octave.org>
parents:
10160
diff
changeset
|
191 from.c_str (), to.c_str ()); |
4452 | 192 } |
193 | |
194 void | |
2374 | 195 gripe_divide_by_zero (void) |
196 { | |
5781 | 197 warning_with_id ("Octave:divide-by-zero", "division by zero"); |
5755 | 198 } |
199 | |
8012
63dbb85452cc
fix extern decls in .cc files
John W. Eaton <jwe@octave.org>
parents:
8011
diff
changeset
|
200 void |
5943 | 201 gripe_logical_conversion (void) |
202 { | |
203 warning_with_id ("Octave:logical-conversion", | |
10315
57a59eae83cc
untabify src C++ source files
John W. Eaton <jwe@octave.org>
parents:
10160
diff
changeset
|
204 "value not equal to 1 or 0 converted to logical 1"); |
5943 | 205 } |
206 | |
8012
63dbb85452cc
fix extern decls in .cc files
John W. Eaton <jwe@octave.org>
parents:
8011
diff
changeset
|
207 void |
8579
7e0f36dfefbe
implement octave_value_list using Array
Jaroslav Hajek <highegg@gmail.com>
parents:
8039
diff
changeset
|
208 gripe_invalid_inquiry_subscript (void) |
7e0f36dfefbe
implement octave_value_list using Array
Jaroslav Hajek <highegg@gmail.com>
parents:
8039
diff
changeset
|
209 { |
7e0f36dfefbe
implement octave_value_list using Array
Jaroslav Hajek <highegg@gmail.com>
parents:
8039
diff
changeset
|
210 error ("invalid dimension inquiry of a non-existent value"); |
7e0f36dfefbe
implement octave_value_list using Array
Jaroslav Hajek <highegg@gmail.com>
parents:
8039
diff
changeset
|
211 } |
7e0f36dfefbe
implement octave_value_list using Array
Jaroslav Hajek <highegg@gmail.com>
parents:
8039
diff
changeset
|
212 |
7e0f36dfefbe
implement octave_value_list using Array
Jaroslav Hajek <highegg@gmail.com>
parents:
8039
diff
changeset
|
213 void |
7e0f36dfefbe
implement octave_value_list using Array
Jaroslav Hajek <highegg@gmail.com>
parents:
8039
diff
changeset
|
214 gripe_indexed_cs_list (void) |
7e0f36dfefbe
implement octave_value_list using Array
Jaroslav Hajek <highegg@gmail.com>
parents:
8039
diff
changeset
|
215 { |
7e0f36dfefbe
implement octave_value_list using Array
Jaroslav Hajek <highegg@gmail.com>
parents:
8039
diff
changeset
|
216 error ("a cs-list cannot be further indexed"); |
7e0f36dfefbe
implement octave_value_list using Array
Jaroslav Hajek <highegg@gmail.com>
parents:
8039
diff
changeset
|
217 } |
7e0f36dfefbe
implement octave_value_list using Array
Jaroslav Hajek <highegg@gmail.com>
parents:
8039
diff
changeset
|
218 |
9588
319e2ab9b8ae
warn about the complex comparison ops
Jaroslav Hajek <highegg@gmail.com>
parents:
8920
diff
changeset
|
219 void |
10030
83bb2a78c07d
improve simple assignments error checks and messages
Jaroslav Hajek <highegg@gmail.com>
parents:
9588
diff
changeset
|
220 gripe_nonbraced_cs_list_assignment (void) |
83bb2a78c07d
improve simple assignments error checks and messages
Jaroslav Hajek <highegg@gmail.com>
parents:
9588
diff
changeset
|
221 { |
11590
4ced6b90fffb
style fixes for warning and error messages in source files
John W. Eaton <jwe@octave.org>
parents:
11523
diff
changeset
|
222 error ("invalid assignment to cs-list outside multiple assignment"); |
10030
83bb2a78c07d
improve simple assignments error checks and messages
Jaroslav Hajek <highegg@gmail.com>
parents:
9588
diff
changeset
|
223 } |
83bb2a78c07d
improve simple assignments error checks and messages
Jaroslav Hajek <highegg@gmail.com>
parents:
9588
diff
changeset
|
224 |
83bb2a78c07d
improve simple assignments error checks and messages
Jaroslav Hajek <highegg@gmail.com>
parents:
9588
diff
changeset
|
225 void |
9588
319e2ab9b8ae
warn about the complex comparison ops
Jaroslav Hajek <highegg@gmail.com>
parents:
8920
diff
changeset
|
226 gripe_warn_complex_cmp (void) |
319e2ab9b8ae
warn about the complex comparison ops
Jaroslav Hajek <highegg@gmail.com>
parents:
8920
diff
changeset
|
227 { |
19886
e9a0bd0b125c
Rename 'matlab-incompatible' warning to 'language-extension'.
Carnë Draug <carandraug@octave.org>
parents:
19731
diff
changeset
|
228 warning_with_id ("Octave:language-extension", |
e9a0bd0b125c
Rename 'matlab-incompatible' warning to 'language-extension'.
Carnë Draug <carandraug@octave.org>
parents:
19731
diff
changeset
|
229 "comparing complex numbers is not supported in Matlab"); |
9588
319e2ab9b8ae
warn about the complex comparison ops
Jaroslav Hajek <highegg@gmail.com>
parents:
8920
diff
changeset
|
230 } |
16899
55caca526827
New function to error due to disabled feature during build.
Carnë Draug <carandraug@octave.org>
parents:
16892
diff
changeset
|
231 |
55caca526827
New function to error due to disabled feature during build.
Carnë Draug <carandraug@octave.org>
parents:
16892
diff
changeset
|
232 void |
55caca526827
New function to error due to disabled feature during build.
Carnë Draug <carandraug@octave.org>
parents:
16892
diff
changeset
|
233 gripe_disabled_feature (const std::string& func, const std::string& feature, |
55caca526827
New function to error due to disabled feature during build.
Carnë Draug <carandraug@octave.org>
parents:
16892
diff
changeset
|
234 const std::string& pkg /*="Octave"*/) |
55caca526827
New function to error due to disabled feature during build.
Carnë Draug <carandraug@octave.org>
parents:
16892
diff
changeset
|
235 { |
55caca526827
New function to error due to disabled feature during build.
Carnë Draug <carandraug@octave.org>
parents:
16892
diff
changeset
|
236 error ("%s: support for %s was disabled when %s was built", |
55caca526827
New function to error due to disabled feature during build.
Carnë Draug <carandraug@octave.org>
parents:
16892
diff
changeset
|
237 func.c_str (), feature.c_str (), pkg.c_str ()); |
55caca526827
New function to error due to disabled feature during build.
Carnë Draug <carandraug@octave.org>
parents:
16892
diff
changeset
|
238 } |
19064
9ef10e6a5987
make "file found in path" warnings consistent
John W. Eaton <jwe@octave.org>
parents:
17787
diff
changeset
|
239 |
9ef10e6a5987
make "file found in path" warnings consistent
John W. Eaton <jwe@octave.org>
parents:
17787
diff
changeset
|
240 void |
9ef10e6a5987
make "file found in path" warnings consistent
John W. Eaton <jwe@octave.org>
parents:
17787
diff
changeset
|
241 gripe_data_file_in_path (const std::string& fcn, const std::string& file) |
9ef10e6a5987
make "file found in path" warnings consistent
John W. Eaton <jwe@octave.org>
parents:
17787
diff
changeset
|
242 { |
9ef10e6a5987
make "file found in path" warnings consistent
John W. Eaton <jwe@octave.org>
parents:
17787
diff
changeset
|
243 warning_with_id ("Octave:data-file-in-path", |
9ef10e6a5987
make "file found in path" warnings consistent
John W. Eaton <jwe@octave.org>
parents:
17787
diff
changeset
|
244 "%s: '%s' found by searching load path", |
9ef10e6a5987
make "file found in path" warnings consistent
John W. Eaton <jwe@octave.org>
parents:
17787
diff
changeset
|
245 fcn.c_str (), file.c_str ()); |
9ef10e6a5987
make "file found in path" warnings consistent
John W. Eaton <jwe@octave.org>
parents:
17787
diff
changeset
|
246 } |