changeset 20856:b3a18c764161

Code sprint 2015: Refactor print_usage() in syscalls.cc to resemble m-files
author Yu Liu <yul.liuiyu@gmail.com>
date Sat, 12 Dec 2015 10:54:20 -0500
parents cdf08aacfd86
children c95b1b6022ba
files libinterp/corefcn/syscalls.cc
diffstat 1 files changed, 204 insertions(+), 241 deletions(-) [+]
line wrap: on
line diff
--- a/libinterp/corefcn/syscalls.cc	Sat Dec 12 13:01:52 2015 -0200
+++ b/libinterp/corefcn/syscalls.cc	Sat Dec 12 10:54:20 2015 -0500
@@ -635,11 +635,10 @@
 
   int nargin = args.length ();
 
-  if (nargin == 0)
-    retval = octave_syscalls::geteuid ();
-  else
+  if (nargin != 0)
     print_usage ();
 
+  retval = octave_syscalls::geteuid ();
   return retval;
 }
 
@@ -654,11 +653,10 @@
 
   int nargin = args.length ();
 
-  if (nargin == 0)
-    retval = octave_syscalls::getuid ();
-  else
+  if (nargin != 0)
     print_usage ();
 
+  retval = octave_syscalls::getuid ();
   return retval;
 }
 
@@ -689,21 +687,19 @@
   retval(1) = std::string ();
   retval(0) = -1;
 
-  if (args.length () == 2)
-    {
-      pid_t pid = args(0).int_value (true);
+  if (args.length () != 2)
+    print_usage ();
 
-      int sig = args(1).int_value (true);
+  pid_t pid = args(0).int_value (true);
 
-      std::string msg;
+  int sig = args(1).int_value (true);
 
-      int status = octave_syscalls::kill (pid, sig, msg);
+  std::string msg;
 
-      retval(1) = msg;
-      retval(0) = status;
-    }
-  else
-    print_usage ();
+  int status = octave_syscalls::kill (pid, sig, msg);
+
+  retval(1) = msg;
+  retval(0) = status;
 
   return retval;
 }
@@ -721,16 +717,14 @@
 {
   octave_value_list retval;
 
-  if (args.length () == 1)
-    {
-      std::string fname = args(0).xstring_value ("lstat: NAME must be a string");
+  if (args.length () != 1)
+    print_usage ();
 
-      file_stat fs (fname, false);
+    std::string fname = args(0).xstring_value ("lstat: NAME must be a string");
 
-      retval = mk_stat_result (fs);
-    }
-  else
-    print_usage ();
+    file_stat fs (fname, false);
+
+    retval = mk_stat_result (fs);
 
   return retval;
 }
@@ -788,30 +782,29 @@
 
   int nargin = args.length ();
 
-  if (nargin == 2)
-    {
-      std::string name = args(0).xstring_value ("mkfifo: FILE must be a string");
-
-      int octal_mode = args(1).xint_value ("mkfifo: MODE must be an integer");
+  if (nargin != 2)
+    print_usage ();
 
-      if (octal_mode < 0)
-        error ("mkfifo: MODE must be a positive integer value");
-      else
-        {
-          int mode = convert (octal_mode, 8, 10);
+  std::string name = args(0).xstring_value ("mkfifo: FILE must be a string");
+
+  int octal_mode = args(1).xint_value ("mkfifo: MODE must be an integer");
 
-          std::string msg;
+  if (octal_mode < 0)
+    error ("mkfifo: MODE must be a positive integer value");
+  else
+    {
+      int mode = convert (octal_mode, 8, 10);
 
-          int status = octave_mkfifo (name, mode, msg);
-
-          retval(0) = status;
+      std::string msg;
 
-          if (status < 0)
-            retval(1) = msg;
-        }
+      int status = octave_mkfifo (name, mode, msg);
+
+      retval(0) = status;
+
+      if (status < 0)
+          retval(1) = msg;
     }
-  else
-    print_usage ();
+
 
   return retval;
 }
@@ -850,34 +843,32 @@
 
   int nargin = args.length ();
 
-  if (nargin == 0)
-    {
-      int fid[2];
+  if (nargin != 0)
+    print_usage ();
 
-      std::string msg;
+  int fid[2];
 
-      int status = octave_syscalls::pipe (fid, msg);
+  std::string msg;
+
+  int status = octave_syscalls::pipe (fid, msg);
 
-      if (status < 0)
-        retval(3) = msg;
-      else
-        {
-          FILE *ifile = fdopen (fid[0], "r");
-          FILE *ofile = fdopen (fid[1], "w");
-
-          octave_stream is = octave_stdiostream::create ("pipe-in", ifile,
-                                                         std::ios::in);
+  if (status < 0)
+    retval(3) = msg;
+  else
+    {
+      FILE *ifile = fdopen (fid[0], "r");
+      FILE *ofile = fdopen (fid[1], "w");
 
-          octave_stream os = octave_stdiostream::create ("pipe-out", ofile,
-                                                         std::ios::out);
+      octave_stream is = octave_stdiostream::create ("pipe-in", ifile,
+                                                       std::ios::in);
 
-          retval(2) = status;
-          retval(1) = octave_stream_list::insert (os);
-          retval(0) = octave_stream_list::insert (is);
-        }
+      octave_stream os = octave_stdiostream::create ("pipe-out", ofile,
+                                                       std::ios::out);
+
+      retval(2) = status;
+      retval(1) = octave_stream_list::insert (os);
+      retval(0) = octave_stream_list::insert (is);
     }
-  else
-    print_usage ();
 
   return retval;
 }
@@ -980,27 +971,25 @@
 {
   octave_value_list retval;
 
-  if (args.length () == 1)
-    {
-      if (args(0).is_scalar_type ())
-        {
-          int fid = octave_stream_list::get_file_number (args(0));
+  if (args.length () != 1)
+    print_usage ();
 
-          file_fstat fs (fid);
+    if (args(0).is_scalar_type ())
+      {
+        int fid = octave_stream_list::get_file_number (args(0));
+
+        file_fstat fs (fid);
 
-          retval = mk_stat_result (fs);
-        }
-      else
-        {
-          std::string fname = args(0).xstring_value ("stat: NAME must be a string");
+        retval = mk_stat_result (fs);
+      }
+    else
+      {
+        std::string fname = args(0).xstring_value ("stat: NAME must be a string");
 
-          file_stat fs (fname);
+        file_stat fs (fname);
 
-          retval = mk_stat_result (fs);
-        }
-    }
-  else
-    print_usage ();
+        retval = mk_stat_result (fs);
+      }
 
   return retval;
 }
@@ -1016,14 +1005,12 @@
 {
   octave_value retval = false;
 
-  if (args.length () == 1)
-    {
-      double mode = args(0).xdouble_value ("S_ISREG: invalid MODE value");
+  if (args.length () != 1)
+    print_usage ();
 
-      retval = file_stat::is_reg (static_cast<mode_t> (mode));
-    }
-  else
-    print_usage ();
+  double mode = args(0).xdouble_value ("S_ISREG: invalid MODE value");
+
+  retval = file_stat::is_reg (static_cast<mode_t> (mode));
 
   return retval;
 }
@@ -1039,14 +1026,12 @@
 {
   octave_value retval = false;
 
-  if (args.length () == 1)
-    {
-      double mode = args(0).xdouble_value ("S_ISDIR: invalid MODE value");
+  if (args.length () != 1)
+    print_usage ();
 
-      retval = file_stat::is_dir (static_cast<mode_t> (mode));
-    }
-  else
-    print_usage ();
+  double mode = args(0).xdouble_value ("S_ISDIR: invalid MODE value");
+
+  retval = file_stat::is_dir (static_cast<mode_t> (mode));
 
   return retval;
 }
@@ -1062,14 +1047,13 @@
 {
   octave_value retval = false;
 
-  if (args.length () == 1)
-    {
-      double mode = args(0).xdouble_value ("S_ISCHR: invalid MODE value");
+  if (args.length () != 1)
+    print_usage ();
 
-      retval = file_stat::is_chr (static_cast<mode_t> (mode));
-    }
-  else
-    print_usage ();
+  double mode = args(0).xdouble_value ("S_ISCHR: invalid MODE value");
+
+  retval = file_stat::is_chr (static_cast<mode_t> (mode));
+
 
   return retval;
 }
@@ -1085,14 +1069,12 @@
 {
   octave_value retval = false;
 
-  if (args.length () == 1)
-    {
-      double mode = args(0).xdouble_value ("S_ISBLK: invalid MODE value");
+  if (args.length () != 1)
+    print_usage ();
 
-      retval = file_stat::is_blk (static_cast<mode_t> (mode));
-    }
-  else
-    print_usage ();
+  double mode = args(0).xdouble_value ("S_ISBLK: invalid MODE value");
+
+  retval = file_stat::is_blk (static_cast<mode_t> (mode));
 
   return retval;
 }
@@ -1108,14 +1090,12 @@
 {
   octave_value retval = false;
 
-  if (args.length () == 1)
-    {
-      double mode = args(0).xdouble_value ("S_ISFIFO: invalid MODE value");
+  if (args.length () != 1)
+    print_usage ();
 
-      retval = file_stat::is_fifo (static_cast<mode_t> (mode));
-    }
-  else
-    print_usage ();
+  double mode = args(0).xdouble_value ("S_ISFIFO: invalid MODE value");
+
+  retval = file_stat::is_fifo (static_cast<mode_t> (mode));
 
   return retval;
 }
@@ -1131,14 +1111,12 @@
 {
   octave_value retval = false;
 
-  if (args.length () == 1)
-    {
-      double mode = args(0).xdouble_value ("S_ISLNK: invalid MODE value");
+  if (args.length () != 1)
+    print_usage ();
 
-      retval = file_stat::is_lnk (static_cast<mode_t> (mode));
-    }
-  else
-    print_usage ();
+  double mode = args(0).xdouble_value ("S_ISLNK: invalid MODE value");
+
+  retval = file_stat::is_lnk (static_cast<mode_t> (mode));
 
   return retval;
 }
@@ -1154,14 +1132,13 @@
 {
   octave_value retval = false;
 
-  if (args.length () == 1)
-    {
-      double mode = args(0).xdouble_value ("S_ISSOCK: invalid MODE value");
+  if (args.length () != 1)
+    print_usage ();
 
-      retval = file_stat::is_sock (static_cast<mode_t> (mode));
-    }
-  else
-    print_usage ();
+  double mode = args(0).xdouble_value ("S_ISSOCK: invalid MODE value");
+
+  retval = file_stat::is_sock (static_cast<mode_t> (mode));
+
 
   return retval;
 }
@@ -1174,11 +1151,11 @@
 {
   octave_value retval;
 
-  if (args.length () == 0)
-    retval = octave_env::get_host_name ();
-  else
+  if (args.length () != 0)
     print_usage ();
 
+  retval = octave_env::get_host_name ();
+
   return retval;
 }
 
@@ -1209,24 +1186,23 @@
 {
   octave_value_list retval;
 
-  if (args.length () == 0)
-    {
-      octave_uname sysinfo;
+  if (args.length () != 0)
+    print_usage ();
 
-      octave_scalar_map m;
+  octave_uname sysinfo;
+
+  octave_scalar_map m;
 
-      m.assign ("sysname", sysinfo.sysname ());
-      m.assign ("nodename", sysinfo.nodename ());
-      m.assign ("release", sysinfo.release ());
-      m.assign ("version", sysinfo.version ());
-      m.assign ("machine", sysinfo.machine ());
+  m.assign ("sysname", sysinfo.sysname ());
+  m.assign ("nodename", sysinfo.nodename ());
+  m.assign ("release", sysinfo.release ());
+  m.assign ("version", sysinfo.version ());
+  m.assign ("machine", sysinfo.machine ());
 
-      retval(2) = sysinfo.message ();
-      retval(1) = sysinfo.error ();
-      retval(0) = m;
-    }
-  else
-    print_usage ();
+  retval(2) = sysinfo.message ();
+  retval(1) = sysinfo.error ();
+  retval(0) = m;
+
 
   return retval;
 }
@@ -1249,19 +1225,18 @@
 
   int nargin = args.length ();
 
-  if (nargin == 1)
-    {
-      std::string name = args(0).xstring_value ("unlink: FILE must be a string");
+  if (nargin != 1)
+    print_usage ();
 
-      std::string msg;
+  std::string name = args(0).xstring_value ("unlink: FILE must be a string");
 
-      int status = octave_unlink (name, msg);
+  std::string msg;
+
+  int status = octave_unlink (name, msg);
 
-      retval(1) = msg;
-      retval(0) = status;
-    }
-  else
-    print_usage ();
+  retval(1) = msg;
+  retval(0) = status;
+
 
   return retval;
 }
@@ -1321,28 +1296,26 @@
 
   int nargin = args.length ();
 
-  if (nargin == 1 || nargin == 2)
-    {
-      pid_t pid = args(0).xint_value ("waitpid: OPTIONS must be an integer");
+  if (nargin != 1 && nargin != 2)
+    print_usage ();
+
+  pid_t pid = args(0).xint_value ("waitpid: OPTIONS must be an integer");
 
-      int options = 0;
+  int options = 0;
 
-      if (args.length () == 2)
-        options = args(1).xint_value ("waitpid: PID must be an integer value");
-
-      std::string msg;
+  if (args.length () == 2)
+    options = args(1).xint_value ("waitpid: PID must be an integer value");
 
-      int status = 0;
+  std::string msg;
 
-      pid_t result = octave_syscalls::waitpid (pid, &status,
-                                               options, msg);
+  int status = 0;
 
-      retval(2) = msg;
-      retval(1) = status;
-      retval(0) = result;
-    }
-  else
-    print_usage ();
+  pid_t result = octave_syscalls::waitpid (pid, &status,
+                                           options, msg);
+
+  retval(2) = msg;
+  retval(1) = status;
+  retval(0) = result;
 
   return retval;
 }
@@ -1357,14 +1330,12 @@
 {
   octave_value retval = false;
 
-  if (args.length () == 1)
-    {
-      int status = args(0).xint_value ("WIFEXITED: STATUS must be an integer");
+  if (args.length () != 1)
+    print_usage ();
 
-      retval = octave_wait::ifexited (status);
-    }
-  else
-    print_usage ();
+  int status = args(0).xint_value ("WIFEXITED: STATUS must be an integer");
+
+  retval = octave_wait::ifexited (status);
 
   return retval;
 }
@@ -1401,14 +1372,13 @@
 {
   octave_value retval = false;
 
-  if (args.length () == 1)
-    {
-      int status = args(0).xint_value ("WIFSIGNALED: STATUS must be an integer");
+  if (args.length () != 1)
+    print_usage ();
 
-      retval = octave_wait::ifsignaled (status);
-    }
-  else
-    print_usage ();
+  int status = args(0).xint_value ("WIFSIGNALED: STATUS must be an integer");
+
+  retval = octave_wait::ifsignaled (status);
+
 
   return retval;
 }
@@ -1425,14 +1395,13 @@
 {
   octave_value retval = 0;
 
-  if (args.length () == 1)
-    {
-      int status = args(0).xint_value ("WTERMSIG: STATUS must be an integer");
+  if (args.length () != 1)
+    print_usage ();
 
-      retval = octave_wait::termsig (status);
-    }
-  else
-    print_usage ();
+  int status = args(0).xint_value ("WTERMSIG: STATUS must be an integer");
+
+  retval = octave_wait::termsig (status);
+
 
   return retval;
 }
@@ -1451,14 +1420,13 @@
 {
   octave_value retval = false;
 
-  if (args.length () == 1)
-    {
-      int status = args(0).xint_value ("WCOREDUMP: STATUS must be an integer");
+  if (args.length () != 1)
+    print_usage ();
 
-      retval = octave_wait::coredump (status);
-    }
-  else
-    print_usage ();
+  int status = args(0).xint_value ("WCOREDUMP: STATUS must be an integer");
+
+  retval = octave_wait::coredump (status);
+
 
   return retval;
 }
@@ -1476,14 +1444,13 @@
 {
   octave_value retval = false;
 
-  if (args.length () == 1)
-    {
-      int status = args(0).xint_value ("WIFSTOPPED: STATUS must be an integer");
+  if (args.length () != 1)
+    print_usage ();
 
-      retval = octave_wait::ifstopped (status);
-    }
-  else
-    print_usage ();
+  int status = args(0).xint_value ("WIFSTOPPED: STATUS must be an integer");
+
+  retval = octave_wait::ifstopped (status);
+
 
   return retval;
 }
@@ -1500,14 +1467,13 @@
 {
   octave_value retval = 0;
 
-  if (args.length () == 1)
-    {
-      int status = args(0).xint_value ("WSTOPSIG: STATUS must be an integer");
+  if (args.length () != 1)
+    print_usage ();
 
-        retval = octave_wait::stopsig (status);
-    }
-  else
-    print_usage ();
+  int status = args(0).xint_value ("WSTOPSIG: STATUS must be an integer");
+
+  retval = octave_wait::stopsig (status);
+
 
   return retval;
 }
@@ -1522,14 +1488,13 @@
 {
   octave_value retval = false;
 
-  if (args.length () == 1)
-    {
-      int status = args(0).xint_value ("WIFCONTINUED: STATUS must be an integer");
+  if (args.length () != 1)
+    print_usage ();
 
-      retval = octave_wait::ifcontinued (status);
-    }
-  else
-    print_usage ();
+  int status = args(0).xint_value ("WIFCONTINUED: STATUS must be an integer");
+
+  retval = octave_wait::ifcontinued (status);
+
 
   return retval;
 }
@@ -1545,19 +1510,18 @@
 {
   octave_value_list retval;
 
-  if (args.length () == 1)
-    {
-      std::string name = args(0).xstring_value ("canonicalize_file_name: NAME must be a string");
-      std::string msg;
+  if (args.length () != 1)
+    print_usage ();
 
-      std::string result = octave_canonicalize_file_name (name, msg);
+  std::string name = args(0).xstring_value ("canonicalize_file_name: NAME must be a string");
+  std::string msg;
 
-      retval(2) = msg;
-      retval(1) = msg.empty () ? 0 : -1;
-      retval(0) = result;
-    }
-  else
-    print_usage ();
+  std::string result = octave_canonicalize_file_name (name, msg);
+
+  retval(2) = msg;
+  retval(1) = msg.empty () ? 0 : -1;
+  retval(0) = result;
+
 
   return retval;
 }
@@ -1569,11 +1533,11 @@
 
   int nargin = args.length ();
 
-  if (nargin == 0)
-    retval = val;
-  else
+  if (nargin != 0)
     print_usage ();
 
+  retval = val;
+
   return retval;
 }
 
@@ -1873,4 +1837,3 @@
 {
   return const_value (args, WCONTINUE);
 }
-