# HG changeset patch # User Rik # Date 1411250485 25200 # Node ID bc640d4678fb2d7afc3f96ba8c55c2269ea01123 # Parent d4a920d2824273a790de6a04df0fe11b5f6d0d42 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. diff -r d4a920d28242 -r bc640d4678fb doc/interpreter/func.txi --- 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. diff -r d4a920d28242 -r bc640d4678fb scripts/deprecated/module.mk --- 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 \ diff -r d4a920d28242 -r bc640d4678fb scripts/deprecated/nargchk.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 -## . - -## -*- 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 - -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) - diff -r d4a920d28242 -r bc640d4678fb scripts/general/nargchk.m --- 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