Mercurial > octave-nkf
comparison 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 |
comparison
equal
deleted
inserted
replaced
20616:fd0efcdb3718 | 20617:ba2b07c13913 |
---|---|
6639 { | 6639 { |
6640 print_usage (); | 6640 print_usage (); |
6641 return retval; | 6641 return retval; |
6642 } | 6642 } |
6643 | 6643 |
6644 if (! args(2).is_string ()) | 6644 std::string mode = args(2).string_value ("sort: MODE must be a string"); |
6645 { | 6645 |
6646 error ("sort: MODE must be a string"); | |
6647 return retval; | |
6648 } | |
6649 std::string mode = args(2).string_value (); | |
6650 if (mode == "ascend") | 6646 if (mode == "ascend") |
6651 smode = ASCENDING; | 6647 smode = ASCENDING; |
6652 else if (mode == "descend") | 6648 else if (mode == "descend") |
6653 smode = DESCENDING; | 6649 smode = DESCENDING; |
6654 else | 6650 else |
6922 // FIXME: we initialize to UNSORTED here to avoid a GCC warning | 6918 // FIXME: we initialize to UNSORTED here to avoid a GCC warning |
6923 // about possibly using sortmode uninitialized. | 6919 // about possibly using sortmode uninitialized. |
6924 // FIXME: shouldn't these modes be scoped inside a class? | 6920 // FIXME: shouldn't these modes be scoped inside a class? |
6925 sortmode smode = UNSORTED; | 6921 sortmode smode = UNSORTED; |
6926 | 6922 |
6927 if (arg.is_string ()) | 6923 std::string mode = arg.string_value ("issorted: expecting %s argument to be a string", argn); |
6928 { | 6924 |
6929 std::string mode = arg.string_value (); | 6925 if (mode == "ascending") |
6930 if (mode == "ascending") | 6926 smode = ASCENDING; |
6931 smode = ASCENDING; | 6927 else if (mode == "descending") |
6932 else if (mode == "descending") | 6928 smode = DESCENDING; |
6933 smode = DESCENDING; | 6929 else if (mode == "either") |
6934 else if (mode == "either") | 6930 smode = UNSORTED; |
6935 smode = UNSORTED; | |
6936 else | |
6937 error ("issorted: MODE must be \"ascending\", \"descending\", or \"either\""); | |
6938 } | |
6939 else | 6931 else |
6940 error ("issorted: expecting %s argument to be a string", argn); | 6932 error ("issorted: MODE must be \"ascending\", \"descending\", or \"either\""); |
6941 | 6933 |
6942 return smode; | 6934 return smode; |
6943 } | 6935 } |
6944 | 6936 |
6945 DEFUN (issorted, args, , | 6937 DEFUN (issorted, args, , |
6981 octave_value mode_arg; | 6973 octave_value mode_arg; |
6982 | 6974 |
6983 if (nargin == 3) | 6975 if (nargin == 3) |
6984 smode = get_sort_mode_option (args(2), "third"); | 6976 smode = get_sort_mode_option (args(2), "third"); |
6985 | 6977 |
6986 if (args(1).is_string ()) | 6978 std::string tmp = args(1).string_value ("issorted: second argument must be a string"); |
6987 { | 6979 if (tmp == "rows") |
6988 std::string tmp = args(1).string_value (); | 6980 by_rows = true; |
6989 if (tmp == "rows") | |
6990 by_rows = true; | |
6991 else | |
6992 smode = get_sort_mode_option (args(1), "second"); | |
6993 } | |
6994 else | 6981 else |
6995 error ("issorted: second argument must be a string"); | 6982 smode = get_sort_mode_option (args(1), "second"); |
6996 } | 6983 } |
6997 | 6984 |
6998 octave_value arg = args(0); | 6985 octave_value arg = args(0); |
6999 | 6986 |
7000 if (by_rows) | 6987 if (by_rows) |