diff libinterp/corefcn/pr-output.cc @ 20939:b17fda023ca6

maint: Use new C++ archetype in more files. Place input validation first in files. Move declaration of retval down in function to be closer to point of usage. Eliminate else clause after if () error. Use "return ovl()" where it makes sense. * find.cc, gammainc.cc, gcd.cc, getgrent.cc, getpwent.cc, givens.cc, graphics.cc, help.cc, hess.cc, hex2num.cc, input.cc, kron.cc, load-path.cc, load-save.cc, lookup.cc, mappers.cc, matrix_type.cc, mgorth.cc, nproc.cc, ordschur.cc, pager.cc, pinv.cc, pr-output.cc, profiler.cc, psi.cc, quad.cc, rcond.cc, regexp.cc, schur.cc, sighandlers.cc, sparse.cc, str2double.cc, strfind.cc, strfns.cc, sub2ind.cc, svd.cc, sylvester.cc, symtab.cc, syscalls.cc, sysdep.cc, time.cc, toplev.cc, tril.cc, tsearch.cc, typecast.cc, urlwrite.cc, utils.cc, variables.cc, __delaunayn__.cc, __eigs__.cc, __glpk__.cc, __magick_read__.cc, __osmesa_print__.cc, __voronoi__.cc, amd.cc, audiodevinfo.cc, audioread.cc, chol.cc, colamd.cc, dmperm.cc, fftw.cc, qr.cc, symbfact.cc, symrcm.cc, ov-bool-mat.cc, ov-cell.cc, ov-class.cc, ov-classdef.cc, ov-fcn-handle.cc, ov-fcn-inline.cc, ov-flt-re-mat.cc, ov-java.cc, ov-null-mat.cc, ov-oncleanup.cc, ov-re-mat.cc, ov-struct.cc, ov-typeinfo.cc, ov-usr-fcn.cc, ov.cc, octave.cc: Use new C++ archetype in more files.
author Rik <rik@octave.org>
date Fri, 18 Dec 2015 15:37:22 -0800
parents 667861ffffab
children 48b2ad5ee801
line wrap: on
line diff
--- a/libinterp/corefcn/pr-output.cc	Fri Dec 18 16:22:53 2015 -0500
+++ b/libinterp/corefcn/pr-output.cc	Fri Dec 18 15:37:22 2015 -0800
@@ -3426,61 +3426,54 @@
 @seealso{format, rat}\n\
 @end deftypefn")
 {
-  octave_value retval;
-
   int nargin = args.length ();
 
   if (nargin < 1 || nargin > 2)
     print_usage ();
 
+  octave_value arg = args(0);
+
+  if (! arg.is_numeric_type ())
+    error ("rats: X must be numeric");
+
   unwind_protect frame;
 
   frame.protect_var (rat_string_len);
 
   rat_string_len = 9;
-
   if (nargin == 2)
     rat_string_len = args(1).nint_value ();
 
-  octave_value arg = args(0);
-
-  if (arg.is_numeric_type ())
+  frame.protect_var (rat_format);
+
+  rat_format = true;
+
+  std::ostringstream buf;
+  arg.print (buf);
+  std::string s = buf.str ();
+
+  std::list<std::string> lst;
+
+  size_t n = 0;
+  size_t s_len = s.length ();
+
+  while (n < s_len)
     {
-      frame.protect_var (rat_format);
-
-      rat_format = true;
-
-      std::ostringstream buf;
-      arg.print (buf);
-      std::string s = buf.str ();
-
-      std::list<std::string> lst;
-
-      size_t n = 0;
-      size_t s_len = s.length ();
-
-      while (n < s_len)
+      size_t m = s.find ('\n',  n);
+
+      if (m == std::string::npos)
         {
-          size_t m = s.find ('\n',  n);
-
-          if (m == std::string::npos)
-            {
-              lst.push_back (s.substr (n));
-              break;
-            }
-          else
-            {
-              lst.push_back (s.substr (n, m - n));
-              n = m + 1;
-            }
+          lst.push_back (s.substr (n));
+          break;
         }
-
-      retval = string_vector (lst);
+      else
+        {
+          lst.push_back (s.substr (n, m - n));
+          n = m + 1;
+        }
     }
-  else
-    error ("rats: X must be numeric");
-
-  return retval;
+
+  return ovl (string_vector (lst));
 }
 
 DEFUN (disp, args, nargout,
@@ -3507,11 +3500,11 @@
 @seealso{fdisp}\n\
 @end deftypefn")
 {
-  octave_value_list retval;
-
   if (args.length () != 1)
     print_usage ();
 
+  octave_value_list retval;
+
   octave_value arg = args(0);
 
   if (nargout == 0)
@@ -3547,8 +3540,6 @@
 @seealso{disp}\n\
 @end deftypefn")
 {
-  octave_value_list retval;
-
   if (args.length () != 2)
     print_usage ();
 
@@ -3565,7 +3556,7 @@
   else
     error ("fdisp: stream FID not open for writing");
 
-  return retval;
+  return octave_value_list ();
 }
 
 /*