changeset 20805:2d6ddb2b157c

eliminate return statements after calls to print_usage * file-io.cc, mappers.cc: Eliminate return statements after calls to print_usage.
author John W. Eaton <jwe@octave.org>
date Fri, 04 Dec 2015 14:53:09 -0500
parents a6eaedd8bd75
children 20975a6f677a
files libinterp/corefcn/file-io.cc libinterp/corefcn/mappers.cc
diffstat 2 files changed, 550 insertions(+), 843 deletions(-) [+]
line wrap: on
line diff
--- a/libinterp/corefcn/file-io.cc	Fri Dec 04 13:16:59 2015 -0500
+++ b/libinterp/corefcn/file-io.cc	Fri Dec 04 14:53:09 2015 -0500
@@ -244,16 +244,10 @@
 @seealso{fopen, fflush, freport}\n\
 @end deftypefn")
 {
-  octave_value retval = -1;
-
-  int nargin = args.length ();
-
-  if (nargin == 1)
-    retval = octave_stream_list::remove (args(0), "fclose");
-  else
+  if (args.length () != 1)
     print_usage ();
 
-  return retval;
+  return octave_value (octave_stream_list::remove (args(0), "fclose"));
 }
 
 DEFUN (fclear, args, ,
@@ -266,18 +260,14 @@
 {
   octave_value retval;
 
-  int nargin = args.length ();
-
-  if (nargin == 1)
-    {
-      int fid = octave_stream_list::get_file_number (args(0));
+  if (args.length () != 1)
+    print_usage ();
 
-      octave_stream os = octave_stream_list::lookup (fid, "fclear");
+  int fid = octave_stream_list::get_file_number (args(0));
 
-      os.clearerr ();
-    }
-  else
-    print_usage ();
+  octave_stream os = octave_stream_list::lookup (fid, "fclear");
+
+  os.clearerr ();
 
   return retval;
 }
@@ -299,29 +289,25 @@
 {
   octave_value retval = -1;
 
-  int nargin = args.length ();
+  if (args.length () != 1)
+    print_usage ();
 
-  if (nargin == 1)
-    {
-      // FIXME: any way to avoid special case for stdout?
-
-      int fid = octave_stream_list::get_file_number (args(0));
+  // FIXME: any way to avoid special case for stdout?
 
-      if (fid == 1)
-        {
-          flush_octave_stdout ();
+  int fid = octave_stream_list::get_file_number (args(0));
 
-          retval = 0;
-        }
-      else
-        {
-          octave_stream os = octave_stream_list::lookup (fid, "fflush");
+  if (fid == 1)
+    {
+      flush_octave_stdout ();
 
-          retval = os.flush ();
-        }
+      retval = 0;
     }
   else
-    print_usage ();
+    {
+      octave_stream os = octave_stream_list::lookup (fid, "fflush");
+
+      retval = os.flush ();
+    }
 
   return retval;
 }
@@ -348,29 +334,27 @@
 
   octave_value_list retval;
 
+  int nargin = args.length ();
+
+  if (nargin < 1 || nargin > 2)
+    print_usage ();
+
   retval(1) = 0;
   retval(0) = -1;
 
-  int nargin = args.length ();
+  octave_stream os = octave_stream_list::lookup (args(0), who);
 
-  if (nargin == 1 || nargin == 2)
-    {
-      octave_stream os = octave_stream_list::lookup (args(0), who);
+  octave_value len_arg = (nargin == 2) ? args(1) : octave_value ();
 
-      octave_value len_arg = (nargin == 2) ? args(1) : octave_value ();
-
-      bool err = false;
+  bool err = false;
 
-      std::string tmp = os.getl (len_arg, err, who);
+  std::string tmp = os.getl (len_arg, err, who);
 
-      if (! err)
-        {
-          retval(1) = tmp.length ();
-          retval(0) = tmp;
-        }
+  if (! err)
+    {
+      retval(1) = tmp.length ();
+      retval(0) = tmp;
     }
-  else
-    print_usage ();
 
   return retval;
 }
@@ -397,29 +381,27 @@
 
   octave_value_list retval;
 
+  int nargin = args.length ();
+
+  if (nargin < 1 || nargin > 2)
+    print_usage ();
+
   retval(1) = 0.0;
   retval(0) = -1.0;
 
-  int nargin = args.length ();
+  octave_stream os = octave_stream_list::lookup (args(0), who);
 
-  if (nargin == 1 || nargin == 2)
-    {
-      octave_stream os = octave_stream_list::lookup (args(0), who);
+  octave_value len_arg = (nargin == 2) ? args(1) : octave_value ();
 
-      octave_value len_arg = (nargin == 2) ? args(1) : octave_value ();
-
-      bool err = false;
+  bool err = false;
 
-      std::string tmp = os.gets (len_arg, err, who);
+  std::string tmp = os.gets (len_arg, err, who);
 
-      if (! err)
-        {
-          retval(1) = tmp.length ();
-          retval(0) = tmp;
-        }
+  if (! err)
+    {
+      retval(1) = tmp.length ();
+      retval(0) = tmp;
     }
-  else
-    print_usage ();
 
   return retval;
 }
@@ -449,21 +431,19 @@
 
   int nargin = args.length ();
 
-  if (nargin == 1 || nargin == 2)
-    {
-      octave_stream os = octave_stream_list::lookup (args(0), who);
+  if (nargin < 1 || nargin > 2)
+    print_usage ();
 
-      octave_value count_arg = (nargin == 2) ? args(1) : octave_value ();
+  octave_stream os = octave_stream_list::lookup (args(0), who);
 
-      bool err = false;
+  octave_value count_arg = (nargin == 2) ? args(1) : octave_value ();
 
-      off_t tmp = os.skipl (count_arg, err, who);
+  bool err = false;
 
-      if (! err)
-        retval = tmp;
-    }
-  else
-    print_usage ();
+  off_t tmp = os.skipl (count_arg, err, who);
+
+  if (! err)
+    retval = tmp;
 
   return retval;
 }
@@ -757,16 +737,12 @@
 
   int result = -1;
 
-  int nargin = args.length ();
+  if (args.length () != 1)
+    print_usage ();
 
-  if (nargin == 1)
-    {
-      octave_stream os = octave_stream_list::lookup (args(0), "frewind");
+  octave_stream os = octave_stream_list::lookup (args(0), "frewind");
 
-      result = os.rewind ();
-    }
-  else
-    print_usage ();
+  result = os.rewind ();
 
   if (nargout > 0)
     retval = result;
@@ -797,17 +773,15 @@
 
   int nargin = args.length ();
 
-  if (nargin == 2 || nargin == 3)
-    {
-      octave_stream os = octave_stream_list::lookup (args(0), "fseek");
+  if (nargin < 2 || nargin > 3)
+    print_usage ();
+
+  octave_stream os = octave_stream_list::lookup (args(0), "fseek");
 
-      octave_value origin_arg = (nargin == 3)
-        ? args(2) : octave_value (-1.0);
+  octave_value origin_arg = (nargin == 3)
+    ? args(2) : octave_value (-1.0);
 
-      retval = os.seek (args(1), origin_arg);
-    }
-  else
-    print_usage ();
+  retval = os.seek (args(1), origin_arg);
 
   return retval;
 }
@@ -822,16 +796,12 @@
 {
   octave_value retval = -1;
 
-  int nargin = args.length ();
+  if (args.length () != 1)
+    print_usage ();
 
-  if (nargin == 1)
-    {
-      octave_stream os = octave_stream_list::lookup (args(0), "ftell");
+  octave_stream os = octave_stream_list::lookup (args(0), "ftell");
 
-      retval = os.tell ();
-    }
-  else
-    print_usage ();
+  retval = os.tell ();
 
   return retval;
 }
@@ -863,40 +833,38 @@
 
   int nargin = args.length ();
 
-  if (nargin > 1 || (nargin > 0 && args(0).is_string ()))
+  if (! (nargin > 1 || (nargin > 0 && args(0).is_string ())))
+    print_usage ();
+
+  octave_stream os;
+  int fmt_n = 0;
+
+  if (args(0).is_string ())
     {
-      octave_stream os;
-      int fmt_n = 0;
+      os = octave_stream_list::lookup (1, who);
+    }
+  else
+    {
+      fmt_n = 1;
+      os = octave_stream_list::lookup (args(0), who);
+    }
 
-      if (args(0).is_string ())
+  if (args(fmt_n).is_string ())
+    {
+      octave_value_list tmp_args;
+
+      if (nargin > 1 + fmt_n)
         {
-          os = octave_stream_list::lookup (1, who);
-        }
-      else
-        {
-          fmt_n = 1;
-          os = octave_stream_list::lookup (args(0), who);
+          tmp_args.resize (nargin-fmt_n-1, octave_value ());
+
+          for (int i = fmt_n + 1; i < nargin; i++)
+            tmp_args(i-fmt_n-1) = args(i);
         }
 
-      if (args(fmt_n).is_string ())
-        {
-          octave_value_list tmp_args;
-
-          if (nargin > 1 + fmt_n)
-            {
-              tmp_args.resize (nargin-fmt_n-1, octave_value ());
-
-              for (int i = fmt_n + 1; i < nargin; i++)
-                tmp_args(i-fmt_n-1) = args(i);
-            }
-
-          result = os.printf (args(fmt_n), tmp_args, who);
-        }
-      else
-        error ("%s: format TEMPLATE must be a string", who.c_str ());
+      result = os.printf (args(fmt_n), tmp_args, who);
     }
   else
-    print_usage ();
+    error ("%s: format TEMPLATE must be a string", who.c_str ());
 
   if (nargout > 0)
     retval = result;
@@ -930,27 +898,25 @@
 
   int nargin = args.length ();
 
-  if (nargin > 0)
+  if (nargin == 0)
+    print_usage ();
+
+  if (args(0).is_string ())
     {
-      if (args(0).is_string ())
-        {
-          octave_value_list tmp_args;
+      octave_value_list tmp_args;
 
-          if (nargin > 1)
-            {
-              tmp_args.resize (nargin-1, octave_value ());
+      if (nargin > 1)
+        {
+          tmp_args.resize (nargin-1, octave_value ());
 
-              for (int i = 1; i < nargin; i++)
-                tmp_args(i-1) = args(i);
-            }
+          for (int i = 1; i < nargin; i++)
+            tmp_args(i-1) = args(i);
+        }
 
-          result = stdout_stream.printf (args(0), tmp_args, who);
-        }
-      else
-        error ("%s: format TEMPLATE must be a string", who.c_str ());
+      result = stdout_stream.printf (args(0), tmp_args, who);
     }
   else
-    print_usage ();
+    error ("%s: format TEMPLATE must be a string", who.c_str ());
 
   if (nargout > 0)
     retval = result;
@@ -974,20 +940,12 @@
 {
   static std::string who = "fputs";
 
-  octave_value retval = -1;
-
-  int nargin = args.length ();
-
-  if (nargin == 2)
-    {
-      octave_stream os = octave_stream_list::lookup (args(0), who);
-
-      retval = os.puts (args(1), who);
-    }
-  else
+  if (args.length () != 2)
     print_usage ();
 
-  return retval;
+  octave_stream os = octave_stream_list::lookup (args(0), who);
+
+  return octave_value (os.puts (args(1), who));
 }
 
 DEFUN (puts, args, ,
@@ -1005,14 +963,10 @@
 {
   static std::string who = "puts";
 
-  octave_value retval = -1;
-
-  if (args.length () == 1)
-    retval = stdout_stream.puts (args(0), who);
-  else
+  if (args.length () != 1)
     print_usage ();
 
-  return retval;
+  return octave_value (stdout_stream.puts (args(0), who));
 }
 
 DEFUN (sprintf, args, ,
@@ -1037,50 +991,48 @@
 
   int nargin = args.length ();
 
-  if (nargin > 0)
-    {
-      retval(2) = -1.0;
-      retval(1) = "unknown error";
-      retval(0) = "";
+  if (nargin == 0)
+    print_usage ();
 
-      octave_ostrstream *ostr = new octave_ostrstream ();
+  retval(2) = -1.0;
+  retval(1) = "unknown error";
+  retval(0) = "";
 
-      octave_stream os (ostr);
+  octave_ostrstream *ostr = new octave_ostrstream ();
+
+  octave_stream os (ostr);
 
-      if (os.is_valid ())
-        {
-          octave_value fmt_arg = args(0);
-
-          if (fmt_arg.is_string ())
-            {
-              octave_value_list tmp_args;
+  if (os.is_valid ())
+    {
+      octave_value fmt_arg = args(0);
 
-              if (nargin > 1)
-                {
-                  tmp_args.resize (nargin-1, octave_value ());
+      if (fmt_arg.is_string ())
+        {
+          octave_value_list tmp_args;
 
-                  for (int i = 1; i < nargin; i++)
-                    tmp_args(i-1) = args(i);
-                }
+          if (nargin > 1)
+            {
+              tmp_args.resize (nargin-1, octave_value ());
 
-              retval(2) = os.printf (fmt_arg, tmp_args, who);
-              retval(1) = os.error ();
+              for (int i = 1; i < nargin; i++)
+                tmp_args(i-1) = args(i);
+            }
 
-              std::string result = ostr->str ();
-              char type = fmt_arg.is_sq_string () ? '\'' : '"';
+          retval(2) = os.printf (fmt_arg, tmp_args, who);
+          retval(1) = os.error ();
 
-              retval(0) = (result.empty ()
-                           ? octave_value (charMatrix (1, 0), type)
-                           : octave_value (result, type));
-            }
-          else
-            error ("%s: format TEMPLATE must be a string", who.c_str ());
+          std::string result = ostr->str ();
+          char type = fmt_arg.is_sq_string () ? '\'' : '"';
+
+          retval(0) = (result.empty ()
+                       ? octave_value (charMatrix (1, 0), type)
+                       : octave_value (result, type));
         }
       else
-        error ("%s: unable to create output buffer", who.c_str ());
+        error ("%s: format TEMPLATE must be a string", who.c_str ());
     }
   else
-    print_usage ();
+    error ("%s: unable to create output buffer", who.c_str ());
 
   return retval;
 }
@@ -1141,6 +1093,9 @@
 
   int nargin = args.length ();
 
+  if (nargin < 2 || nargin > 3)
+    print_usage ();
+
   if (nargin == 3 && args(2).is_string ())
     {
       octave_stream os = octave_stream_list::lookup (args(0), who);
@@ -1156,30 +1111,25 @@
       retval(1) = 0.0;
       retval(0) = Matrix ();
 
-      if (nargin == 2 || nargin == 3)
-        {
-          octave_stream os = octave_stream_list::lookup (args(0), who);
+      octave_stream os = octave_stream_list::lookup (args(0), who);
 
-          if (args(1).is_string ())
-            {
-              octave_idx_type count = 0;
+      if (args(1).is_string ())
+        {
+          octave_idx_type count = 0;
 
-              Array<double> size = (nargin == 3)
-                ? args(2).vector_value ()
-                : Array<double> (dim_vector (1, 1),
-                                 lo_ieee_inf_value ());
-
-              octave_value tmp = os.scanf (args(1), size, count, who);
+          Array<double> size = (nargin == 3)
+            ? args(2).vector_value ()
+            : Array<double> (dim_vector (1, 1),
+                             lo_ieee_inf_value ());
 
-              retval(2) = os.error ();
-              retval(1) = count;
-              retval(0) = tmp;
-            }
-          else
-            error ("%s: format must be a string", who.c_str ());
+          octave_value tmp = os.scanf (args(1), size, count, who);
+
+          retval(2) = os.error ();
+          retval(1) = count;
+          retval(0) = tmp;
         }
       else
-        print_usage ();
+        error ("%s: format must be a string", who.c_str ());
     }
 
   return retval;
@@ -1221,6 +1171,9 @@
 
   int nargin = args.length ();
 
+  if (nargin < 2 || nargin > 3)
+    print_usage ();
+
   if (nargin == 3 && args(2).is_string ())
     {
       std::string data = get_sscanf_data (args(0));
@@ -1239,50 +1192,45 @@
     }
   else
     {
-      if (nargin == 2 || nargin == 3)
-        {
-          retval(3) = -1.0;
-          retval(2) = "unknown error";
-          retval(1) = 0.0;
-          retval(0) = Matrix ();
+      retval(3) = -1.0;
+      retval(2) = "unknown error";
+      retval(1) = 0.0;
+      retval(0) = Matrix ();
+
+      std::string data = get_sscanf_data (args(0));
 
-          std::string data = get_sscanf_data (args(0));
-
-          octave_stream os = octave_istrstream::create (data);
+      octave_stream os = octave_istrstream::create (data);
 
-          if (os.is_valid ())
+      if (os.is_valid ())
+        {
+          if (args(1).is_string ())
             {
-              if (args(1).is_string ())
-                {
-                  octave_idx_type count = 0;
+              octave_idx_type count = 0;
 
-                  Array<double> size = (nargin == 3)
-                    ? args(2).vector_value ()
-                    : Array<double> (dim_vector (1, 1),
-                                     lo_ieee_inf_value ());
+              Array<double> size = (nargin == 3)
+                ? args(2).vector_value ()
+                : Array<double> (dim_vector (1, 1),
+                                 lo_ieee_inf_value ());
 
-                  octave_value tmp = os.scanf (args(1), size, count, who);
+              octave_value tmp = os.scanf (args(1), size, count, who);
 
-                  // FIXME: is this the right thing to do?
-                  // Extract error message first, because getting
-                  // position will clear it.
-                  std::string errmsg = os.error ();
+              // FIXME: is this the right thing to do?
+              // Extract error message first, because getting
+              // position will clear it.
+              std::string errmsg = os.error ();
 
-                  retval(3) = (os.eof () ? data.length () : os.tell ()) + 1;
-                  retval(2) = errmsg;
-                  retval(1) = count;
-                  retval(0) = tmp;
-                }
-              else
-                error ("%s: format TEMPLATE must be a string",
-                       who.c_str ());
+              retval(3) = (os.eof () ? data.length () : os.tell ()) + 1;
+              retval(2) = errmsg;
+              retval(1) = count;
+              retval(0) = tmp;
             }
           else
-            error ("%s: unable to create temporary input buffer",
-                   who.c_str  ());
+            error ("%s: format TEMPLATE must be a string",
+                   who.c_str ());
         }
       else
-        print_usage ();
+        error ("%s: unable to create temporary input buffer",
+               who.c_str  ());
     }
 
   return retval;
@@ -1529,46 +1477,44 @@
 
   int nargin = args.length ();
 
-  if (nargin > 0 && nargin < 6)
-    {
-      retval(1) = -1.0;
-      retval(0) = Matrix ();
+  if (nargin < 1 || nargin > 5)
+    print_usage ();
 
-      octave_stream os = octave_stream_list::lookup (args(0), "fread");
+  retval(1) = -1.0;
+  retval(0) = Matrix ();
+
+  octave_stream os = octave_stream_list::lookup (args(0), "fread");
 
-      octave_value size = lo_ieee_inf_value ();
-      octave_value prec = "uchar";
-      octave_value skip = 0;
-      octave_value arch = "unknown";
+  octave_value size = lo_ieee_inf_value ();
+  octave_value prec = "uchar";
+  octave_value skip = 0;
+  octave_value arch = "unknown";
 
-      int idx = 1;
+  int idx = 1;
 
-      if (nargin > idx && ! args(idx).is_string ())
-        size = args(idx++);
-
-      if (nargin > idx)
-        prec = args(idx++);
+  if (nargin > idx && ! args(idx).is_string ())
+    size = args(idx++);
 
-      if (nargin > idx)
-        skip = args(idx++);
+  if (nargin > idx)
+    prec = args(idx++);
+
+  if (nargin > idx)
+    skip = args(idx++);
 
-      if (nargin > idx)
-        arch = args(idx++);
-      else if (skip.is_string ())
-        {
-          arch = skip;
-          skip = 0;
-        }
+  if (nargin > idx)
+    arch = args(idx++);
+  else if (skip.is_string ())
+    {
+      arch = skip;
+      skip = 0;
+    }
 
-      octave_idx_type count = -1;
-
-      octave_value tmp = do_fread (os, size, prec, skip, arch, count);
+  octave_idx_type count = -1;
 
-      retval(1) = count;
-      retval(0) = tmp;
-    }
-  else
-    print_usage ();
+  octave_value tmp = do_fread (os, size, prec, skip, arch, count);
+
+  retval(1) = count;
+  retval(0) = tmp;
 
   return retval;
 }
@@ -1633,44 +1579,36 @@
 @seealso{fread, fputs, fprintf, fopen}\n\
 @end deftypefn")
 {
-  octave_value retval = -1;
-
   int nargin = args.length ();
 
-  if (nargin > 1 && nargin < 6)
-    {
-      octave_stream os = octave_stream_list::lookup (args(0), "fwrite");
-
-      octave_value prec = "uchar";
-      octave_value skip = 0;
-      octave_value arch = "unknown";
-
-      int idx = 1;
-
-      octave_value data = args(idx++);
-
-      if (nargin > idx)
-        prec = args(idx++);
-
-      if (nargin > idx)
-        skip = args(idx++);
-
-      if (nargin > idx)
-        arch = args(idx++);
-      else if (skip.is_string ())
-        {
-          arch = skip;
-          skip = 0;
-        }
-
-      double status = do_fwrite (os, data, prec, skip, arch);
-
-      retval = status;
-    }
-  else
+  if (nargin < 2 || nargin > 5)
     print_usage ();
 
-  return retval;
+  octave_stream os = octave_stream_list::lookup (args(0), "fwrite");
+
+  octave_value prec = "uchar";
+  octave_value skip = 0;
+  octave_value arch = "unknown";
+
+  int idx = 1;
+
+  octave_value data = args(idx++);
+
+  if (nargin > idx)
+    prec = args(idx++);
+
+  if (nargin > idx)
+    skip = args(idx++);
+
+  if (nargin > idx)
+    arch = args(idx++);
+  else if (skip.is_string ())
+    {
+      arch = skip;
+      skip = 0;
+    }
+
+  return octave_value (do_fwrite (os, data, prec, skip, arch));
 }
 
 DEFUNX ("feof", Ffeof, args, ,
@@ -1685,20 +1623,12 @@
 @seealso{fread, frewind, fseek, fclear, fopen}\n\
 @end deftypefn")
 {
-  octave_value retval = -1;
-
-  int nargin = args.length ();
-
-  if (nargin == 1)
-    {
-      octave_stream os = octave_stream_list::lookup (args(0), "feof");
-
-      retval = os.eof () ? 1.0 : 0.0;
-    }
-  else
+  if (args.length () != 1)
     print_usage ();
 
-  return retval;
+  octave_stream os = octave_stream_list::lookup (args(0), "feof");
+
+  return octave_value (os.eof () ? 1.0 : 0.0);
 }
 
 DEFUNX ("ferror", Fferror, args, ,
@@ -1726,28 +1656,26 @@
 
   int nargin = args.length ();
 
-  if (nargin == 1 || nargin == 2)
-    {
-      octave_stream os = octave_stream_list::lookup (args(0), "ferror");
+  if (nargin < 1 || nargin > 2)
+    print_usage ();
 
-      bool clear = false;
+  octave_stream os = octave_stream_list::lookup (args(0), "ferror");
 
-      if (nargin == 2)
-        {
-          std::string opt = args(1).string_value ();
+  bool clear = false;
 
-          clear = (opt == "clear");
-        }
+  if (nargin == 2)
+    {
+      std::string opt = args(1).string_value ();
 
-      int error_number = 0;
+      clear = (opt == "clear");
+    }
 
-      std::string error_message = os.error (clear, error_number);
+  int error_number = 0;
 
-      retval(1) = error_number;
-      retval(0) = error_message;
-    }
-  else
-    print_usage ();
+  std::string error_message = os.error (clear, error_number);
+
+  retval(1) = error_number;
+  retval(0) = error_message;
 
   return retval;
 }
@@ -1792,30 +1720,26 @@
 {
   octave_value retval = -1;
 
-  int nargin = args.length ();
+  if (args.length () != 2)
+    print_usage ();
 
-  if (nargin == 2)
-    {
-      std::string name = args(0).xstring_value ("popen: COMMAND must be a string");
-      std::string mode = args(1).xstring_value ("popen: MODE must be a string");
-
-      if (mode == "r")
-        {
-          octave_stream ips = octave_iprocstream::create (name);
+  std::string name = args(0).xstring_value ("popen: COMMAND must be a string");
+  std::string mode = args(1).xstring_value ("popen: MODE must be a string");
 
-          retval = octave_stream_list::insert (ips);
-        }
-      else if (mode == "w")
-        {
-          octave_stream ops = octave_oprocstream::create (name);
+  if (mode == "r")
+    {
+      octave_stream ips = octave_iprocstream::create (name);
 
-          retval = octave_stream_list::insert (ops);
-        }
-      else
-        error ("popen: invalid MODE specified");
+      retval = octave_stream_list::insert (ips);
+    }
+  else if (mode == "w")
+    {
+      octave_stream ops = octave_oprocstream::create (name);
+
+      retval = octave_stream_list::insert (ops);
     }
   else
-    print_usage ();
+    error ("popen: invalid MODE specified");
 
   return retval;
 }
@@ -1829,16 +1753,10 @@
 @seealso{fclose, popen}\n\
 @end deftypefn")
 {
-  octave_value retval = -1;
-
-  int nargin = args.length ();
-
-  if (nargin == 1)
-    retval = octave_stream_list::remove (args(0), "pclose");
-  else
+  if (args.length () != 1)
     print_usage ();
 
-  return retval;
+  return octave_value (octave_stream_list::remove (args(0), "pclose"));
 }
 
 DEFUN (tempname, args, ,
@@ -1865,24 +1783,20 @@
 
   int len = args.length ();
 
-  if (len < 3)
-    {
-      std::string dir;
-
-      if (len > 0)
-        dir = args(0).xstring_value ("tempname: DIR must be a string");
-
-      std::string pfx ("oct-");
-
-      if (len > 1)
-        pfx = args(1).xstring_value ("tempname: PREFIX must be a string");
-
-      retval = octave_tempnam (dir, pfx);
-    }
-  else
+  if (len > 2)
     print_usage ();
 
-  return retval;
+  std::string dir;
+
+  if (len > 0)
+    dir = args(0).xstring_value ("tempname: DIR must be a string");
+
+  std::string pfx ("oct-");
+
+  if (len > 1)
+    pfx = args(1).xstring_value ("tempname: PREFIX must be a string");
+
+  return octave_value (octave_tempnam (dir, pfx));
 }
 
 /*
@@ -1950,37 +1864,33 @@
 {
   octave_value_list retval;
 
+  if (args.length () != 0)
+    print_usage ();
+
   retval(1) = std::string ();
   retval(0) = -1;
 
-  int nargin = args.length ();
-
-  if (nargin == 0)
-    {
-      FILE *fid = gnulib::tmpfile ();
+  FILE *fid = gnulib::tmpfile ();
 
-      if (fid)
-        {
-          std::string nm;
+  if (fid)
+    {
+      std::string nm;
 
-          std::ios::openmode md = fopen_mode_to_ios_mode ("w+b");
+      std::ios::openmode md = fopen_mode_to_ios_mode ("w+b");
 
-          octave_stream s = octave_stdiostream::create (nm, fid, md);
-
-          if (s)
-            retval(0) = octave_stream_list::insert (s);
-          else
-            error ("tmpfile: failed to create octave_stdiostream object");
+      octave_stream s = octave_stdiostream::create (nm, fid, md);
 
-        }
+      if (s)
+        retval(0) = octave_stream_list::insert (s);
       else
-        {
-          retval(1) = gnulib::strerror (errno);
-          retval(0) = -1;
-        }
+        error ("tmpfile: failed to create octave_stdiostream object");
+
     }
   else
-    print_usage ();
+    {
+      retval(1) = gnulib::strerror (errno);
+      retval(0) = -1;
+    }
 
   return retval;
 }
@@ -2010,60 +1920,58 @@
 {
   octave_value_list retval;
 
+  int nargin = args.length ();
+
+  if (nargin < 1 || nargin > 2)
+    print_usage ();
+
   retval(2) = std::string ();
   retval(1) = std::string ();
   retval(0) = -1;
 
-  int nargin = args.length ();
+  std::string tmpl8 = args(0).xstring_value ("mkstemp: TEMPLATE argument must be a string");
+
+  OCTAVE_LOCAL_BUFFER (char, tmp, tmpl8.size () + 1);
+  strcpy (tmp, tmpl8.c_str ());
+
+  int fd = gnulib::mkostemp (tmp, O_BINARY);
 
-  if (nargin == 1 || nargin == 2)
+  if (fd < 0)
     {
-      std::string tmpl8 = args(0).xstring_value ("mkstemp: TEMPLATE argument must be a string");
+      retval(2) = gnulib::strerror (errno);
+      retval(0) = fd;
+    }
+  else
+    {
+      const char *fopen_mode = "w+b";
+
+      FILE *fid = fdopen (fd, fopen_mode);
 
-      OCTAVE_LOCAL_BUFFER (char, tmp, tmpl8.size () + 1);
-      strcpy (tmp, tmpl8.c_str ());
+      if (fid)
+        {
+          std::string nm = tmp;
 
-      int fd = gnulib::mkostemp (tmp, O_BINARY);
+          std::ios::openmode md = fopen_mode_to_ios_mode (fopen_mode);
+
+          octave_stream s = octave_stdiostream::create (nm, fid, md);
 
-      if (fd < 0)
-        {
-          retval(2) = gnulib::strerror (errno);
-          retval(0) = fd;
+          if (s)
+            {
+              retval(1) = nm;
+              retval(0) = octave_stream_list::insert (s);
+
+              if (nargin == 2 && args(1).is_true ())
+                mark_for_deletion (nm);
+            }
+          else
+            error ("mkstemp: failed to create octave_stdiostream object");
         }
       else
         {
-          const char *fopen_mode = "w+b";
-
-          FILE *fid = fdopen (fd, fopen_mode);
-
-          if (fid)
-            {
-              std::string nm = tmp;
-
-              std::ios::openmode md = fopen_mode_to_ios_mode (fopen_mode);
-
-              octave_stream s = octave_stdiostream::create (nm, fid, md);
-
-              if (s)
-                {
-                  retval(1) = nm;
-                  retval(0) = octave_stream_list::insert (s);
-
-                  if (nargin == 2 && args(1).is_true ())
-                    mark_for_deletion (nm);
-                }
-              else
-                error ("mkstemp: failed to create octave_stdiostream object");
-            }
-          else
-            {
-              retval(2) = gnulib::strerror (errno);
-              retval(0) = -1;
-            }
+          retval(2) = gnulib::strerror (errno);
+          retval(0) = -1;
         }
     }
-  else
-    print_usage ();
 
   return retval;
 }
@@ -2121,24 +2029,22 @@
 
   int status = 0;
 
-  if (args.length () == 1)
-    {
-      int mask = args(0).xint_value ("umask: MASK must be an integer");
+  if (args.length () != 1)
+    print_usage ();
+
+  int mask = args(0).xint_value ("umask: MASK must be an integer");
 
-      if (mask < 0)
-        {
-          status = -1;
-          error ("umask: MASK must be a positive integer value");
-        }
-      else
-        {
-          int oct_mask = convert (mask, 8, 10);
-
-          status = convert (octave_umask (oct_mask), 10, 8);
-        }
+  if (mask < 0)
+    {
+      status = -1;
+      error ("umask: MASK must be a positive integer value");
     }
   else
-    print_usage ();
+    {
+      int oct_mask = convert (mask, 8, 10);
+
+      status = convert (octave_umask (oct_mask), 10, 8);
+    }
 
   if (status >= 0)
     retval(0) = status;
@@ -2149,16 +2055,10 @@
 static octave_value
 const_value (const char *, const octave_value_list& args, int val)
 {
-  octave_value retval;
-
-  int nargin = args.length ();
-
-  if (nargin == 0)
-    retval = val;
-  else
+  if (args.length () != 0)
     print_usage ();
 
-  return retval;
+  return octave_value (val);
 }
 
 DEFUNX ("P_tmpdir", FP_tmpdir, args, ,
@@ -2174,16 +2074,10 @@
 @seealso{tempdir, tempname, mkstemp, tmpfile}\n\
 @end deftypefn")
 {
-  octave_value retval;
-
-  int nargin = args.length ();
-
-  if (nargin == 0)
-    retval = get_P_tmpdir ();
-  else
+  if (args.length () != 0)
     print_usage ();
 
-  return retval;
+  return octave_value (get_P_tmpdir ());
 }
 
 // NOTE: the values of SEEK_SET, SEEK_CUR, and SEEK_END have to be
@@ -2239,16 +2133,10 @@
 const_value (const char *, const octave_value_list& args,
              const octave_value& val)
 {
-  octave_value retval;
-
-  int nargin = args.length ();
-
-  if (nargin == 0)
-    retval = val;
-  else
+  if (args.length () != 0)
     print_usage ();
 
-  return retval;
+  return octave_value (val);
 }
 
 DEFUNX ("stdin", Fstdin, args, ,
--- a/libinterp/corefcn/mappers.cc	Fri Dec 04 13:16:59 2015 -0500
+++ b/libinterp/corefcn/mappers.cc	Fri Dec 04 14:53:09 2015 -0500
@@ -60,13 +60,10 @@
 @seealso{arg}\n\
 @end deftypefn")
 {
-  octave_value retval;
-  if (args.length () == 1)
-    retval = args(0).abs ();
-  else
+  if (args.length () != 1)
     print_usage ();
 
-  return retval;
+  return octave_value (args(0).abs ());
 }
 
 /*
@@ -93,13 +90,10 @@
 @seealso{cos, acosd}\n\
 @end deftypefn")
 {
-  octave_value retval;
-  if (args.length () == 1)
-    retval = args(0).acos ();
-  else
+  if (args.length () != 1)
     print_usage ();
-
-  return retval;
+  
+  return octave_value (args(0).acos ());
 }
 
 /*
@@ -142,13 +136,10 @@
 @seealso{cosh}\n\
 @end deftypefn")
 {
-  octave_value retval;
-  if (args.length () == 1)
-    retval = args(0).acosh ();
-  else
+  if (args.length () != 1)
     print_usage ();
-
-  return retval;
+  
+  return octave_value (args(0).acosh ());
 }
 
 /*
@@ -184,13 +175,10 @@
 @seealso{arg}\n\
 @end deftypefn")
 {
-  octave_value retval;
-  if (args.length () == 1)
-    retval = args(0).arg ();
-  else
+  if (args.length () != 1)
     print_usage ();
-
-  return retval;
+  
+  return octave_value (args(0).arg ());
 }
 
 DEFUN (arg, args, ,
@@ -219,13 +207,10 @@
 @seealso{abs}\n\
 @end deftypefn")
 {
-  octave_value retval;
-  if (args.length () == 1)
-    retval = args(0).arg ();
-  else
+  if (args.length () != 1)
     print_usage ();
-
-  return retval;
+  
+  return octave_value (args(0).arg ());
 }
 
 /*
@@ -258,13 +243,10 @@
 @seealso{sin, asind}\n\
 @end deftypefn")
 {
-  octave_value retval;
-  if (args.length () == 1)
-    retval = args(0).asin ();
-  else
+  if (args.length () != 1)
     print_usage ();
-
-  return retval;
+  
+  return octave_value (args(0).asin ());
 }
 
 /*
@@ -306,13 +288,10 @@
 @seealso{sinh}\n\
 @end deftypefn")
 {
-  octave_value retval;
-  if (args.length () == 1)
-    retval = args(0).asinh ();
-  else
+  if (args.length () != 1)
     print_usage ();
-
-  return retval;
+  
+  return octave_value (args(0).asinh ());
 }
 
 /*
@@ -337,13 +316,10 @@
 @seealso{tan, atand}\n\
 @end deftypefn")
 {
-  octave_value retval;
-  if (args.length () == 1)
-    retval = args(0).atan ();
-  else
+  if (args.length () != 1)
     print_usage ();
-
-  return retval;
+  
+  return octave_value (args(0).atan ());
 }
 
 /*
@@ -372,13 +348,10 @@
 @seealso{tanh}\n\
 @end deftypefn")
 {
-  octave_value retval;
-  if (args.length () == 1)
-    retval = args(0).atanh ();
-  else
+  if (args.length () != 1)
     print_usage ();
-
-  return retval;
+  
+  return octave_value (args(0).atanh ());
 }
 
 /*
@@ -406,13 +379,10 @@
 @seealso{nthroot}\n\
 @end deftypefn")
 {
-  octave_value retval;
-  if (args.length () == 1)
-    retval = args(0).cbrt ();
-  else
+  if (args.length () != 1)
     print_usage ();
-
-  return retval;
+  
+  return octave_value (args(0).cbrt ());
 }
 
 /*
@@ -448,13 +418,10 @@
 @seealso{floor, round, fix}\n\
 @end deftypefn")
 {
-  octave_value retval;
-  if (args.length () == 1)
-    retval = args(0).ceil ();
-  else
+  if (args.length () != 1)
     print_usage ();
-
-  return retval;
+  
+  return octave_value (args(0).ceil ());
 }
 
 /*
@@ -489,13 +456,10 @@
 @seealso{real, imag}\n\
 @end deftypefn")
 {
-  octave_value retval;
-  if (args.length () == 1)
-    retval = args(0).conj ();
-  else
+  if (args.length () != 1)
     print_usage ();
-
-  return retval;
+  
+  return octave_value (args(0).conj ());
 }
 
 /*
@@ -522,13 +486,10 @@
 @seealso{acos, cosd, cosh}\n\
 @end deftypefn")
 {
-  octave_value retval;
-  if (args.length () == 1)
-    retval = args(0).cos ();
-  else
+  if (args.length () != 1)
     print_usage ();
-
-  return retval;
+  
+  return octave_value (args(0).cos ());
 }
 
 /*
@@ -559,13 +520,10 @@
 @seealso{acosh, sinh, tanh}\n\
 @end deftypefn")
 {
-  octave_value retval;
-  if (args.length () == 1)
-    retval = args(0).cosh ();
-  else
+  if (args.length () != 1)
     print_usage ();
-
-  return retval;
+  
+  return octave_value (args(0).cosh ());
 }
 
 /*
@@ -610,13 +568,10 @@
 @seealso{erfc, erfcx, erfi, dawson, erfinv, erfcinv}\n\
 @end deftypefn")
 {
-  octave_value retval;
-  if (args.length () == 1)
-    retval = args(0).erf ();
-  else
+  if (args.length () != 1)
     print_usage ();
-
-  return retval;
+  
+  return octave_value (args(0).erf ());
 }
 
 /*
@@ -668,13 +623,10 @@
 @seealso{erf, erfc, erfcx, erfi, dawson, erfcinv}\n\
 @end deftypefn")
 {
-  octave_value retval;
-  if (args.length () == 1)
-    retval = args(0).erfinv ();
-  else
+  if (args.length () != 1)
     print_usage ();
-
-  return retval;
+  
+  return octave_value (args(0).erfinv ());
 }
 
 /*
@@ -708,13 +660,10 @@
 @seealso{erfc, erf, erfcx, erfi, dawson, erfinv}\n\
 @end deftypefn")
 {
-  octave_value retval;
-  if (args.length () == 1)
-    retval = args(0).erfcinv ();
-  else
+  if (args.length () != 1)
     print_usage ();
-
-  return retval;
+  
+  return octave_value (args(0).erfcinv ());
 }
 
 /*
@@ -750,13 +699,10 @@
 @seealso{erfcinv, erfcx, erfi, dawson, erf, erfinv}\n\
 @end deftypefn")
 {
-  octave_value retval;
-  if (args.length () == 1)
-    retval = args(0).erfc ();
-  else
+  if (args.length () != 1)
     print_usage ();
-
-  return retval;
+  
+  return octave_value (args(0).erfc ());
 }
 
 /*
@@ -789,13 +735,10 @@
 @seealso{erfc, erf, erfi, dawson, erfinv, erfcinv}\n\
 @end deftypefn")
 {
-  octave_value retval;
-  if (args.length () == 1)
-    retval = args(0).erfcx ();
-  else
+  if (args.length () != 1)
     print_usage ();
-
-  return retval;
+  
+  return octave_value (args(0).erfcx ());
 }
 
 /*
@@ -834,13 +777,10 @@
 @seealso{erfc, erf, erfcx, dawson, erfinv, erfcinv}\n\
 @end deftypefn")
 {
-  octave_value retval;
-  if (args.length () == 1)
-    retval = args(0).erfi ();
-  else
+  if (args.length () != 1)
     print_usage ();
-
-  return retval;
+  
+  return octave_value (args(0).erfi ());
 }
 
 /*
@@ -874,13 +814,10 @@
 @seealso{erfc, erf, erfcx, erfi, erfinv, erfcinv}\n\
 @end deftypefn")
 {
-  octave_value retval;
-  if (args.length () == 1)
-    retval = args(0).dawson ();
-  else
+  if (args.length () != 1)
     print_usage ();
-
-  return retval;
+  
+  return octave_value (args(0).dawson ());
 }
 
 /*
@@ -911,13 +848,10 @@
 @seealso{log}\n\
 @end deftypefn")
 {
-  octave_value retval;
-  if (args.length () == 1)
-    retval = args(0).exp ();
-  else
+  if (args.length () != 1)
     print_usage ();
-
-  return retval;
+  
+  return octave_value (args(0).exp ());
 }
 
 /*
@@ -947,13 +881,10 @@
 @seealso{exp}\n\
 @end deftypefn")
 {
-  octave_value retval;
-  if (args.length () == 1)
-    retval = args(0).expm1 ();
-  else
+  if (args.length () != 1)
     print_usage ();
-
-  return retval;
+  
+  return octave_value (args(0).expm1 ());
 }
 
 /*
@@ -983,13 +914,10 @@
 @seealso{isinf, isnan, isna}\n\
 @end deftypefn")
 {
-  octave_value retval;
-  if (args.length () == 1)
-    retval = args(0).finite ();
-  else
+  if (args.length () != 1)
     print_usage ();
-
-  return retval;
+  
+  return octave_value (args(0).finite ());
 }
 
 /*
@@ -1022,13 +950,10 @@
 @seealso{ceil, floor, round}\n\
 @end deftypefn")
 {
-  octave_value retval;
-  if (args.length () == 1)
-    retval = args(0).fix ();
-  else
+  if (args.length () != 1)
     print_usage ();
-
-  return retval;
+  
+  return octave_value (args(0).fix ());
 }
 
 /*
@@ -1058,13 +983,10 @@
 @seealso{ceil, round, fix}\n\
 @end deftypefn")
 {
-  octave_value retval;
-  if (args.length () == 1)
-    retval = args(0).floor ();
-  else
+  if (args.length () != 1)
     print_usage ();
-
-  return retval;
+  
+  return octave_value (args(0).floor ());
 }
 
 /*
@@ -1110,13 +1032,10 @@
 @seealso{gammainc, gammaln, factorial}\n\
 @end deftypefn")
 {
-  octave_value retval;
-  if (args.length () == 1)
-    retval = args(0).gamma ();
-  else
+  if (args.length () != 1)
     print_usage ();
-
-  return retval;
+  
+  return octave_value (args(0).gamma ());
 }
 
 /*
@@ -1156,13 +1075,10 @@
 @seealso{real, conj}\n\
 @end deftypefn")
 {
-  octave_value retval;
-  if (args.length () == 1)
-    retval = args(0).imag ();
-  else
+  if (args.length () != 1)
     print_usage ();
-
-  return retval;
+  
+  return octave_value (args(0).imag ());
 }
 
 /*
@@ -1190,13 +1106,10 @@
 @seealso{isalpha, isdigit, ispunct, isspace, iscntrl}\n\
 @end deftypefn")
 {
-  octave_value retval;
-  if (args.length () == 1)
-    retval = args(0).xisalnum ();
-  else
+  if (args.length () != 1)
     print_usage ();
-
-  return retval;
+  
+  return octave_value (args(0).xisalnum ());
 }
 
 /*
@@ -1222,13 +1135,10 @@
 @seealso{isdigit, ispunct, isspace, iscntrl, isalnum, islower, isupper}\n\
 @end deftypefn")
 {
-  octave_value retval;
-  if (args.length () == 1)
-    retval = args(0).xisalpha ();
-  else
+  if (args.length () != 1)
     print_usage ();
-
-  return retval;
+  
+  return octave_value (args(0).xisalpha ());
 }
 
 /*
@@ -1251,13 +1161,10 @@
 not.\n\
 @end deftypefn")
 {
-  octave_value retval;
-  if (args.length () == 1)
-    retval = args(0).xisascii ();
-  else
+  if (args.length () != 1)
     print_usage ();
-
-  return retval;
+  
+  return octave_value (args(0).xisascii ());
 }
 
 /*
@@ -1278,13 +1185,10 @@
 @seealso{ispunct, isspace, isalpha, isdigit}\n\
 @end deftypefn")
 {
-  octave_value retval;
-  if (args.length () == 1)
-    retval = args(0).xiscntrl ();
-  else
+  if (args.length () != 1)
     print_usage ();
-
-  return retval;
+  
+  return octave_value (args(0).xiscntrl ());
 }
 
 /*
@@ -1307,13 +1211,10 @@
 @seealso{isxdigit, isalpha, isletter, ispunct, isspace, iscntrl}\n\
 @end deftypefn")
 {
-  octave_value retval;
-  if (args.length () == 1)
-    retval = args(0).xisdigit ();
-  else
+  if (args.length () != 1)
     print_usage ();
-
-  return retval;
+  
+  return octave_value (args(0).xisdigit ());
 }
 
 /*
@@ -1344,13 +1245,10 @@
 @seealso{isfinite, isnan, isna}\n\
 @end deftypefn")
 {
-  octave_value retval;
-  if (args.length () == 1)
-    retval = args(0).isinf ();
-  else
+  if (args.length () != 1)
     print_usage ();
-
-  return retval;
+  
+  return octave_value (args(0).isinf ());
 }
 
 /*
@@ -1379,13 +1277,10 @@
 @seealso{isprint}\n\
 @end deftypefn")
 {
-  octave_value retval;
-  if (args.length () == 1)
-    retval = args(0).xisgraph ();
-  else
+  if (args.length () != 1)
     print_usage ();
-
-  return retval;
+  
+  return octave_value (args(0).xisgraph ());
 }
 
 /*
@@ -1407,13 +1302,10 @@
 @seealso{isupper, isalpha, isletter, isalnum}\n\
 @end deftypefn")
 {
-  octave_value retval;
-  if (args.length () == 1)
-    retval = args(0).xislower ();
-  else
+  if (args.length () != 1)
     print_usage ();
-
-  return retval;
+  
+  return octave_value (args(0).xislower ());
 }
 
 /*
@@ -1444,13 +1336,10 @@
 @seealso{isnan, isinf, isfinite}\n\
 @end deftypefn")
 {
-  octave_value retval;
-  if (args.length () == 1)
-    retval = args(0).isna ();
-  else
+  if (args.length () != 1)
     print_usage ();
-
-  return retval;
+  
+  return octave_value (args(0).isna ());
 }
 
 /*
@@ -1487,13 +1376,10 @@
 @seealso{isna, isinf, isfinite}\n\
 @end deftypefn")
 {
-  octave_value retval;
-  if (args.length () == 1)
-    retval = args(0).isnan ();
-  else
+  if (args.length () != 1)
     print_usage ();
-
-  return retval;
+  
+  return octave_value (args(0).isnan ());
 }
 
 /*
@@ -1522,13 +1408,10 @@
 @seealso{isgraph}\n\
 @end deftypefn")
 {
-  octave_value retval;
-  if (args.length () == 1)
-    retval = args(0).xisprint ();
-  else
+  if (args.length () != 1)
     print_usage ();
-
-  return retval;
+  
+  return octave_value (args(0).xisprint ());
 }
 
 /*
@@ -1550,13 +1433,10 @@
 @seealso{isalpha, isdigit, isspace, iscntrl}\n\
 @end deftypefn")
 {
-  octave_value retval;
-  if (args.length () == 1)
-    retval = args(0).xispunct ();
-  else
+  if (args.length () != 1)
     print_usage ();
-
-  return retval;
+  
+  return octave_value (args(0).xispunct ());
 }
 
 /*
@@ -1582,13 +1462,10 @@
 @seealso{iscntrl, ispunct, isalpha, isdigit}\n\
 @end deftypefn")
 {
-  octave_value retval;
-  if (args.length () == 1)
-    retval = args(0).xisspace ();
-  else
+  if (args.length () != 1)
     print_usage ();
-
-  return retval;
+  
+  return octave_value (args(0).xisspace ());
 }
 
 /*
@@ -1610,13 +1487,10 @@
 @seealso{islower, isalpha, isletter, isalnum}\n\
 @end deftypefn")
 {
-  octave_value retval;
-  if (args.length () == 1)
-    retval = args(0).xisupper ();
-  else
+  if (args.length () != 1)
     print_usage ();
-
-  return retval;
+  
+  return octave_value (args(0).xisupper ());
 }
 
 /*
@@ -1638,13 +1512,10 @@
 @seealso{isdigit}\n\
 @end deftypefn")
 {
-  octave_value retval;
-  if (args.length () == 1)
-    retval = args(0).xisxdigit ();
-  else
+  if (args.length () != 1)
     print_usage ();
-
-  return retval;
+  
+  return octave_value (args(0).xisxdigit ());
 }
 
 /*
@@ -1668,13 +1539,10 @@
 @seealso{gamma, gammainc}\n\
 @end deftypefn")
 {
-  octave_value retval;
-  if (args.length () == 1)
-    retval = args(0).lgamma ();
-  else
+  if (args.length () != 1)
     print_usage ();
-
-  return retval;
+  
+  return octave_value (args(0).lgamma ());
 }
 
 /*
@@ -1722,13 +1590,10 @@
 @seealso{exp, log1p, log2, log10, logspace}\n\
 @end deftypefn")
 {
-  octave_value retval;
-  if (args.length () == 1)
-    retval = args(0).log ();
-  else
+  if (args.length () != 1)
     print_usage ();
-
-  return retval;
+  
+  return octave_value (args(0).log ());
 }
 
 /*
@@ -1749,13 +1614,10 @@
 @seealso{log, log2, logspace, exp}\n\
 @end deftypefn")
 {
-  octave_value retval;
-  if (args.length () == 1)
-    retval = args(0).log10 ();
-  else
+  if (args.length () != 1)
     print_usage ();
-
-  return retval;
+  
+  return octave_value (args(0).log10 ());
 }
 
 /*
@@ -1780,13 +1642,10 @@
 @seealso{log, exp, expm1}\n\
 @end deftypefn")
 {
-  octave_value retval;
-  if (args.length () == 1)
-    retval = args(0).log1p ();
-  else
+  if (args.length () != 1)
     print_usage ();
-
-  return retval;
+  
+  return octave_value (args(0).log1p ());
 }
 
 /*
@@ -1804,13 +1663,10 @@
 @seealso{imag, conj}\n\
 @end deftypefn")
 {
-  octave_value retval;
-  if (args.length () == 1)
-    retval = args(0).real ();
-  else
+  if (args.length () != 1)
     print_usage ();
-
-  return retval;
+  
+  return octave_value (args(0).real ());
 }
 
 /*
@@ -1846,13 +1702,10 @@
 @seealso{ceil, floor, fix, roundb}\n\
 @end deftypefn")
 {
-  octave_value retval;
-  if (args.length () == 1)
-    retval = args(0).round ();
-  else
+  if (args.length () != 1)
     print_usage ();
-
-  return retval;
+  
+  return octave_value (args(0).round ());
 }
 
 /*
@@ -1887,13 +1740,10 @@
 @seealso{round}\n\
 @end deftypefn")
 {
-  octave_value retval;
-  if (args.length () == 1)
-    retval = args(0).roundb ();
-  else
+  if (args.length () != 1)
     print_usage ();
-
-  return retval;
+  
+  return octave_value (args(0).roundb ());
 }
 
 /*
@@ -1950,13 +1800,10 @@
 @seealso{signbit}\n\
 @end deftypefn")
 {
-  octave_value retval;
-  if (args.length () == 1)
-    retval = args(0).signum ();
-  else
+  if (args.length () != 1)
     print_usage ();
-
-  return retval;
+  
+  return octave_value (args(0).signum ());
 }
 
 /*
@@ -1990,16 +1837,12 @@
 @seealso{sign}\n\
 @end deftypefn")
 {
-  octave_value retval;
-  if (args.length () == 1)
-    {
-      retval = args(0).xsignbit ();
-      retval = (retval != 0);
-    }
-  else
+  if (args.length () != 1)
     print_usage ();
 
-  return retval;
+  octave_value tmp = args(0).xsignbit ();
+
+  return octave_value (tmp != 0);
 }
 
 /*
@@ -2024,13 +1867,10 @@
 @seealso{asin, sind, sinh}\n\
 @end deftypefn")
 {
-  octave_value retval;
-  if (args.length () == 1)
-    retval = args(0).sin ();
-  else
+  if (args.length () != 1)
     print_usage ();
-
-  return retval;
+  
+  return octave_value (args(0).sin ());
 }
 
 /*
@@ -2059,13 +1899,10 @@
 @seealso{asinh, cosh, tanh}\n\
 @end deftypefn")
 {
-  octave_value retval;
-  if (args.length () == 1)
-    retval = args(0).sinh ();
-  else
+  if (args.length () != 1)
     print_usage ();
-
-  return retval;
+  
+  return octave_value (args(0).sinh ());
 }
 
 /*
@@ -2094,13 +1931,10 @@
 @seealso{realsqrt, nthroot}\n\
 @end deftypefn")
 {
-  octave_value retval;
-  if (args.length () == 1)
-    retval = args(0).sqrt ();
-  else
+  if (args.length () != 1)
     print_usage ();
-
-  return retval;
+  
+  return octave_value (args(0).sqrt ());
 }
 
 /*
@@ -2125,13 +1959,10 @@
 @seealso{atan, tand, tanh}\n\
 @end deftypefn")
 {
-  octave_value retval;
-  if (args.length () == 1)
-    retval = args(0).tan ();
-  else
+  if (args.length () != 1)
     print_usage ();
-
-  return retval;
+  
+  return octave_value (args(0).tan ());
 }
 
 /*
@@ -2160,13 +1991,10 @@
 @seealso{atanh, sinh, cosh}\n\
 @end deftypefn")
 {
-  octave_value retval;
-  if (args.length () == 1)
-    retval = args(0).tanh ();
-  else
+  if (args.length () != 1)
     print_usage ();
-
-  return retval;
+  
+  return octave_value (args(0).tanh ());
 }
 
 /*
@@ -2201,13 +2029,10 @@
 @seealso{char}\n\
 @end deftypefn")
 {
-  octave_value retval;
-  if (args.length () == 1)
-    retval = args(0).xtoascii ();
-  else
+  if (args.length () != 1)
     print_usage ();
-
-  return retval;
+  
+  return octave_value (args(0).xtoascii ());
 }
 
 /*
@@ -2241,13 +2066,10 @@
 @seealso{toupper}\n\
 @end deftypefn")
 {
-  octave_value retval;
-  if (args.length () == 1)
-    retval = args(0).xtolower ();
-  else
+  if (args.length () != 1)
     print_usage ();
-
-  return retval;
+  
+  return octave_value (args(0).xtolower ());
 }
 
 DEFALIAS (lower, tolower);
@@ -2303,13 +2125,10 @@
 @seealso{tolower}\n\
 @end deftypefn")
 {
-  octave_value retval;
-  if (args.length () == 1)
-    retval = args(0).xtoupper ();
-  else
+  if (args.length () != 1)
     print_usage ();
-
-  return retval;
+  
+  return octave_value (args(0).xtoupper ());
 }
 
 DEFALIAS (upper, toupper);