changeset 9724:f22bbc5d56e9

Fix various incorrect usages of TeXinfo deffn and deftypefn macros which were causing bad entries in the function index.
author Rik <rdrider0-list@yahoo.com>
date Tue, 13 Oct 2009 21:10:37 -0700
parents f426899f4b9c
children aea3a3a950e1
files doc/ChangeLog scripts/help/doc.m scripts/help/help.m scripts/help/lookfor.m scripts/help/type.m scripts/miscellaneous/edit.m scripts/miscellaneous/run.m scripts/miscellaneous/what.m scripts/optimization/fsolve.m scripts/pkg/pkg.m src/DLD-FUNCTIONS/eigs.cc src/DLD-FUNCTIONS/lu.cc src/debug.cc src/octave.cc src/syscalls.cc src/variables.cc
diffstat 16 files changed, 77 insertions(+), 75 deletions(-) [+]
line wrap: on
line diff
--- a/doc/ChangeLog	Tue Oct 13 12:50:06 2009 +0200
+++ b/doc/ChangeLog	Tue Oct 13 21:10:37 2009 -0700
@@ -1,3 +1,7 @@
+2009-10-13  Rik <octave@nomad.inbox5.com>
+
+	* various: Fix various incorrect usages of deffn and deftypefn macros
+
 2009-10-12  Rik <octave@nomad.inbox5.com>
 
 	* liboctave/Makefile.in: Simplify Makefile using GNU Make functions
--- a/scripts/help/doc.m	Tue Oct 13 12:50:06 2009 +0200
+++ b/scripts/help/doc.m	Tue Oct 13 21:10:37 2009 -0700
@@ -17,7 +17,7 @@
 ## <http://www.gnu.org/licenses/>.
 
 ## -*- texinfo -*-
-## @deftypefn {Command} doc @var{function_name}
+## @deffn {Command} doc @var{function_name}
 ## Display documentation for the function @var{function_name}
 ## directly from an on-line version of
 ## the printed manual, using the GNU Info browser.  If invoked without
@@ -29,7 +29,7 @@
 ## Once the GNU Info browser is running, help for using it is available
 ## using the command @kbd{C-h}.
 ## @seealso{help}
-## @end deftypefn
+## @end deffn
 
 ## Author: Soren Hauberg <soren@hauberg.org>
 ## Adapted-by: jwe
--- a/scripts/help/help.m	Tue Oct 13 12:50:06 2009 +0200
+++ b/scripts/help/help.m	Tue Oct 13 21:10:37 2009 -0700
@@ -15,7 +15,7 @@
 ## <http://www.gnu.org/licenses/>.
 
 ## -*- texinfo -*-
-## @deftypefn {Command} help @var{name}
+## @deffn {Command} help @var{name}
 ## Display the help text for @var{name}.
 ## If invoked without any arguments, @code{help} prints a list
 ## of all the available operators and functions.
@@ -27,7 +27,7 @@
 ## comma and semicolons that are used as command separators.  To get help
 ## for those, you must type @kbd{help comma} or @kbd{help semicolon}.
 ## @seealso{doc, lookfor, which}
-## @end deftypefn
+## @end deffn
 
 function help (name)
 
--- a/scripts/help/lookfor.m	Tue Oct 13 12:50:06 2009 +0200
+++ b/scripts/help/lookfor.m	Tue Oct 13 21:10:37 2009 -0700
@@ -15,10 +15,10 @@
 ## <http://www.gnu.org/licenses/>.
 
 ## -*- texinfo -*-
-## @deftypefn {Command} lookfor @var{str}
-## @deftypefnx {Command} lookfor -all @var{str}
-## @deftypefnx {Function} {[@var{func}, @var{helpstring}] =} lookfor (@var{str})
-## @deftypefnx {Function} {[@var{func}, @var{helpstring}] =} lookfor ('-all', @var{str})
+## @deftypefn  {Command} {} lookfor @var{str}
+## @deftypefnx {Command} {} lookfor -all @var{str}
+## @deftypefnx {Function File} {[@var{func}, @var{helpstring}] =} lookfor (@var{str})
+## @deftypefnx {Function File} {[@var{func}, @var{helpstring}] =} lookfor ('-all', @var{str})
 ## Search for the string @var{str} in all functions found in the current 
 ## function search path.  By default, @code{lookfor} searches for @var{str}
 ## in the first sentence of the help string of each function found.  The entire
--- a/scripts/help/type.m	Tue Oct 13 12:50:06 2009 +0200
+++ b/scripts/help/type.m	Tue Oct 13 21:10:37 2009 -0700
@@ -15,7 +15,9 @@
 ## <http://www.gnu.org/licenses/>.
 
 ## -*- texinfo -*-
-## @deftypefn {Command} type options name @dots{}
+## @deftypefn  {Command} {} type @var{name} @dots{}
+## @deftypefnx {Command} {} type -q @var{name} @dots{}
+## @deftypefnx {Function File} {defs =} type ("@var{name}", @dots{})
 ## Display the definition of each @var{name} that refers to a function.
 ## 
 ## Normally also displays whether each @var{name} is user-defined or built-in;
--- a/scripts/miscellaneous/edit.m	Tue Oct 13 12:50:06 2009 +0200
+++ b/scripts/miscellaneous/edit.m	Tue Oct 13 21:10:37 2009 -0700
@@ -17,8 +17,8 @@
 ## <http://www.gnu.org/licenses/>.
 
 ## -*- texinfo -*-
-## @deftypefn {Command} edit @var{name}
-## @deftypefnx {Command} edit @var{field} @var{value}
+## @deftypefn  {Command} {} edit @var{name}
+## @deftypefnx {Command} {} edit @var{field} @var{value}
 ## @deftypefnx {Command} {@var{value} =} edit get @var{field}
 ## Edit the named function, or change editor settings.
 ##
--- a/scripts/miscellaneous/run.m	Tue Oct 13 12:50:06 2009 +0200
+++ b/scripts/miscellaneous/run.m	Tue Oct 13 21:10:37 2009 -0700
@@ -17,11 +17,11 @@
 ## <http://www.gnu.org/licenses/>.
 
 ## -*- texinfo -*-
-## @deftypefn {Function File} {} run (@var{f})
-## @deftypefnx {Command} {} run @var{f}
+## @deftypefn  {Command} {} run @var{f}
+## @deftypefnx {Function File} {} run (@var{f})
 ## Run scripts in the current workspace that are not necessarily on the
 ## path.  If @var{f} is the script to run, including its path, then @code{run}
-## change the directory to the directory where @var{f} is found.  @code{run}
+## changes the directory to the directory where @var{f} is found.  @code{run}
 ## then executes the script, and returns to the original directory.
 ## @seealso{system}
 ## @end deftypefn
--- a/scripts/miscellaneous/what.m	Tue Oct 13 12:50:06 2009 +0200
+++ b/scripts/miscellaneous/what.m	Tue Oct 13 21:10:37 2009 -0700
@@ -17,7 +17,7 @@
 ## <http://www.gnu.org/licenses/>.
 
 ## -*- texinfo -*-
-## @deftypefn {Command} {} what 
+## @deftypefn  {Command} {} what 
 ## @deftypefnx {Command} {} what @var{dir}
 ## @deftypefnx {Function File} {w =} what (@var{dir})
 ## List the Octave specific files in a directory.  If the variable @var{dir}
--- a/scripts/optimization/fsolve.m	Tue Oct 13 12:50:06 2009 +0200
+++ b/scripts/optimization/fsolve.m	Tue Oct 13 21:10:37 2009 -0700
@@ -20,7 +20,7 @@
 
 ## -*- texinfo -*-
 ## @deftypefn  {Function File} {} fsolve (@var{fcn}, @var{x0}, @var{options})
-## @deftypefnx {Function File} {[@var{x}, @var{fvec}, @var{info}, @var{output}, @var{fjac}]} = fsolve (@var{fcn}, @dots{})
+## @deftypefnx {Function File} {[@var{x}, @var{fvec}, @var{info}, @var{output}, @var{fjac}] =} fsolve (@var{fcn}, @dots{})
 ## Solve a system of nonlinear equations defined by the function @var{fcn}.
 ## @var{fcn} should accepts a vector (array) defining the unknown variables,
 ## and return a vector of left-hand sides of the equations.  Right-hand sides
--- a/scripts/pkg/pkg.m	Tue Oct 13 12:50:06 2009 +0200
+++ b/scripts/pkg/pkg.m	Tue Oct 13 21:10:37 2009 -0700
@@ -17,8 +17,8 @@
 ## <http://www.gnu.org/licenses/>.
 
 ## -*- texinfo -*-
-## @deftypefn  {Command} pkg @var{command} @var{pkg_name}
-## @deftypefnx {Command} pkg @var{command} @var{option} @var{pkg_name}
+## @deffn  {Command} pkg @var{command} @var{pkg_name}
+## @deffnx {Command} pkg @var{command} @var{option} @var{pkg_name}
 ## This command interacts with the package manager.  Different actions will
 ## be taken depending on the value of @var{command}.
 ##
@@ -193,7 +193,7 @@
 ## The options @code{-verbose} and @code{-nodeps} are respected, while 
 ## the other options are ignored.
 ## @end table
-## @end deftypefn
+## @end deffn
 
 function [local_packages, global_packages] = pkg (varargin)
   ## Installation prefix (FIXME: what should these be on windows?)
--- a/src/DLD-FUNCTIONS/eigs.cc	Tue Oct 13 12:50:06 2009 +0200
+++ b/src/DLD-FUNCTIONS/eigs.cc	Tue Oct 13 21:10:37 2009 -0700
@@ -131,55 +131,49 @@
 
 DEFUN_DLD (eigs, args, nargout,
   "-*- texinfo -*-\n\
-@deftypefn {Loadable Function} {@var{d}} = eigs (@var{a})\n\
-@deftypefnx {Loadable Function} {@var{d}} = eigs (@var{a}, @var{k})\n\
-@deftypefnx {Loadable Function} {@var{d}} = eigs (@var{a}, @var{k}, @var{sigma})\n\
-@deftypefnx {Loadable Function} {@var{d}} = eigs (@var{a}, @var{k}, @var{sigma},@var{opts})\n\
-@deftypefnx {Loadable Function} {@var{d}} = eigs (@var{a}, @var{b})\n\
-@deftypefnx {Loadable Function} {@var{d}} = eigs (@var{a}, @var{b}, @var{k})\n\
-@deftypefnx {Loadable Function} {@var{d}} = eigs (@var{a}, @var{b}, @var{k}, @var{sigma})\n\
-@deftypefnx {Loadable Function} {@var{d}} = eigs (@var{a}, @var{b}, @var{k}, @var{sigma}, @var{opts})\n\
-@deftypefnx {Loadable Function} {@var{d}} = eigs (@var{af}, @var{n})\n\
-@deftypefnx {Loadable Function} {@var{d}} = eigs (@var{af}, @var{n}, @var{b})\n\
-@deftypefnx {Loadable Function} {@var{d}} = eigs (@var{af}, @var{n}, @var{k})\n\
-@deftypefnx {Loadable Function} {@var{d}} = eigs (@var{af}, @var{n}, @var{b}, @var{k})\n\
-@deftypefnx {Loadable Function} {@var{d}} = eigs (@var{af}, @var{n}, @var{k}, @var{sigma})\n\
-@deftypefnx {Loadable Function} {@var{d}} = eigs (@var{af}, @var{n}, @var{b}, @var{k}, @var{sigma})\n\
-@deftypefnx {Loadable Function} {@var{d}} = eigs (@var{af}, @var{n}, @var{k}, @var{sigma}, @var{opts})\n\
-@deftypefnx {Loadable Function} {@var{d}} = eigs (@var{af}, @var{n}, @var{b}, @var{k}, @var{sigma}, @var{opts})\n\
-@deftypefnx {Loadable Function} {[@var{v}, @var{d}]} = eigs (@var{a}, @dots{})\n\
-@deftypefnx {Loadable Function} {[@var{v}, @var{d}]} = eigs (@var{af}, @var{n}, @dots{})\n\
-@deftypefnx {Loadable Function} {[@var{v}, @var{d}, @var{flag}]} = eigs (@var{a}, @dots{})\n\
-@deftypefnx {Loadable Function} {[@var{v}, @var{d}, @var{flag}]} = eigs (@var{af}, @var{n}, @dots{})\n\
+@deftypefn  {Loadable Function} {@var{d} =} eigs (@var{a})\n\
+@deftypefnx {Loadable Function} {@var{d} =} eigs (@var{a}, @var{k})\n\
+@deftypefnx {Loadable Function} {@var{d} =} eigs (@var{a}, @var{k}, @var{sigma})\n\
+@deftypefnx {Loadable Function} {@var{d} =} eigs (@var{a}, @var{k}, @var{sigma},@var{opts})\n\
+@deftypefnx {Loadable Function} {@var{d} =} eigs (@var{a}, @var{b})\n\
+@deftypefnx {Loadable Function} {@var{d} =} eigs (@var{a}, @var{b}, @var{k})\n\
+@deftypefnx {Loadable Function} {@var{d} =} eigs (@var{a}, @var{b}, @var{k}, @var{sigma})\n\
+@deftypefnx {Loadable Function} {@var{d} =} eigs (@var{a}, @var{b}, @var{k}, @var{sigma}, @var{opts})\n\
+@deftypefnx {Loadable Function} {@var{d} =} eigs (@var{af}, @var{n})\n\
+@deftypefnx {Loadable Function} {@var{d} =} eigs (@var{af}, @var{n}, @var{b})\n\
+@deftypefnx {Loadable Function} {@var{d} =} eigs (@var{af}, @var{n}, @var{k})\n\
+@deftypefnx {Loadable Function} {@var{d} =} eigs (@var{af}, @var{n}, @var{b}, @var{k})\n\
+@deftypefnx {Loadable Function} {@var{d} =} eigs (@var{af}, @var{n}, @var{k}, @var{sigma})\n\
+@deftypefnx {Loadable Function} {@var{d} =} eigs (@var{af}, @var{n}, @var{b}, @var{k}, @var{sigma})\n\
+@deftypefnx {Loadable Function} {@var{d} =} eigs (@var{af}, @var{n}, @var{k}, @var{sigma}, @var{opts})\n\
+@deftypefnx {Loadable Function} {@var{d} =} eigs (@var{af}, @var{n}, @var{b}, @var{k}, @var{sigma}, @var{opts})\n\
+@deftypefnx {Loadable Function} {[@var{v}, @var{d}] =} eigs (@var{a}, @dots{})\n\
+@deftypefnx {Loadable Function} {[@var{v}, @var{d}] =} eigs (@var{af}, @var{n}, @dots{})\n\
+@deftypefnx {Loadable Function} {[@var{v}, @var{d}, @var{flag}] =} eigs (@var{a}, @dots{})\n\
+@deftypefnx {Loadable Function} {[@var{v}, @var{d}, @var{flag}] =} eigs (@var{af}, @var{n}, @dots{})\n\
 Calculate a limited number of eigenvalues and eigenvectors of @var{a},\n\
 based on a selection criteria.  The number eigenvalues and eigenvectors to\n\
 calculate is given by @var{k} whose default value is 6.\n\
 \n\
 By default @code{eigs} solve the equation\n\
-@iftex\n\
 @tex\n\
 $A \\nu = \\lambda \\nu$\n\
 @end tex\n\
-@end iftex\n\
 @ifinfo\n\
 @code{A * v = lambda * v}\n\
 @end ifinfo\n\
 , where\n\
-@iftex\n\
 @tex\n\
 $\\lambda$ is a scalar representing one of the eigenvalues, and $\\nu$\n\
 @end tex\n\
-@end iftex\n\
 @ifinfo\n\
 @code{lambda} is a scalar representing one of the eigenvalues, and @code{v}\n\
 @end ifinfo\n\
 is the corresponding eigenvector.  If given the positive definite matrix\n\
 @var{B} then @code{eigs} solves the general eigenvalue equation\n\
-@iftex\n\
 @tex\n\
 $A \\nu = \\lambda B \\nu$\n\
 @end tex\n\
-@end iftex\n\
 @ifinfo\n\
 @code{A * v = lambda * B * v}\n\
 @end ifinfo\n\
@@ -304,12 +298,12 @@
 of the convergence.  If @var{flag} is 0, then all eigenvalues have converged,\n\
 otherwise not.\n\
 \n\
-This function is based on the @sc{Arpack} package, written by R Lehoucq,\n\
+This function is based on the @sc{arpack} package, written by R Lehoucq,\n\
 K Maschhoff, D Sorensen and C Yang.  For more information see\n\
 @url{http://www.caam.rice.edu/software/ARPACK/}.\n\
 \n\
-@end deftypefn\n\
-@seealso{eig, svds}")
+@seealso{eig, svds}\n\
+@end deftypefn")
 {
   octave_value_list retval;
 #ifdef HAVE_ARPACK
--- a/src/DLD-FUNCTIONS/lu.cc	Tue Oct 13 12:50:06 2009 +0200
+++ b/src/DLD-FUNCTIONS/lu.cc	Tue Oct 13 21:10:37 2009 -0700
@@ -595,9 +595,8 @@
 
 DEFUN_DLD (luupdate, args, ,
   "-*- texinfo -*-\n\
-@deftypefn {Loadable Function} {[@var{L}, @var{U}] =} luupdate (@var{l}, @var{u}, @var{x}, @var{y})\n\
-@deftypefnx {Loadable Function} {[@var{L}, @var{U}, @var{P}] =}\
-luupdate (@var{L}, @var{U}, @var{P}, @var{x}, @var{y})\n\
+@deftypefn  {Loadable Function} {[@var{L}, @var{U}] =} luupdate (@var{l}, @var{u}, @var{x}, @var{y})\n\
+@deftypefnx {Loadable Function} {[@var{L}, @var{U}, @var{P}] =} luupdate (@var{L}, @var{U}, @var{P}, @var{x}, @var{y})\n\
 Given an LU@tie{}factorization of a real or complex matrix\n\
 @w{@var{A} = @var{L}*@var{U}}, @var{L}@tie{}lower unit trapezoidal and\n\
 @var{U}@tie{}upper trapezoidal, return the LU@tie{}factorization\n\
@@ -633,8 +632,7 @@
 thus, for k large enough, it will be both faster and more accurate to recompute\n\
 the factorization from scratch.\n\
 @seealso{lu,qrupdate,cholupdate}\n\
-@end deftypefn\n\
-")
+@end deftypefn")
 {
   octave_idx_type nargin = args.length ();
   octave_value_list retval;
--- a/src/debug.cc	Tue Oct 13 12:50:06 2009 +0200
+++ b/src/debug.cc	Tue Oct 13 21:10:37 2009 -0700
@@ -960,7 +960,8 @@
 
 DEFUN (dbup, args, ,
   "-*- texinfo -*-\n\
-@deftypefn {Loadable Function} {} dbup (@var{n})\n\
+@deftypefn  {Loadable Function} {} dbup\n\
+@deftypefnx {Loadable Function} {} dbup (@var{n})\n\
 In debugging mode, move up the execution stack @var{n} frames.\n\
 If @var{n} is omitted, move up one frame.\n\
 @seealso{dbstack}\n\
@@ -975,7 +976,8 @@
 
 DEFUN (dbdown, args, ,
   "-*- texinfo -*-\n\
-@deftypefn {Loadable Function} {} dbdown (@var{n})\n\
+@deftypefn  {Loadable Function} {} dbdown\n\
+@deftypefnx {Loadable Function} {} dbdown (@var{n})\n\
 In debugging mode, move down the execution stack @var{n} frames.\n\
 If @var{n} is omitted, move down one frame.\n\
 @seealso{dbstack}\n\
@@ -990,15 +992,17 @@
 
 DEFUN (dbstep, args, ,
   "-*- texinfo -*-\n\
-@deftypefn {Command} {} dbstep @var{n}\n\
+@deftypefn  {Command} {} dbstep\n\
+@deftypefnx {Command} {} dbstep @var{n}\n\
 @deftypefnx {Command} {} dbstep in\n\
 @deftypefnx {Command} {} dbstep out\n\
-In debugging mode, execute the next @var{n} lines of code.  If @var{n} is\n\
-omitted execute the next line of code.  If the next line of code is itself\n\
+In debugging mode, execute the next @var{n} lines of code.\n\
+If @var{n} is omitted , execute the next single line of code.\n\
+If the next line of code is itself\n\
 defined in terms of an m-file remain in the existing function.\n\
 \n\
 Using @code{dbstep in} will cause execution of the next line to step into\n\
-any m-files defined on the next line.  Using @code{dbstep out} with cause\n\
+any m-files defined on the next line.  Using @code{dbstep out} will cause\n\
 execution to continue until the current function returns.\n\
 @seealso{dbcont, dbquit}\n\
 @end deftypefn")
@@ -1064,9 +1068,9 @@
 
 DEFUN (dbcont, args, ,
   "-*- texinfo -*-\n\
-@deftypefn {Command} {} dbcont ()\n\
+@deftypefn {Command} {} dbcont\n\
 In debugging mode, quit debugging mode and continue execution.\n\
-@seealso{dbstep, dbstep}\n\
+@seealso{dbstep, dbquit}\n\
 @end deftypefn")
 {
   if (Vdebugging)
@@ -1088,7 +1092,7 @@
 
 DEFUN (dbquit, args, ,
   "-*- texinfo -*-\n\
-@deftypefn {Command} {} dbquit ()\n\
+@deftypefn {Command} {} dbquit\n\
 In debugging mode, quit debugging mode and return to the top level.\n\
 @seealso{dbstep, dbcont}\n\
 @end deftypefn")
@@ -1112,7 +1116,7 @@
 
 DEFUN (isdebugmode, args, ,
   "-*- texinfo -*-\n\
-@deftypefn {Command} {} isdebugmode ()\n\
+@deftypefn {Loadable Function} {} isdebugmode ()\n\
 Return true if debug mode is on, otherwise false.\n\
 @seealso{dbstack, dbclear, dbstop, dbstatus}\n\
 @end deftypefn")
--- a/src/octave.cc	Tue Oct 13 12:50:06 2009 +0200
+++ b/src/octave.cc	Tue Oct 13 21:10:37 2009 -0700
@@ -925,7 +925,7 @@
 
 DEFUN (program_invocation_name, args, ,
   "-*- texinfo -*-\n\
-@deftypefn {Built-in Function} program_invocation_name ()\n\
+@deftypefn {Built-in Function} {} program_invocation_name ()\n\
 Return the name that was typed at the shell prompt to run Octave.\n\
 \n\
 If executing a script from the command line (e.g., @code{octave foo.m})\n\
--- a/src/syscalls.cc	Tue Oct 13 12:50:06 2009 +0200
+++ b/src/syscalls.cc	Tue Oct 13 21:10:37 2009 -0700
@@ -1894,7 +1894,7 @@
 
 DEFUNX ("WCONTINUE", FWCONTINUE, args, ,
   "-*- texinfo -*-\n\
-@deftypefn {Built-in Function} WCONINTUE ()\n\
+@deftypefn {Built-in Function} {} WCONTINUE ()\n\
 Return the numerical value of the option argument that may be\n\
 passed to @code{waitpid} to indicate that it should also return\n\
 if a stopped child has been resumed by delivery of a @code{SIGCONT}\n\
--- a/src/variables.cc	Tue Oct 13 12:50:06 2009 +0200
+++ b/src/variables.cc	Tue Oct 13 21:10:37 2009 -0700
@@ -1600,10 +1600,10 @@
 
 DEFUN (who, args, nargout,
   "-*- texinfo -*-\n\
-@deffn  {Command} who\n\
-@deffnx {Command} who pattern @dots{}\n\
-@deffnx {Command} who option pattern @dots{}\n\
-@deffnx {Command} C = who(\"pattern\", @dots{})\n\
+@deftypefn  {Command} {} who\n\
+@deftypefnx {Command} {} who pattern @dots{}\n\
+@deftypefnx {Command} {} who option pattern @dots{}\n\
+@deftypefnx {Command} {C =} who(\"pattern\", @dots{})\n\
 List currently defined variables matching the given patterns.  Valid\n\
 pattern syntax is the same as described for the @code{clear} command.\n\
 If no patterns are supplied, all variables are listed.\n\
@@ -1627,7 +1627,7 @@
 If called as a function, return a cell array of defined variable names\n\
 matching the given patterns.\n\
 @seealso{whos, regexp}\n\
-@end deffn")
+@end deftypefn")
 {
   octave_value retval;
 
@@ -1648,10 +1648,10 @@
 
 DEFUN (whos, args, nargout,
   "-*- texinfo -*-\n\
-@deffn  {Command} whos\n\
-@deffnx {Command} whos pattern @dots{}\n\
-@deffnx {Command} whos option pattern @dots{}\n\
-@deffnx {Command} S = whos(\"pattern\", @dots{})\n\
+@deftypefn  {Command} {} whos\n\
+@deftypefnx {Command} {} whos pattern @dots{}\n\
+@deftypefnx {Command} {} whos option pattern @dots{}\n\
+@deftypefnx {Command} {S =} whos(\"pattern\", @dots{})\n\
 Provide detailed information on currently defined variables matching the\n\
 given patterns.  Options and pattern syntax are the same as for the\n\
 @code{who} command.  Extended information about each variable is\n\
@@ -1688,7 +1688,7 @@
 describing each variable are: name, size, bytes, class, global, sparse, \n\
 complex, nesting, persistent.\n\
 @seealso{who, whos_line_format}\n\
-@end deffn")
+@end deftypefn")
 {
   octave_value retval;