Refactor C++ code that uses print usage() to resemble m-files: Difference between revisions

From Octave
Jump to navigation Jump to search
(Add file list)
m (Formatting changes)
Line 1: Line 1:
== Introduction ==


The C++ error handling mechanism in core Octave has been changed to use exceptions.  Previously, calling print_usage() or error() in C++ would always return execution to the calling function.  This made it necessary to explicitly use the return keyword to exit a function, or arrange for an if/else tree in the original function so that normal function execution would not continue in the case of an error.  With exceptions, the C++ code may now be written in a manner that closely resembles Octave's own m-file language.
The principal work for this sprint topic is to convert the C++ code to the new syntax.  In general, this means moving the input validation to the start of the function and logically negating the conditional used to test for an error condition.  For a single condition, the condition itself should be reversed rather than just adding the negation operator '!' to the start of the conditional.  For a test with multiple conditions, use DeMorgan's Law ([https://en.wikipedia.org/wiki/Demorgans_law Demorgan's Law]).  In brief, you will need to negate each individual conditional and then change all && to || or vice versa.
==== Example 1 : Single Conditional (rows() from data.cc) ====
{|
!Before !! After
|-
|<pre>
  octave_value retval;
  if (args.length () == 1)
    retval = args(0).rows ();
  else
    print_usage ();
  return retval;
</pre>
|<pre>
  octave_value retval;
  if (args.length () != 1)
    print_usage ();
  retval = args(0).rows ();
  return retval;
</pre>
|}
==== Example 2 : Multiple Conditional (fopen() from file-io.cc) ====
{|
!Before !! After
|-
|<pre>
  if (nargin > 0 && nargin < 4)
    {
      octave_value mode = (nargin == 2 || nargin == 3)
                          ? args(1) : octave_value ("r");
      octave_value arch = (nargin == 3)
                          ? args(2) : octave_value ("native");
      int fid = -1;
      octave_stream os = do_stream_open (args(0), mode, arch, "fopen", fid);
      if (os)
        {
          retval(1) = "";
          retval(0) = octave_stream_list::insert (os);
        }
      else
        {
          int error_number = 0;
          retval(1) = os.error (false, error_number);
          retval(0) = -1.0;
        }
    }
  else
    print_usage ();
</pre>
|<pre>
  if (nargin < 1 || nargin > 4)
    print_usage ();
  octave_value mode = (nargin == 2 || nargin == 3)
                      ? args(1) : octave_value ("r");
  octave_value arch = (nargin == 3)
                      ? args(2) : octave_value ("native");
  int fid = -1;
  octave_stream os = do_stream_open (args(0), mode, arch, "fopen", fid);
  if (os)
    {
      retval(1) = "";
      retval(0) = octave_stream_list::insert (os);
    }
  else
    {
      int error_number = 0;
      retval(1) = os.error (false, error_number);
      retval(0) = -1.0;
    }
</pre>
|}
==== Example 3 : Redundant return statement ====
{|
!Before !! After
|-
|<pre>
  octave_value_list retval;
  int nargin = args.length ();
  // verify arguments
  if (nargin != 2 && nargin != 4)
    {
      print_usage ();
      return retval;
    }
</pre>
|<pre>
  octave_value_list retval;
  int nargin = args.length ();
  // verify arguments
  if (nargin != 2 && nargin != 4)
    print_usage ();
</pre>
|}
== Detailed Instructions ==
The list of files which contain an instance of print_usage() is shown in the Files section of this page.  The actual instances, including line numbers, are shown in the Instances section.  To avoid duplication, sign up for a particular file by editing the Files section of this wiki page and replacing '???' with your name.  When you have edited a file you should verify that everything is okay by executing
<pre>
make all
./run-octave
test FILENAME
</pre>
When that passes, let a Maintainer know so that we can check in the changes.  Also, add the wiki tags <pre><strike> ... </strike></pre> to the Files section to cross the file off the list.  In addition, increment the number of files that were fixed by +1.


== Files ==
== Files ==
Line 7: Line 139:
Total: 125
Total: 125


Fixed: ???
Fixed: 0


{| class="wikitable"
{| class="wikitable"
Line 272: Line 404:
Total: 562
Total: 562


Fixed: ???
Fixed: 0


<pre>
<pre>

Revision as of 20:38, 4 December 2015

Introduction

The C++ error handling mechanism in core Octave has been changed to use exceptions. Previously, calling print_usage() or error() in C++ would always return execution to the calling function. This made it necessary to explicitly use the return keyword to exit a function, or arrange for an if/else tree in the original function so that normal function execution would not continue in the case of an error. With exceptions, the C++ code may now be written in a manner that closely resembles Octave's own m-file language.

The principal work for this sprint topic is to convert the C++ code to the new syntax. In general, this means moving the input validation to the start of the function and logically negating the conditional used to test for an error condition. For a single condition, the condition itself should be reversed rather than just adding the negation operator '!' to the start of the conditional. For a test with multiple conditions, use DeMorgan's Law (Demorgan's Law). In brief, you will need to negate each individual conditional and then change all && to || or vice versa.

Example 1 : Single Conditional (rows() from data.cc)

Before After
  octave_value retval;

  if (args.length () == 1)
    retval = args(0).rows ();
  else
    print_usage ();

  return retval;
  octave_value retval;

  if (args.length () != 1)
    print_usage ();

  retval = args(0).rows ();

  return retval;

Example 2 : Multiple Conditional (fopen() from file-io.cc)

Before After
  if (nargin > 0 && nargin < 4)
    {
      octave_value mode = (nargin == 2 || nargin == 3)
                          ? args(1) : octave_value ("r");

      octave_value arch = (nargin == 3)
                          ? args(2) : octave_value ("native");

      int fid = -1;

      octave_stream os = do_stream_open (args(0), mode, arch, "fopen", fid);

      if (os)
        {
          retval(1) = "";
          retval(0) = octave_stream_list::insert (os);
        }
      else
        {
          int error_number = 0;

          retval(1) = os.error (false, error_number);
          retval(0) = -1.0;
        }
    }
  else
    print_usage ();
  if (nargin < 1 || nargin > 4)
    print_usage ();

  octave_value mode = (nargin == 2 || nargin == 3)
                      ? args(1) : octave_value ("r");

  octave_value arch = (nargin == 3)
                      ? args(2) : octave_value ("native");

  int fid = -1;

  octave_stream os = do_stream_open (args(0), mode, arch, "fopen", fid);

  if (os)
    {
      retval(1) = "";
      retval(0) = octave_stream_list::insert (os);
    }
  else
    {
      int error_number = 0;

      retval(1) = os.error (false, error_number);
      retval(0) = -1.0;
    }

Example 3 : Redundant return statement

Before After
  octave_value_list retval;

  int nargin = args.length ();

  // verify arguments
  if (nargin != 2 && nargin != 4)
    {
      print_usage ();
      return retval;
    }
  octave_value_list retval;

  int nargin = args.length ();

  // verify arguments
  if (nargin != 2 && nargin != 4)
    print_usage ();

Detailed Instructions

The list of files which contain an instance of print_usage() is shown in the Files section of this page. The actual instances, including line numbers, are shown in the Instances section. To avoid duplication, sign up for a particular file by editing the Files section of this wiki page and replacing '???' with your name. When you have edited a file you should verify that everything is okay by executing

make all
./run-octave
test FILENAME

When that passes, let a Maintainer know so that we can check in the changes. Also, add the wiki tags

<strike> ... </strike>

to the Files section to cross the file off the list. In addition, increment the number of files that were fixed by +1.

Files

Start of Sprint

Total: 125

Fixed: 0

Owner File
??? octave-value/ov-type-conv.h
??? corefcn/__contourc__.cc
??? corefcn/__dispatch__.cc
??? corefcn/__dsearchn__.cc
??? corefcn/__ichol__.cc
??? corefcn/__ilu__.cc
??? corefcn/__lin_interpn__.cc
??? corefcn/__qp__.cc
??? corefcn/balance.cc
??? corefcn/besselj.cc
??? corefcn/betainc.cc
??? corefcn/bitfcns.cc
??? corefcn/bsxfun.cc
??? corefcn/cellfun.cc
??? corefcn/colloc.cc
??? corefcn/conv2.cc
??? corefcn/daspk.cc
??? corefcn/dasrt.cc
??? corefcn/dassl.cc
??? corefcn/data.cc
??? corefcn/debug.cc
??? corefcn/defaults.cc
??? corefcn/det.cc
??? corefcn/dirfns.cc
??? corefcn/dlmread.cc
??? corefcn/dot.cc
??? corefcn/eig.cc
??? corefcn/ellipj.cc
??? corefcn/error.cc
??? corefcn/fft.cc
??? corefcn/fft2.cc
??? corefcn/fftn.cc
??? corefcn/file-io.cc
??? corefcn/filter.cc
??? corefcn/find.cc
??? corefcn/gammainc.cc
??? corefcn/gcd.cc
??? corefcn/getgrent.cc
??? corefcn/getpwent.cc
??? corefcn/givens.cc
??? corefcn/graphics.cc
??? corefcn/help.cc
??? corefcn/hess.cc
??? corefcn/hex2num.cc
??? corefcn/input.cc
??? corefcn/inv.cc
??? corefcn/kron.cc
??? corefcn/load-path.cc
??? corefcn/load-save.cc
??? corefcn/lookup.cc
??? corefcn/lsode.cc
??? corefcn/lu.cc
??? corefcn/luinc.cc
??? corefcn/mappers.cc
??? corefcn/matrix_type.cc
??? corefcn/max.cc
??? corefcn/md5sum.cc
??? corefcn/mgorth.cc
??? corefcn/nproc.cc
??? corefcn/ordschur.cc
??? corefcn/pager.cc
??? corefcn/pinv.cc
??? corefcn/pr-output.cc
??? corefcn/profiler.cc
??? corefcn/psi.cc
??? corefcn/quad.cc
??? corefcn/quadcc.cc
??? corefcn/qz.cc
??? corefcn/rand.cc
??? corefcn/rcond.cc
??? corefcn/regexp.cc
??? corefcn/schur.cc
??? corefcn/sighandlers.cc
??? corefcn/sparse.cc
??? corefcn/sqrtm.cc
??? corefcn/str2double.cc
??? corefcn/strfind.cc
??? corefcn/strfns.cc
??? corefcn/sub2ind.cc
??? corefcn/svd.cc
??? corefcn/sylvester.cc
??? corefcn/symtab.cc
??? corefcn/syscalls.cc
??? corefcn/sysdep.cc
??? corefcn/time.cc
??? corefcn/toplev.cc
??? corefcn/tril.cc
??? corefcn/tsearch.cc
??? corefcn/typecast.cc
??? corefcn/urlwrite.cc
??? corefcn/utils.cc
??? corefcn/variables.cc
??? dldfcn/__delaunayn__.cc
??? dldfcn/__eigs__.cc
??? dldfcn/__glpk__.cc
??? dldfcn/__magick_read__.cc
??? dldfcn/__osmesa_print__.cc
??? dldfcn/__voronoi__.cc
??? dldfcn/amd.cc
??? dldfcn/audiodevinfo.cc
??? dldfcn/audioread.cc
??? dldfcn/chol.cc
??? dldfcn/colamd.cc
??? dldfcn/convhulln.cc
??? dldfcn/dmperm.cc
??? dldfcn/fftw.cc
??? dldfcn/qr.cc
??? dldfcn/symbfact.cc
??? dldfcn/symrcm.cc
??? octave-value/ov-bool-mat.cc
??? octave-value/ov-cell.cc
??? octave-value/ov-class.cc
??? octave-value/ov-classdef.cc
??? octave-value/ov-fcn-handle.cc
??? octave-value/ov-fcn-inline.cc
??? octave-value/ov-flt-re-mat.cc
??? octave-value/ov-java.cc
??? octave-value/ov-null-mat.cc
??? octave-value/ov-oncleanup.cc
??? octave-value/ov-re-mat.cc
??? octave-value/ov-struct.cc
??? octave-value/ov-typeinfo.cc
??? octave-value/ov-usr-fcn.cc
??? octave-value/ov.cc
??? octave.cc

Instances

Start of Sprint

Total: 562

Fixed: 0

octave-value/ov-type-conv.h:102:    print_usage (); \
corefcn/__contourc__.cc:325:    print_usage ();
corefcn/__dispatch__.cc:103:    print_usage ();
corefcn/__dsearchn__.cc:48:      print_usage ();
corefcn/__ichol__.cc:206:      print_usage ();
corefcn/__ichol__.cc:460:      print_usage ();
corefcn/__ilu__.cc:144:      print_usage ();
corefcn/__ilu__.cc:484:      print_usage ();
corefcn/__ilu__.cc:962:      print_usage ();
corefcn/__lin_interpn__.cc:282:      print_usage ();
corefcn/__qp__.cc:523:    print_usage ();
corefcn/balance.cc:100:      print_usage ();
corefcn/besselj.cc:312:    print_usage ();
corefcn/besselj.cc:452:    print_usage ();
corefcn/besselj.cc:560:    print_usage ();
corefcn/betainc.cc:244:    print_usage ();
corefcn/betainc.cc:405:    print_usage ();
corefcn/bitfcns.cc:361:    print_usage ();
corefcn/bitfcns.cc:648:    print_usage ();
corefcn/bitfcns.cc:688:      print_usage ();
corefcn/bitfcns.cc:747:      print_usage ();
corefcn/bitfcns.cc:818:      print_usage ();
corefcn/bitfcns.cc:861:    print_usage ();
corefcn/bsxfun.cc:340:    print_usage ();
corefcn/cellfun.cc:421:      print_usage ();
corefcn/cellfun.cc:1173:      print_usage ();
corefcn/cellfun.cc:1862:    print_usage ();
corefcn/cellfun.cc:2196:    print_usage ();
corefcn/cellfun.cc:2437:    print_usage ();
corefcn/cellfun.cc:2488:    print_usage ();
corefcn/colloc.cc:52:      print_usage ();
corefcn/conv2.cc:76:      print_usage ();
corefcn/conv2.cc:107:      print_usage ();
corefcn/conv2.cc:118:          print_usage ();
corefcn/conv2.cc:328:      print_usage ();
corefcn/conv2.cc:343:      print_usage ();
corefcn/daspk.cc:465:    print_usage ();
corefcn/dasrt.cc:379:      print_usage ();
corefcn/dassl.cc:467:    print_usage ();
corefcn/data.cc:107:    print_usage (); \
corefcn/data.cc:266:    print_usage ();
corefcn/data.cc:421:    print_usage ();
corefcn/data.cc:556:    print_usage ();
corefcn/data.cc:698:    print_usage ();
corefcn/data.cc:879:    print_usage ();
corefcn/data.cc:1092:    print_usage (); \
corefcn/data.cc:1163:    print_usage (); \
corefcn/data.cc:1316:    print_usage ();
corefcn/data.cc:1401:    print_usage ();
corefcn/data.cc:1602:    print_usage ();
corefcn/data.cc:2130:    print_usage ();
corefcn/data.cc:2427:    print_usage ();
corefcn/data.cc:2597:    print_usage ();
corefcn/data.cc:2671:    print_usage ();
corefcn/data.cc:2698:    print_usage ();
corefcn/data.cc:2758:    print_usage ();
corefcn/data.cc:2844:    print_usage ();
corefcn/data.cc:2896:    print_usage ();
corefcn/data.cc:2917:    print_usage ();
corefcn/data.cc:2934:    print_usage ();
corefcn/data.cc:2951:    print_usage ();
corefcn/data.cc:3110:    print_usage ();
corefcn/data.cc:3233:    print_usage ();
corefcn/data.cc:3269:    print_usage ();
corefcn/data.cc:3286:    print_usage ();
corefcn/data.cc:3305:    print_usage ();
corefcn/data.cc:3579:    print_usage ();
corefcn/data.cc:3599:    print_usage ();
corefcn/data.cc:3617:    print_usage ();
corefcn/data.cc:3642:    print_usage ();
corefcn/data.cc:3675:    print_usage ();
corefcn/data.cc:3717:    print_usage ();
corefcn/data.cc:3757:    print_usage ();
corefcn/data.cc:3807:    print_usage ();
corefcn/data.cc:3856:    print_usage ();
corefcn/data.cc:3904:    print_usage ();
corefcn/data.cc:5104:      print_usage ();
corefcn/data.cc:5199:      print_usage ();
corefcn/data.cc:5386:    print_usage ();
corefcn/data.cc:5509:      print_usage ();
corefcn/data.cc:5563:    print_usage () ;
corefcn/data.cc:5623:    print_usage ();
corefcn/data.cc:5641:    print_usage ();
corefcn/data.cc:5783:    print_usage ();
corefcn/data.cc:5866:    print_usage ();
corefcn/data.cc:5976:    print_usage ();
corefcn/data.cc:5992:      print_usage ();
corefcn/data.cc:6296:      print_usage ();
corefcn/data.cc:6391:    print_usage ();
corefcn/data.cc:6583:      print_usage ();
corefcn/data.cc:6615:          print_usage ();
corefcn/data.cc:6856:      print_usage ();
corefcn/data.cc:6938:      print_usage ();
corefcn/data.cc:7103:    print_usage ();
corefcn/data.cc:7185:    print_usage ();
corefcn/data.cc:7289:    print_usage ();
corefcn/data.cc:7394:    print_usage ();
corefcn/data.cc:7562:    print_usage ();
corefcn/data.cc:7731:    print_usage ();
corefcn/data.cc:7896:    print_usage ();
corefcn/data.cc:7914:    print_usage ();
corefcn/data.cc:8017:    print_usage ();
corefcn/debug.cc:1182:    print_usage ();
corefcn/debug.cc:1389:        print_usage ();
corefcn/debug.cc:1451:        print_usage ();
corefcn/debug.cc:1478:        print_usage ();
corefcn/debug.cc:1498:    print_usage ();
corefcn/debug.cc:1526:    print_usage ();
corefcn/defaults.cc:592:    print_usage ();
corefcn/defaults.cc:616:    print_usage ();
corefcn/defun.cc:51:print_usage (void)
corefcn/defun.cc:55:    print_usage (cur->name ());
corefcn/defun.cc:61:print_usage (const std::string& name)
corefcn/det.cc:73:      print_usage ();
corefcn/dirfns.cc:203:    print_usage ();
corefcn/dirfns.cc:282:    print_usage ();
corefcn/dirfns.cc:354:    print_usage ();
corefcn/dirfns.cc:391:    print_usage ();
corefcn/dirfns.cc:428:    print_usage ();
corefcn/dirfns.cc:468:    print_usage ();
corefcn/dirfns.cc:505:    print_usage ();
corefcn/dirfns.cc:572:    print_usage ();
corefcn/dirfns.cc:638:    print_usage ();
corefcn/dirfns.cc:669:    print_usage ();
corefcn/dirfns.cc:709:    print_usage ();
corefcn/dlmread.cc:207:      print_usage ();
corefcn/dot.cc:130:      print_usage ();
corefcn/dot.cc:304:      print_usage ();
corefcn/eig.cc:59:      print_usage ();
corefcn/ellipj.cc:77:      print_usage ();
corefcn/error.cc:898:    print_usage ();
corefcn/error.cc:1171:    print_usage ();
corefcn/error.cc:1950:    print_usage ();
corefcn/error.cc:1995:    print_usage ();
corefcn/error.cc:2040:    print_usage ();
corefcn/fft.cc:51:      print_usage ();
corefcn/fft2.cc:53:      print_usage ();
corefcn/fftn.cc:52:      print_usage ();
corefcn/file-io.cc:254:    print_usage ();
corefcn/file-io.cc:280:    print_usage ();
corefcn/file-io.cc:324:    print_usage ();
corefcn/file-io.cc:373:    print_usage ();
corefcn/file-io.cc:422:    print_usage ();
corefcn/file-io.cc:466:    print_usage ();
corefcn/file-io.cc:704:    print_usage ();
corefcn/file-io.cc:769:    print_usage ();
corefcn/file-io.cc:810:    print_usage ();
corefcn/file-io.cc:834:    print_usage ();
corefcn/file-io.cc:899:    print_usage ();
corefcn/file-io.cc:953:    print_usage ();
corefcn/file-io.cc:988:    print_usage ();
corefcn/file-io.cc:1013:    print_usage ();
corefcn/file-io.cc:1083:    print_usage ();
corefcn/file-io.cc:1182:        print_usage ();
corefcn/file-io.cc:1285:        print_usage ();
corefcn/file-io.cc:1571:    print_usage ();
corefcn/file-io.cc:1671:    print_usage ();
corefcn/file-io.cc:1699:    print_usage ();
corefcn/file-io.cc:1750:    print_usage ();
corefcn/file-io.cc:1818:    print_usage ();
corefcn/file-io.cc:1839:    print_usage ();
corefcn/file-io.cc:1883:    print_usage ();
corefcn/file-io.cc:1983:    print_usage ();
corefcn/file-io.cc:2066:    print_usage ();
corefcn/file-io.cc:2141:    print_usage ();
corefcn/file-io.cc:2159:    print_usage ();
corefcn/file-io.cc:2184:    print_usage ();
corefcn/file-io.cc:2249:    print_usage ();
corefcn/filter.cc:401:      print_usage ();
corefcn/find.cc:392:      print_usage ();
corefcn/gammainc.cc:99:    print_usage ();
corefcn/gcd.cc:505:    print_usage ();
corefcn/getgrent.cc:89:    print_usage ();
corefcn/getgrent.cc:128:    print_usage ();
corefcn/getgrent.cc:160:    print_usage ();
corefcn/getgrent.cc:187:    print_usage ();
corefcn/getgrent.cc:214:    print_usage ();
corefcn/getpwent.cc:93:    print_usage ();
corefcn/getpwent.cc:132:    print_usage ();
corefcn/getpwent.cc:164:    print_usage ();
corefcn/getpwent.cc:191:    print_usage ();
corefcn/getpwent.cc:218:    print_usage ();
corefcn/givens.cc:83:      print_usage ();
corefcn/graphics.cc:9596:    print_usage ();
corefcn/graphics.cc:9646:    print_usage ();
corefcn/graphics.cc:9669:    print_usage ();
corefcn/graphics.cc:9977:    print_usage ();
corefcn/graphics.cc:10108:    print_usage ();
corefcn/graphics.cc:10180:    print_usage ();
corefcn/graphics.cc:10345:    print_usage ();
corefcn/graphics.cc:10358:    print_usage (); \
corefcn/graphics.cc:10417:    print_usage ();
corefcn/graphics.cc:10580:    print_usage ();
corefcn/graphics.cc:10625:    print_usage ();
corefcn/graphics.cc:10693:    print_usage ();
corefcn/graphics.cc:10727:    print_usage ();
corefcn/graphics.cc:10852:    print_usage ();
corefcn/graphics.cc:11041:        print_usage ();
corefcn/graphics.cc:11113:    print_usage ();
corefcn/graphics.cc:11182:    print_usage ();
corefcn/graphics.cc:11292:    print_usage ();
corefcn/graphics.cc:11683:    print_usage ();
corefcn/graphics.cc:11702:      print_usage ();
corefcn/help.cc:1107:    print_usage ();
corefcn/help.cc:1172:    print_usage ();
corefcn/help.cc:1325:    print_usage ();
corefcn/hess.cc:73:      print_usage ();
corefcn/hex2num.cc:72:    print_usage ();
corefcn/hex2num.cc:225:    print_usage ();
corefcn/input.cc:814:    print_usage ();
corefcn/input.cc:867:    print_usage ();
corefcn/input.cc:950:    print_usage ();
corefcn/input.cc:1013:          print_usage ();
corefcn/input.cc:1029:          print_usage ();
corefcn/input.cc:1034:      print_usage ();
corefcn/input.cc:1165:    print_usage ();
corefcn/input.cc:1211:    print_usage ();
corefcn/input.cc:1231:    print_usage ();
corefcn/input.cc:1288:    print_usage ();
corefcn/input.cc:1326:    print_usage ();
corefcn/input.cc:1483:    print_usage ();
corefcn/input.cc:1503:    print_usage ();
corefcn/inv.cc:67:      print_usage ();
corefcn/kron.cc:280:    print_usage ();
corefcn/load-path.cc:2270:    print_usage ();
corefcn/load-path.cc:2491:    print_usage ();
corefcn/load-path.cc:2549:    print_usage ();
corefcn/load-save.cc:719:          print_usage ();
corefcn/load-save.cc:1624:      print_usage ();
corefcn/load-save.cc:1664:      print_usage ();
corefcn/lookup.cc:247:      print_usage ();
corefcn/lookup.cc:370:    print_usage ();
corefcn/lsode.cc:443:    print_usage ();
corefcn/lu.cc:153:      print_usage ();
corefcn/lu.cc:639:      print_usage ();
corefcn/luinc.cc:105:    print_usage ();
corefcn/mappers.cc:67:    print_usage ();
corefcn/mappers.cc:100:    print_usage ();
corefcn/mappers.cc:149:    print_usage ();
corefcn/mappers.cc:191:    print_usage ();
corefcn/mappers.cc:226:    print_usage ();
corefcn/mappers.cc:265:    print_usage ();
corefcn/mappers.cc:313:    print_usage ();
corefcn/mappers.cc:344:    print_usage ();
corefcn/mappers.cc:379:    print_usage ();
corefcn/mappers.cc:413:    print_usage ();
corefcn/mappers.cc:455:    print_usage ();
corefcn/mappers.cc:496:    print_usage ();
corefcn/mappers.cc:529:    print_usage ();
corefcn/mappers.cc:566:    print_usage ();
corefcn/mappers.cc:617:    print_usage ();
corefcn/mappers.cc:675:    print_usage ();
corefcn/mappers.cc:715:    print_usage ();
corefcn/mappers.cc:757:    print_usage ();
corefcn/mappers.cc:796:    print_usage ();
corefcn/mappers.cc:841:    print_usage ();
corefcn/mappers.cc:881:    print_usage ();
corefcn/mappers.cc:918:    print_usage ();
corefcn/mappers.cc:954:    print_usage ();
corefcn/mappers.cc:990:    print_usage ();
corefcn/mappers.cc:1029:    print_usage ();
corefcn/mappers.cc:1065:    print_usage ();
corefcn/mappers.cc:1117:    print_usage ();
corefcn/mappers.cc:1163:    print_usage ();
corefcn/mappers.cc:1197:    print_usage ();
corefcn/mappers.cc:1229:    print_usage ();
corefcn/mappers.cc:1258:    print_usage ();
corefcn/mappers.cc:1285:    print_usage ();
corefcn/mappers.cc:1314:    print_usage ();
corefcn/mappers.cc:1351:    print_usage ();
corefcn/mappers.cc:1386:    print_usage ();
corefcn/mappers.cc:1414:    print_usage ();
corefcn/mappers.cc:1451:    print_usage ();
corefcn/mappers.cc:1494:    print_usage ();
corefcn/mappers.cc:1529:    print_usage ();
corefcn/mappers.cc:1557:    print_usage ();
corefcn/mappers.cc:1589:    print_usage ();
corefcn/mappers.cc:1617:    print_usage ();
corefcn/mappers.cc:1645:    print_usage ();
corefcn/mappers.cc:1675:    print_usage ();
corefcn/mappers.cc:1729:    print_usage ();
corefcn/mappers.cc:1756:    print_usage ();
corefcn/mappers.cc:1787:    print_usage ();
corefcn/mappers.cc:1811:    print_usage ();
corefcn/mappers.cc:1853:    print_usage ();
corefcn/mappers.cc:1894:    print_usage ();
corefcn/mappers.cc:1957:    print_usage ();
corefcn/mappers.cc:2000:    print_usage ();
corefcn/mappers.cc:2031:    print_usage ();
corefcn/mappers.cc:2066:    print_usage ();
corefcn/mappers.cc:2101:    print_usage ();
corefcn/mappers.cc:2132:    print_usage ();
corefcn/mappers.cc:2167:    print_usage ();
corefcn/mappers.cc:2208:    print_usage ();
corefcn/mappers.cc:2248:    print_usage ();
corefcn/mappers.cc:2310:    print_usage ();
corefcn/matrix_type.cc:126:    print_usage ();
corefcn/max.cc:408:    print_usage ();
corefcn/max.cc:956:    print_usage ();
corefcn/md5sum.cc:53:    print_usage ();
corefcn/mgorth.cc:76:      print_usage ();
corefcn/nproc.cc:58:      print_usage ();
corefcn/ordschur.cc:115:      print_usage ();
corefcn/pager.cc:582:      print_usage ();
corefcn/pager.cc:640:    print_usage ();
corefcn/pinv.cc:63:      print_usage ();
corefcn/pr-output.cc:3433:    print_usage ();
corefcn/pr-output.cc:3529:    print_usage ();
corefcn/pr-output.cc:3575:    print_usage ();
corefcn/profiler.cc:411:          print_usage ();
corefcn/psi.cc:73:      print_usage ();
corefcn/quad.cc:413:    print_usage ();
corefcn/quadcc.cc:1592:      print_usage ();
corefcn/qz.cc:387:      print_usage ();
corefcn/rand.cc:1237:    print_usage ();
corefcn/rcond.cc:53:    print_usage ();
corefcn/regexp.cc:863:    print_usage ();
corefcn/regexp.cc:1158:    print_usage ();
corefcn/regexp.cc:1392:      print_usage ();
corefcn/schur.cc:137:      print_usage ();
corefcn/schur.cc:334:    print_usage ();
corefcn/sighandlers.cc:1064:    print_usage ();
corefcn/sparse.cc:53:      print_usage ();
corefcn/sparse.cc:192:        print_usage ();
corefcn/sparse.cc:280:    print_usage ();
corefcn/sqrtm.cc:221:      print_usage ();
corefcn/str2double.cc:347:    print_usage ();
corefcn/strfind.cc:270:    print_usage ();
corefcn/strfind.cc:453:    print_usage ();
corefcn/strfns.cc:299:    print_usage ();
corefcn/strfns.cc:572:    print_usage ();
corefcn/strfns.cc:695:    print_usage ();
corefcn/strfns.cc:767:    print_usage ();
corefcn/strfns.cc:835:    print_usage ();
corefcn/strfns.cc:886:      print_usage ();
corefcn/sub2ind.cc:89:    print_usage ();
corefcn/sub2ind.cc:193:    print_usage ();
corefcn/svd.cc:132:    print_usage ();
corefcn/sylvester.cc:69:      print_usage ();
corefcn/symtab.cc:1703:    print_usage ();
corefcn/symtab.cc:1804:    print_usage ();
corefcn/symtab.cc:1837:    print_usage ();
corefcn/symtab.cc:1857:    print_usage ();
corefcn/symtab.cc:1877:    print_usage ();
corefcn/syscalls.cc:152:    print_usage ();
corefcn/syscalls.cc:224:    print_usage ();
corefcn/syscalls.cc:343:    print_usage ();
corefcn/syscalls.cc:505:    print_usage ();
corefcn/syscalls.cc:550:    print_usage ();
corefcn/syscalls.cc:576:    print_usage ();
corefcn/syscalls.cc:595:    print_usage ();
corefcn/syscalls.cc:614:    print_usage ();
corefcn/syscalls.cc:633:    print_usage ();
corefcn/syscalls.cc:652:    print_usage ();
corefcn/syscalls.cc:671:    print_usage ();
corefcn/syscalls.cc:690:    print_usage ();
corefcn/syscalls.cc:736:    print_usage ();
corefcn/syscalls.cc:763:    print_usage ();
corefcn/syscalls.cc:844:    print_usage ();
corefcn/syscalls.cc:910:    print_usage ();
corefcn/syscalls.cc:1033:    print_usage ();
corefcn/syscalls.cc:1056:    print_usage ();
corefcn/syscalls.cc:1079:    print_usage ();
corefcn/syscalls.cc:1102:    print_usage ();
corefcn/syscalls.cc:1125:    print_usage ();
corefcn/syscalls.cc:1148:    print_usage ();
corefcn/syscalls.cc:1171:    print_usage ();
corefcn/syscalls.cc:1194:    print_usage ();
corefcn/syscalls.cc:1210:    print_usage ();
corefcn/syscalls.cc:1259:    print_usage ();
corefcn/syscalls.cc:1294:    print_usage ();
corefcn/syscalls.cc:1375:    print_usage ();
corefcn/syscalls.cc:1397:    print_usage ();
corefcn/syscalls.cc:1441:    print_usage ();
corefcn/syscalls.cc:1465:    print_usage ();
corefcn/syscalls.cc:1491:    print_usage ();
corefcn/syscalls.cc:1516:    print_usage ();
corefcn/syscalls.cc:1540:    print_usage ();
corefcn/syscalls.cc:1562:    print_usage ();
corefcn/syscalls.cc:1590:    print_usage ();
corefcn/syscalls.cc:1605:    print_usage ();
corefcn/sysdep.cc:216:    print_usage ();
corefcn/sysdep.cc:628:    print_usage ();
corefcn/sysdep.cc:664:    print_usage ();
corefcn/sysdep.cc:700:    print_usage ();
corefcn/sysdep.cc:790:      print_usage ();
corefcn/sysdep.cc:852:    print_usage ();
corefcn/sysdep.cc:896:    print_usage ();
corefcn/sysdep.cc:992:    print_usage ();
corefcn/time.cc:122:    print_usage ();
corefcn/time.cc:172:    print_usage ();
corefcn/time.cc:233:    print_usage ();
corefcn/time.cc:285:    print_usage ();
corefcn/time.cc:478:    print_usage ();
corefcn/time.cc:522:    print_usage ();
corefcn/toplev.cc:1137:    print_usage ();
corefcn/toplev.cc:1244:    print_usage ();
corefcn/toplev.cc:1543:    print_usage ();
corefcn/tril.cc:208:    print_usage ();
corefcn/tsearch.cc:79:      print_usage ();
corefcn/typecast.cc:260:    print_usage ();
corefcn/typecast.cc:341:    print_usage ();
corefcn/typecast.cc:497:    print_usage ();
corefcn/urlwrite.cc:344:      print_usage ();
corefcn/urlwrite.cc:481:      print_usage ();
corefcn/urlwrite.cc:550:      print_usage ();
corefcn/utils.cc:107:    print_usage ();
corefcn/utils.cc:339:    print_usage ();
corefcn/utils.cc:419:    print_usage ();
corefcn/utils.cc:764:    print_usage ();
corefcn/utils.cc:907:    print_usage ();
corefcn/utils.cc:947:    print_usage ();
corefcn/utils.cc:972:    print_usage ();
corefcn/utils.cc:1003:    print_usage ();
corefcn/utils.cc:1048:    print_usage ();
corefcn/utils.cc:1105:    print_usage ();
corefcn/utils.cc:1137:    print_usage ();
corefcn/utils.cc:1435:    print_usage ();
corefcn/utils.cc:1576:    print_usage ();
corefcn/variables.cc:335:      print_usage ();
corefcn/variables.cc:615:    print_usage ();
corefcn/variables.cc:794:    print_usage ();
corefcn/variables.cc:836:    print_usage ();
corefcn/variables.cc:872:    print_usage ();
corefcn/variables.cc:907:    print_usage ();
corefcn/variables.cc:939:    print_usage ();
corefcn/variables.cc:982:    print_usage ();
corefcn/variables.cc:1858:    print_usage ();
corefcn/variables.cc:1938:    print_usage ();
corefcn/variables.cc:2041:    print_usage ();
corefcn/variables.cc:2074:    print_usage ();
corefcn/variables.cc:2108:    print_usage ();
corefcn/variables.cc:2330:          print_usage (); \
corefcn/variables.cc:2670:    print_usage ();
dldfcn/__delaunayn__.cc:102:    print_usage ();
dldfcn/__eigs__.cc:198:    print_usage ();
dldfcn/__glpk__.cc:352:    print_usage ();
dldfcn/__magick_read__.cc:765:    print_usage ();
dldfcn/__magick_read__.cc:1414:    print_usage ();
dldfcn/__magick_read__.cc:1593:    print_usage ();
dldfcn/__magick_read__.cc:1814:    print_usage ();
dldfcn/__magick_read__.cc:2261:    print_usage ();
dldfcn/__osmesa_print__.cc:99:    print_usage ();
dldfcn/__voronoi__.cc:98:    print_usage ();
dldfcn/amd.cc:93:    print_usage ();
dldfcn/audiodevinfo.cc:2010:    print_usage ();
dldfcn/audiodevinfo.cc:2038:        print_usage ();
dldfcn/audiodevinfo.cc:2067:        print_usage ();
dldfcn/audiodevinfo.cc:2096:        print_usage ();
dldfcn/audiodevinfo.cc:2125:        print_usage ();
dldfcn/audiodevinfo.cc:2154:        print_usage ();
dldfcn/audiodevinfo.cc:2183:        print_usage ();
dldfcn/audiodevinfo.cc:2212:        print_usage ();
dldfcn/audiodevinfo.cc:2241:        print_usage ();
dldfcn/audiodevinfo.cc:2270:        print_usage ();
dldfcn/audiodevinfo.cc:2299:        print_usage ();
dldfcn/audiodevinfo.cc:2326:    print_usage ();
dldfcn/audiodevinfo.cc:2353:      print_usage ();
dldfcn/audiodevinfo.cc:2389:        print_usage ();
dldfcn/audiodevinfo.cc:2418:        print_usage ();
dldfcn/audiodevinfo.cc:2447:        print_usage ();
dldfcn/audiodevinfo.cc:2476:        print_usage ();
dldfcn/audiodevinfo.cc:2503:    print_usage ();
dldfcn/audiodevinfo.cc:2531:    print_usage ();
dldfcn/audiodevinfo.cc:2536:    print_usage ();
dldfcn/audiodevinfo.cc:2610:        print_usage ();
dldfcn/audiodevinfo.cc:2639:        print_usage ();
dldfcn/audiodevinfo.cc:2668:        print_usage ();
dldfcn/audiodevinfo.cc:2697:        print_usage ();
dldfcn/audiodevinfo.cc:2726:        print_usage ();
dldfcn/audiodevinfo.cc:2755:        print_usage ();
dldfcn/audiodevinfo.cc:2784:        print_usage ();
dldfcn/audiodevinfo.cc:2813:        print_usage ();
dldfcn/audiodevinfo.cc:2842:        print_usage ();
dldfcn/audiodevinfo.cc:2871:        print_usage ();
dldfcn/audiodevinfo.cc:2900:    print_usage ();
dldfcn/audiodevinfo.cc:2965:        print_usage ();
dldfcn/audiodevinfo.cc:3030:        print_usage ();
dldfcn/audiodevinfo.cc:3059:        print_usage ();
dldfcn/audiodevinfo.cc:3088:        print_usage ();
dldfcn/audiodevinfo.cc:3117:        print_usage ();
dldfcn/audiodevinfo.cc:3146:        print_usage ();
dldfcn/audioread.cc:80:    print_usage ();
dldfcn/audioread.cc:285:    print_usage ();
dldfcn/audioread.cc:470:    print_usage ();
dldfcn/chol.cc:157:    print_usage ();
dldfcn/chol.cc:356:    print_usage ();
dldfcn/chol.cc:487:    print_usage ();
dldfcn/chol.cc:592:    print_usage ();
dldfcn/chol.cc:695:    print_usage ();
dldfcn/chol.cc:791:    print_usage ();
dldfcn/chol.cc:881:    print_usage ();
dldfcn/chol.cc:1038:    print_usage ();
dldfcn/chol.cc:1110:    print_usage ();
dldfcn/chol.cc:1172:    print_usage ();
dldfcn/chol.cc:1249:    print_usage ();
dldfcn/colamd.cc:289:    print_usage ();
dldfcn/colamd.cc:524:    print_usage ();
dldfcn/colamd.cc:667:    print_usage ();
dldfcn/convhulln.cc:116:    print_usage ();
dldfcn/dmperm.cc:160:    print_usage ();
dldfcn/dmperm.cc:206:    print_usage ();
dldfcn/fftw.cc:140:    print_usage ();
dldfcn/qr.cc:207:    print_usage ();
dldfcn/qr.cc:763:    print_usage ();
dldfcn/qr.cc:948:    print_usage ();
dldfcn/qr.cc:1069:    print_usage ();
dldfcn/qr.cc:1164:    print_usage ();
dldfcn/qr.cc:1271:    print_usage ();
dldfcn/qr.cc:1413:    print_usage ();
dldfcn/symbfact.cc:103:    print_usage ();
dldfcn/symrcm.cc:444:    print_usage ();
octave-value/ov-bool-mat.cc:593:    print_usage ();
octave-value/ov-cell.cc:1245:    print_usage ();
octave-value/ov-cell.cc:1314:    print_usage ();
octave-value/ov-cell.cc:1355:    print_usage ();
octave-value/ov-cell.cc:1435:    print_usage ();
octave-value/ov-class.cc:1778:    print_usage ();
octave-value/ov-class.cc:1870:      print_usage ();
octave-value/ov-class.cc:1968:    print_usage ();
octave-value/ov-class.cc:1985:    print_usage ();
octave-value/ov-class.cc:2022:    print_usage ();
octave-value/ov-classdef.cc:3818:    print_usage ();
octave-value/ov-classdef.cc:3853:    print_usage ();
octave-value/ov-classdef.cc:3873:    print_usage ();
octave-value/ov-fcn-handle.cc:1798:    print_usage ();
octave-value/ov-fcn-handle.cc:1836:    print_usage ();
octave-value/ov-fcn-handle.cc:1872:    print_usage ();
octave-value/ov-fcn-handle.cc:1923:    print_usage ();
octave-value/ov-fcn-inline.cc:822:    print_usage ();
octave-value/ov-fcn-inline.cc:868:    print_usage ();
octave-value/ov-fcn-inline.cc:914:    print_usage ();
octave-value/ov-fcn-inline.cc:1004:    print_usage ();
octave-value/ov-flt-re-mat.cc:898:    print_usage ();
octave-value/ov-java.cc:2156:    print_usage ();
octave-value/ov-java.cc:2233:    print_usage ();
octave-value/ov-java.cc:2301:    print_usage ();
octave-value/ov-java.cc:2363:    print_usage ();
octave-value/ov-java.cc:2396:    print_usage ();
octave-value/ov-java.cc:2489:    print_usage ();
octave-value/ov-null-mat.cc:124:    print_usage ();
octave-value/ov-oncleanup.cc:194:    print_usage ();
octave-value/ov-re-mat.cc:1033:    print_usage ();
octave-value/ov-struct.cc:1859:    print_usage ();
octave-value/ov-struct.cc:1947:    print_usage ();
octave-value/ov-struct.cc:1968:    print_usage ();
octave-value/ov-struct.cc:2093:    print_usage ();
octave-value/ov-struct.cc:2160:    print_usage ();
octave-value/ov-typeinfo.cc:633:    print_usage ();
octave-value/ov-usr-fcn.cc:880:    print_usage ();
octave-value/ov-usr-fcn.cc:1016:    print_usage ();
octave-value/ov-usr-fcn.cc:1115:    print_usage ();
octave-value/ov.cc:2935:    print_usage ();
octave-value/ov.cc:3066:    print_usage ();
octave-value/ov.cc:3129:    print_usage ();
octave-value/ov.cc:3213:    print_usage ();
octave-value/ov.cc:3240:    print_usage ();
octave.cc:240:    print_usage ();
octave.cc:1022:    print_usage ();
octave.cc:1057:    print_usage ();
octave.cc:1084:    print_usage ();
octave.cc:1107:    print_usage ();