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);