Mercurial > hg > octave-jordi
changeset 20798:c349d4c91ce2
eliminate return statements after calls to print_usage
* symtab.cc, sysdep.cc, toplev.cc, tsearch.cc, urlwrite.cc,
variables.cc: Eliminate return statements after calls to print_usage.
author | John W. Eaton <jwe@octave.org> |
---|---|
date | Thu, 03 Dec 2015 16:40:05 -0500 |
parents | bb585db6dee2 |
children | fb128aafc322 |
files | libinterp/corefcn/symtab.cc libinterp/corefcn/sysdep.cc libinterp/corefcn/toplev.cc libinterp/corefcn/tsearch.cc libinterp/corefcn/urlwrite.cc libinterp/corefcn/variables.cc |
diffstat | 6 files changed, 263 insertions(+), 328 deletions(-) [+] |
line wrap: on
line diff
--- a/libinterp/corefcn/symtab.cc +++ b/libinterp/corefcn/symtab.cc @@ -1668,6 +1668,9 @@ int nargin = args.length (); + if (nargin > 1) + print_usage (); + if (nargout > 0 || nargin == 0) { switch (Vignore_function_time_stamp) @@ -1699,8 +1702,6 @@ else error ("ignore_function_time_stamp: argument must be one of \"all\", \"system\", or \"none\""); } - else if (nargin > 1) - print_usage (); return retval; } @@ -1752,6 +1753,9 @@ int nargin = args.length (); + if (nargin > 1) + print_usage (); + if (nargin == 0) { symbol_table::dump_functions (octave_stdout); @@ -1764,7 +1768,7 @@ p != lst.end (); p++) symbol_table::dump (octave_stdout, *p); } - else if (nargin == 1) + else { octave_value arg = args(0); @@ -1800,8 +1804,6 @@ symbol_table::dump (octave_stdout, s); } } - else - print_usage (); return retval; } @@ -1814,27 +1816,25 @@ { octave_value retval; - if (args.length () == 1) - { - std::string name = args(0).xstring_value ("__get_cmd_line_function_text__: first argument must be function name"); + if (args.length () != 1) + print_usage (); - octave_value ov = symbol_table::find_cmdline_function (name); + std::string name = args(0).xstring_value ("__get_cmd_line_function_text__: first argument must be function name"); - octave_user_function *f = ov.user_function_value (); + octave_value ov = symbol_table::find_cmdline_function (name); + + octave_user_function *f = ov.user_function_value (); - if (f) - { - std::ostringstream buf; - - tree_print_code tpc (buf); + if (f) + { + std::ostringstream buf; - f->accept (tpc); + tree_print_code tpc (buf); - retval = buf.str (); - } + f->accept (tpc); + + retval = buf.str (); } - else - print_usage (); return retval; } @@ -1847,14 +1847,12 @@ { octave_value retval; - if (args.length () == 2) - { - std::string name = args(0).xstring_value ("set_variable: variable NAME must be a string"); + if (args.length () != 2) + print_usage (); - symbol_table::assign (name, args(1)); - } - else - print_usage (); + std::string name = args(0).xstring_value ("set_variable: variable NAME must be a string"); + + symbol_table::assign (name, args(1)); return retval; } @@ -1863,18 +1861,16 @@ { octave_value retval; - if (args.length () == 1) - { - std::string name = args(0).xstring_value ("variable_value: variable NAME must be a string"); + if (args.length () != 1) + print_usage (); - retval = symbol_table::varval (name); + std::string name = args(0).xstring_value ("variable_value: variable NAME must be a string"); - if (retval.is_undefined ()) - error ("variable_value: '%s' is not a variable in the current scope", - name.c_str ()); - } - else - print_usage (); + retval = symbol_table::varval (name); + + if (retval.is_undefined ()) + error ("variable_value: '%s' is not a variable in the current scope", + name.c_str ()); return retval; }
--- a/libinterp/corefcn/sysdep.cc +++ b/libinterp/corefcn/sysdep.cc @@ -193,27 +193,25 @@ { octave_value retval; - if (args.length () == 1) - { - std::string file = args(0).xstring_value ("__open_with_system_app__: argument must be a filename"); + if (args.length () != 1) + print_usage (); + + std::string file = args(0).xstring_value ("__open_with_system_app__: argument must be a filename"); #if defined (__WIN32__) && ! defined (_POSIX_VERSION) - HINSTANCE status = ShellExecute (0, 0, file.c_str (), 0, 0, - SW_SHOWNORMAL); + HINSTANCE status = ShellExecute (0, 0, file.c_str (), 0, 0, + SW_SHOWNORMAL); - // ShellExecute returns a value greater than 32 if successful. - retval = (reinterpret_cast<ptrdiff_t> (status) > 32); + // ShellExecute returns a value greater than 32 if successful. + retval = (reinterpret_cast<ptrdiff_t> (status) > 32); #else - octave_value_list tmp - = Fsystem (ovl ("xdg-open " + file + " 2> /dev/null", - false, "async"), - 1); + octave_value_list tmp + = Fsystem (ovl ("xdg-open " + file + " 2> /dev/null", + false, "async"), + 1); - retval = (tmp(0).double_value () == 0); + retval = (tmp(0).double_value () == 0); #endif - } - else - print_usage (); return retval; } @@ -614,20 +612,14 @@ @seealso{setenv, unsetenv}\n\ @end deftypefn") { - octave_value retval; - int nargin = args.length (); - if (nargin == 1) - { - std::string name = args(0).string_value (); - - retval = octave_env::getenv (name); - } - else + if (nargin != 1) print_usage (); - return retval; + std::string name = args(0).string_value (); + + return octave_value (octave_env::getenv (name)); } /* @@ -650,18 +642,16 @@ int nargin = args.length (); - if (nargin == 2 || nargin == 1) - { - std::string var = args(0).xstring_value ("setenv: VAR must be a string"); + if (nargin < 1 || nargin > 2) + print_usage (); + + std::string var = args(0).xstring_value ("setenv: VAR must be a string"); - std::string val = (nargin == 2 - ? args(1).xstring_value ("setenv: VALUE must be a string") - : std::string ()); + std::string val = (nargin == 2 + ? args(1).xstring_value ("setenv: VALUE must be a string") + : std::string ()); - octave_env::putenv (var, val); - } - else - print_usage (); + octave_env::putenv (var, val); return retval; } @@ -686,20 +676,14 @@ @seealso{setenv, getenv}\n\ @end deftypefn") { - octave_value retval; - int nargin = args.length (); - if (nargin == 1) - { - std::string tmp = args(0).string_value (); - - retval = gnulib::unsetenv (tmp.c_str ()); - } - else + if (nargin != 1) print_usage (); - return retval; + std::string tmp = args(0).string_value (); + + return octave_value (gnulib::unsetenv (tmp.c_str ())); } /* @@ -785,11 +769,8 @@ int nargin = args.length (); - if (! (nargin == 0 || nargin == 1)) - { - print_usage (); - return retval; - } + if (nargin > 1) + print_usage (); if (nargin == 1) { @@ -836,20 +817,18 @@ { octave_value_list retval; - if (args.length () == 1) - { - double dval = args(0).double_value (); + if (args.length () != 1) + print_usage (); + + double dval = args(0).double_value (); - if (xisnan (dval)) - warning ("sleep: NaN is an invalid delay"); - else - { - Fdrawnow (); - octave_sleep (dval); - } + if (xisnan (dval)) + warning ("sleep: NaN is an invalid delay"); + else + { + Fdrawnow (); + octave_sleep (dval); } - else - print_usage (); return retval; } @@ -876,24 +855,22 @@ { octave_value_list retval; - if (args.length () == 1) - { - double dval = args(0).double_value (); + if (args.length () != 1) + print_usage (); + + double dval = args(0).double_value (); - if (xisnan (dval)) - warning ("usleep: NaN is an invalid delay"); - else - { - Fdrawnow (); + if (xisnan (dval)) + warning ("usleep: NaN is an invalid delay"); + else + { + Fdrawnow (); - int delay = NINT (dval); + int delay = NINT (dval); - if (delay > 0) - octave_usleep (delay); - } + if (delay > 0) + octave_usleep (delay); } - else - print_usage (); return retval; } @@ -975,21 +952,19 @@ int nargin = args.length (); - if (nargin == 1) - { - octave_value arg = args(0); + if (nargin != 1) + print_usage (); - string_vector sv = arg.xall_strings ("tilde_expand: argument must be char or cellstr object"); + octave_value arg = args(0); - sv = file_ops::tilde_expand (sv); + string_vector sv = arg.xall_strings ("tilde_expand: argument must be char or cellstr object"); - if (arg.is_cellstr ()) - retval = Cell (arg.dims (), sv); - else - retval = sv; - } + sv = file_ops::tilde_expand (sv); + + if (arg.is_cellstr ()) + retval = Cell (arg.dims (), sv); else - print_usage (); + retval = sv; return retval; }
--- a/libinterp/corefcn/toplev.cc +++ b/libinterp/corefcn/toplev.cc @@ -1029,112 +1029,110 @@ int nargin = args.length (); - if (nargin > 0 && nargin < 4) - { - bool return_output = (nargin == 1 && nargout > 1); + if (nargin == 0 || nargin > 3) + print_usage (); - system_exec_type type = et_sync; + bool return_output = (nargin == 1 && nargout > 1); - if (nargin == 3) - { - std::string type_str = args(2).xstring_value ("system: TYPE must be a string"); + system_exec_type type = et_sync; - if (type_str == "sync") - type = et_sync; - else if (type_str == "async") - type = et_async; - else - { - error ("system: TYPE must be \"sync\" or \"async\""); - return retval; - } - } + if (nargin == 3) + { + std::string type_str = args(2).xstring_value ("system: TYPE must be a string"); - if (nargin > 1) + if (type_str == "sync") + type = et_sync; + else if (type_str == "async") + type = et_async; + else { - try - { - return_output = args(1).is_true (); - } - catch (octave_execution_exception& e) - { - error (e, "system: RETURN_OUTPUT must be boolean value true or false"); - } - } - - if (return_output && type == et_async) - { - error ("system: can't return output from commands run asynchronously"); + error ("system: TYPE must be \"sync\" or \"async\""); return retval; } + } - std::string cmd_str = args(0).xstring_value ("system: first argument must be a string"); + if (nargin > 1) + { + try + { + return_output = args(1).is_true (); + } + catch (octave_execution_exception& e) + { + error (e, "system: RETURN_OUTPUT must be boolean value true or false"); + } + } + + if (return_output && type == et_async) + { + error ("system: can't return output from commands run asynchronously"); + return retval; + } + + std::string cmd_str = args(0).xstring_value ("system: first argument must be a string"); #if defined (__WIN32__) && ! defined (__CYGWIN__) - // Work around weird double-quote handling on Windows systems. - if (type == et_sync) - cmd_str = "\"" + cmd_str + "\""; + // Work around weird double-quote handling on Windows systems. + if (type == et_sync) + cmd_str = "\"" + cmd_str + "\""; #endif - if (type == et_async) - { - // FIXME: maybe this should go in sysdep.cc? + if (type == et_async) + { + // FIXME: maybe this should go in sysdep.cc? #ifdef HAVE_FORK - pid_t pid = fork (); + pid_t pid = fork (); - if (pid < 0) - error ("system: fork failed -- can't create child process"); - else if (pid == 0) - { - // FIXME: should probably replace this - // call with something portable. + if (pid < 0) + error ("system: fork failed -- can't create child process"); + else if (pid == 0) + { + // FIXME: should probably replace this + // call with something portable. - execl (SHELL_PATH, "sh", "-c", cmd_str.c_str (), - static_cast<void *> (0)); + execl (SHELL_PATH, "sh", "-c", cmd_str.c_str (), + static_cast<void *> (0)); - panic_impossible (); - } - else - retval(0) = pid; + panic_impossible (); + } + else + retval(0) = pid; #elif defined (__WIN32__) - STARTUPINFO si; - PROCESS_INFORMATION pi; - ZeroMemory (&si, sizeof (si)); - ZeroMemory (&pi, sizeof (pi)); - OCTAVE_LOCAL_BUFFER (char, xcmd_str, cmd_str.length ()+1); - strcpy (xcmd_str, cmd_str.c_str ()); + STARTUPINFO si; + PROCESS_INFORMATION pi; + ZeroMemory (&si, sizeof (si)); + ZeroMemory (&pi, sizeof (pi)); + OCTAVE_LOCAL_BUFFER (char, xcmd_str, cmd_str.length ()+1); + strcpy (xcmd_str, cmd_str.c_str ()); - if (! CreateProcess (0, xcmd_str, 0, 0, FALSE, 0, 0, 0, &si, &pi)) - error ("system: CreateProcess failed -- can't create child process"); - else - { - retval(0) = pi.dwProcessId; - CloseHandle (pi.hProcess); - CloseHandle (pi.hThread); - } -#else - error ("system: asynchronous system calls are not supported"); -#endif - } - else if (return_output) - retval = run_command_and_return_output (cmd_str); + if (! CreateProcess (0, xcmd_str, 0, 0, FALSE, 0, 0, 0, &si, &pi)) + error ("system: CreateProcess failed -- can't create child process"); else { - int status = system (cmd_str.c_str ()); - - // The value in status is as returned by waitpid. If - // the process exited normally, extract the actual exit - // status of the command. Otherwise, return 127 as a - // failure code. + retval(0) = pi.dwProcessId; + CloseHandle (pi.hProcess); + CloseHandle (pi.hThread); + } +#else + error ("system: asynchronous system calls are not supported"); +#endif + } + else if (return_output) + retval = run_command_and_return_output (cmd_str); + else + { + int status = system (cmd_str.c_str ()); - if (octave_wait::ifexited (status)) - status = octave_wait::exitstatus (status); + // The value in status is as returned by waitpid. If + // the process exited normally, extract the actual exit + // status of the command. Otherwise, return 127 as a + // failure code. - retval(0) = status; - } + if (octave_wait::ifexited (status)) + status = octave_wait::exitstatus (status); + + retval(0) = status; } - else - print_usage (); return retval; } @@ -1221,27 +1219,24 @@ int nargin = args.length (); - if (nargin == 1 || nargin == 2) - { - std::string arg = args(0).xstring_value ("atexit: FCN argument must be a string"); + if (nargin < 1 || nargin > 2) + print_usage (); - bool add_mode = true; + std::string arg = args(0).xstring_value ("atexit: FCN argument must be a string"); - if (nargin == 2) - add_mode = args(1).xbool_value ("atexit: FLAG argument must be a logical value"); + bool add_mode = (nargin == 2) + ? args(1).xbool_value ("atexit: FLAG argument must be a logical value") + : true; - if (add_mode) - octave_add_atexit_function (arg); - else - { - bool found = octave_remove_atexit_function (arg); + if (add_mode) + octave_add_atexit_function (arg); + else + { + bool found = octave_remove_atexit_function (arg); - if (nargout > 0) - retval(0) = found; - } + if (nargout > 0) + retval(0) = found; } - else - print_usage (); return retval; } @@ -1521,6 +1516,9 @@ int nargin = args.length (); + if (nargin > 1) + print_usage (); + if (nargin == 1) { std::string arg = args(0).string_value (); @@ -1537,10 +1535,8 @@ else error ("octave_config_info: invalid parameter '%s'", arg.c_str ()); } - else if (nargin == 0) + else retval = m; - else - print_usage (); return retval; }
--- a/libinterp/corefcn/tsearch.cc +++ b/libinterp/corefcn/tsearch.cc @@ -70,15 +70,14 @@ @seealso{delaunay, delaunayn}\n\ @end deftypefn") { - const double eps=1.0e-12; + octave_value_list retval; - octave_value_list retval; + const double eps = 1.0e-12; + const int nargin = args.length (); + if (nargin != 5) - { - print_usage (); - return retval; - } + print_usage (); const ColumnVector x (args(0).vector_value ()); const ColumnVector y (args(1).vector_value ());
--- a/libinterp/corefcn/urlwrite.cc +++ b/libinterp/corefcn/urlwrite.cc @@ -340,10 +340,7 @@ // verify arguments if (nargin != 2 && nargin != 4) - { - print_usage (); - return retval; - } + print_usage (); std::string url = args(0).xstring_value ("urlwrite: URL must be a string"); @@ -477,10 +474,7 @@ // verify arguments if (nargin != 1 && nargin != 3) - { - print_usage (); - return retval; - } + print_usage (); std::string url = args(0).xstring_value ("urlread: URL must be a string"); @@ -538,35 +532,25 @@ Undocumented internal function\n\ @end deftypefn") { - octave_value retval; - int nargin = args.length (); - std::string host; - std::string user = "anonymous"; - std::string passwd = ""; if (nargin < 1 || nargin > 3) - { - print_usage (); - return retval; - } - else - { - host = args(0).xstring_value ("__ftp__: HOST must be a string"); + print_usage (); + + std::string host = args(0).xstring_value ("__ftp__: HOST must be a string"); - if (nargin > 1) - user = args(1).xstring_value ("__ftp__: USER must be a string"); + std::string user = (nargin > 1) + ? args(1).xstring_value ("__ftp__: USER must be a string") + : std::string ("anonymous"); - if (nargin > 2) - passwd = args(2).xstring_value ("__ftp__: PASSWD must be a string"); + std::string passwd = (nargin > 2) + ? args(2).xstring_value ("__ftp__: PASSWD must be a string") + : std::string (); - curl_handle ch - = ch_manager::make_curl_handle (host, user, passwd, octave_stdout); + curl_handle ch + = ch_manager::make_curl_handle (host, user, passwd, octave_stdout); - retval = ch.value (); - } - - return retval; + return octave_value (ch.value ()); } DEFUN (__ftp_pwd__, args, ,
--- a/libinterp/corefcn/variables.cc +++ b/libinterp/corefcn/variables.cc @@ -331,10 +331,7 @@ int nargin = args.length (); if (nargin != 1) - { - print_usage (); - return retval; - } + print_usage (); if (! args(0).is_string ()) { @@ -595,24 +592,22 @@ int nargin = args.length (); - if (nargin == 1 || nargin == 2) + if (nargin < 1 || nargin > 2) + print_usage (); + + std::string name = args(0).xstring_value ("exist: NAME must be a string"); + + if (nargin == 2) { - std::string name = args(0).xstring_value ("exist: NAME must be a string"); - - if (nargin == 2) - { - std::string type = args(1).xstring_value ("exist: TYPE must be a string"); - - if (type == "class") - warning ("exist: \"class\" type argument is not implemented"); - - retval = symbol_exist (name, type); - } - else - retval = symbol_exist (name); + std::string type = args(1).xstring_value ("exist: TYPE must be a string"); + + if (type == "class") + warning ("exist: \"class\" type argument is not implemented"); + + retval = symbol_exist (name, type); } else - print_usage (); + retval = symbol_exist (name); return retval; } @@ -951,6 +946,7 @@ nchoices++; int nargin = args.length (); + assert (var < nchoices); if (nargout > 0 || nargin == 0) @@ -1846,18 +1842,14 @@ { octave_value retval; - if (nargout < 2) - { - int argc = args.length () + 1; - - string_vector argv = args.make_argv ("who"); - - retval = do_who (argc, argv, nargout == 1); - } - else + if (nargout > 1) print_usage (); - return retval; + int argc = args.length () + 1; + + string_vector argv = args.make_argv ("who"); + + return do_who (argc, argv, nargout == 1); } DEFUN (whos, args, nargout, @@ -1926,18 +1918,14 @@ { octave_value retval; - if (nargout < 2) - { - int argc = args.length () + 1; - - string_vector argv = args.make_argv ("whos"); - - retval = do_who (argc, argv, nargout == 1, true); - } - else + if (nargout > 1) print_usage (); - return retval; + int argc = args.length () + 1; + + string_vector argv = args.make_argv ("whos"); + + return do_who (argc, argv, nargout == 1, true); } // Defining variables. @@ -2028,17 +2016,15 @@ { octave_value_list retval; - if (args.length () == 0) - { - octave_function *fcn = octave_call_stack::caller (); - - if (fcn) - fcn->lock (); - else - error ("mlock: invalid use outside a function"); - } + if (args.length () != 0) + print_usage (); + + octave_function *fcn = octave_call_stack::caller (); + + if (fcn) + fcn->lock (); else - print_usage (); + error ("mlock: invalid use outside a function"); return retval; } @@ -2055,13 +2041,18 @@ { octave_value_list retval; - if (args.length () == 1) + int nargin = args.length (); + + if (nargin > 1) + print_usage (); + + if (nargin == 1) { std::string name = args(0).xstring_value ("munlock: FCN must be a string"); munlock (name); } - else if (args.length () == 0) + else { octave_function *fcn = octave_call_stack::caller (); @@ -2070,8 +2061,6 @@ else error ("munlock: invalid use outside a function"); } - else - print_usage (); return retval; } @@ -2089,13 +2078,18 @@ { octave_value retval; - if (args.length () == 1) + int nargin = args.length (); + + if (nargin > 1) + print_usage (); + + if (nargin == 1) { std::string name = args(0).xstring_value ("mislocked: FCN must be a string"); retval = mislocked (name); } - else if (args.length () == 0) + else { octave_function *fcn = octave_call_stack::caller (); @@ -2104,8 +2098,6 @@ else error ("mislocked: invalid use outside a function"); } - else - print_usage (); return retval; } @@ -2326,10 +2318,7 @@ do \ { \ if (cond) \ - { \ - print_usage (); \ - return retval; \ - } \ + print_usage (); \ } \ while (0) @@ -2664,16 +2653,12 @@ Return the value of the variable @var{name} directly from the symbol table.\n\ @end deftypefn") { - octave_value retval; - if (args.length () != 1) print_usage (); std::string name = args(0).xstring_value ("__varval__: first argument must be a variable name"); - retval = symbol_table::varval (args(0).string_value ()); - - return retval; + return symbol_table::varval (args(0).string_value ()); } static std::string Vmissing_component_hook;