changeset 19112:bc640d4678fb

Undeprecate nargchk, but add note that narginchk is preferred. * func.txi: Use narginchk instead of nargchk in documentation example. * scripts/deprecated/nargchk.m: Remove deprecated version of nargchk. * scripts/deprecated/module.mk: Remove deprecated nargchk.m from build system. * scripts/general/nargchk.m: Add caution to docstring that this function may be removed in the future and that narginchk is preferred.
author Rik <rik@octave.org>
date Sat, 20 Sep 2014 15:01:25 -0700
parents d4a920d28242
children 72e32208ff77
files doc/interpreter/func.txi scripts/deprecated/module.mk scripts/deprecated/nargchk.m scripts/general/nargchk.m
diffstat 4 files changed, 4 insertions(+), 95 deletions(-) [+]
line wrap: on
line diff
--- a/doc/interpreter/func.txi	Sat Sep 20 14:25:30 2014 -0700
+++ b/doc/interpreter/func.txi	Sat Sep 20 15:01:25 2014 -0700
@@ -1498,7 +1498,7 @@
 @item general
 Miscellaneous matrix manipulations, like @code{flipud}, @code{rot90},
 and @code{triu}, as well as other basic functions, like
-@code{ismatrix}, @code{nargchk}, etc.
+@code{ismatrix}, @code{narginchk}, etc.
 
 @item geometry
 Functions related to Delaunay triangulation.
--- a/scripts/deprecated/module.mk	Sat Sep 20 14:25:30 2014 -0700
+++ b/scripts/deprecated/module.mk	Sat Sep 20 15:01:25 2014 -0700
@@ -4,7 +4,6 @@
   deprecated/bicubic.m \
   deprecated/find_dir_in_path.m \
   deprecated/isstr.m \
-  deprecated/nargchk.m \
   deprecated/nfields.m \
   deprecated/strmatch.m \
   deprecated/syl.m \
--- a/scripts/deprecated/nargchk.m	Sat Sep 20 14:25:30 2014 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,93 +0,0 @@
-## Copyright (C) 2008-2013 Bill Denney
-##
-## This file is part of Octave.
-##
-## Octave is free software; you can redistribute it and/or modify it
-## under the terms of the GNU General Public License as published by
-## the Free Software Foundation; either version 3 of the License, or (at
-## your option) any later version.
-##
-## Octave is distributed in the hope that it will be useful, but
-## WITHOUT ANY WARRANTY; without even the implied warranty of
-## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-## General Public License for more details.
-##
-## You should have received a copy of the GNU General Public License
-## along with Octave; see the file COPYING.  If not, see
-## <http://www.gnu.org/licenses/>.
-
-## -*- texinfo -*-
-## @deftypefn  {Function File} {@var{msgstr} =} nargchk (@var{minargs}, @var{maxargs}, @var{nargs})
-## @deftypefnx {Function File} {@var{msgstr} =} nargchk (@var{minargs}, @var{maxargs}, @var{nargs}, "string")
-## @deftypefnx {Function File} {@var{msgstruct} =} nargchk (@var{minargs}, @var{maxargs}, @var{nargs}, "struct")
-##
-## @code{nargchk} is deprecated and will be removed in Octave version 4.6.
-## Use @code{narginchk} for the equivalent functionality.
-##
-## Return an appropriate error message string (or structure) if the
-## number of inputs requested is invalid.
-##
-## This is useful for checking to see that the number of input arguments
-## supplied to a function is within an acceptable range.
-## @seealso{nargoutchk, narginchk, error, nargin, nargout}
-## @end deftypefn
-
-## Author: Bill Denney <bill@denney.ws>
-
-function msg = nargchk (minargs, maxargs, nargs, outtype = "string")
-
-  persistent warned = false;
-  if (! warned)
-    warned = true;
-    warning ("Octave:deprecated-function",
-             "nargchk is obsolete and will be removed from a future version of Octave, please use narginchk instead");
-  endif
-
-
-  if (nargin < 3 || nargin > 4)
-    print_usage ();
-  elseif (minargs > maxargs)
-    error ("nargchk: MINARGS must be <= MAXARGS");
-  elseif (! any (strcmpi (outtype, {"string", "struct"})))
-    error ('nargchk: output type must be either "string" or "struct"');
-  elseif (! (isscalar (minargs) && isscalar (maxargs) && isscalar (nargs)))
-    error ("nargchk: MINARGS, MAXARGS, and NARGS must be scalars");
-  endif
-
-  msg = struct ("message", "", "identifier", "");
-  if (nargs < minargs)
-    msg.message = "not enough input arguments";
-    msg.identifier = "Octave:nargchk:not-enough-inputs";
-  elseif (nargs > maxargs)
-    msg.message = "too many input arguments";
-    msg.identifier = "Octave:nargchk:too-many-inputs";
-  endif
-
-  if (strcmpi (outtype, "string"))
-    msg = msg.message;
-  elseif (isempty (msg.message))
-    ## Compatability: Matlab returns a 0x1 empty struct when nargchk passes
-    msg = resize (msg, 0, 1);
-  endif
-
-endfunction
-
-
-## Tests
-%!shared stnul, stmin, stmax
-%! stnul = resize (struct ("message", "", "identifier", ""), 0, 1);
-%! stmin = struct ("message", "not enough input arguments",
-%!                 "identifier", "Octave:nargchk:not-enough-inputs");
-%! stmax = struct ("message", "too many input arguments",
-%!                 "identifier", "Octave:nargchk:too-many-inputs");
-%!assert (nargchk (0, 1, 0), "")
-%!assert (nargchk (0, 1, 1), "")
-%!assert (nargchk (1, 1, 0), "not enough input arguments")
-%!assert (nargchk (0, 1, 2), "too many input arguments")
-%!assert (nargchk (0, 1, 2, "string"), "too many input arguments")
-## Struct outputs
-%!assert (nargchk (0, 1, 0, "struct"), stnul)
-%!assert (nargchk (0, 1, 1, "struct"), stnul)
-%!assert (nargchk (1, 1, 0, "struct"), stmin)
-%!assert (nargchk (0, 1, 2, "struct"), stmax)
-
--- a/scripts/general/nargchk.m	Sat Sep 20 14:25:30 2014 -0700
+++ b/scripts/general/nargchk.m	Sat Sep 20 15:01:25 2014 -0700
@@ -25,6 +25,9 @@
 ##
 ## This is useful for checking to see that the number of input arguments
 ## supplied to a function is within an acceptable range.
+##
+## @strong{Caution}: @code{nargchk} is scheduled for deprecation.  Use
+## @code{narginchk} in all new code.
 ## @seealso{nargoutchk, narginchk, error, nargin, nargout}
 ## @end deftypefn