Mercurial > octave-nkf
diff libinterp/corefcn/data.cc @ 20617:ba2b07c13913
use new string_value method to handle value extraction errors
* __dispatch__.cc, balance.cc, colloc.cc, conv2.cc, data.cc, debug.cc,
graphics.cc, input.cc, matrix_type.cc, oct-hist.cc, schur.cc,
spparms.cc, symtab.cc, sysdep.cc, toplev.cc, utils.cc:
Use new string_value method.
author | John W. Eaton <jwe@octave.org> |
---|---|
date | Fri, 09 Oct 2015 10:06:39 -0400 |
parents | 780431fc4137 |
children | 5fc798a9b32c |
line wrap: on
line diff
--- a/libinterp/corefcn/data.cc Thu Oct 08 19:00:51 2015 -0400 +++ b/libinterp/corefcn/data.cc Fri Oct 09 10:06:39 2015 -0400 @@ -6641,12 +6641,8 @@ return retval; } - if (! args(2).is_string ()) - { - error ("sort: MODE must be a string"); - return retval; - } - std::string mode = args(2).string_value (); + std::string mode = args(2).string_value ("sort: MODE must be a string"); + if (mode == "ascend") smode = ASCENDING; else if (mode == "descend") @@ -6924,20 +6920,16 @@ // FIXME: shouldn't these modes be scoped inside a class? sortmode smode = UNSORTED; - if (arg.is_string ()) - { - std::string mode = arg.string_value (); - if (mode == "ascending") - smode = ASCENDING; - else if (mode == "descending") - smode = DESCENDING; - else if (mode == "either") - smode = UNSORTED; - else - error ("issorted: MODE must be \"ascending\", \"descending\", or \"either\""); - } + std::string mode = arg.string_value ("issorted: expecting %s argument to be a string", argn); + + if (mode == "ascending") + smode = ASCENDING; + else if (mode == "descending") + smode = DESCENDING; + else if (mode == "either") + smode = UNSORTED; else - error ("issorted: expecting %s argument to be a string", argn); + error ("issorted: MODE must be \"ascending\", \"descending\", or \"either\""); return smode; } @@ -6983,16 +6975,11 @@ if (nargin == 3) smode = get_sort_mode_option (args(2), "third"); - if (args(1).is_string ()) - { - std::string tmp = args(1).string_value (); - if (tmp == "rows") - by_rows = true; - else - smode = get_sort_mode_option (args(1), "second"); - } + std::string tmp = args(1).string_value ("issorted: second argument must be a string"); + if (tmp == "rows") + by_rows = true; else - error ("issorted: second argument must be a string"); + smode = get_sort_mode_option (args(1), "second"); } octave_value arg = args(0);