# HG changeset patch # User Julien Bect # Date 1362337166 -3600 # Node ID 1f1e248caeab0c7446d97a53598426526aac316a # Parent 70c47da7e02b3002eeb76d3777b4f473d13ba5af unique.m: Correctly check invalid options (bug #38460) * unique.m: Use ismember instead of strmatch to scan varargin. Add tests. diff --git a/scripts/set/unique.m b/scripts/set/unique.m --- a/scripts/set/unique.m +++ b/scripts/set/unique.m @@ -52,9 +52,9 @@ ## parse options if (iscellstr (varargin)) varargin = unique (varargin); - optfirst = strmatch ("first", varargin, "exact") > 0; - optlast = strmatch ("last", varargin, "exact") > 0; - optrows = strmatch ("rows", varargin, "exact") > 0; + optfirst = ismember ("first", varargin); + optlast = ismember ("last", varargin); + optrows = ismember ("rows", varargin); if (optfirst && optlast) error ('unique: cannot specify both "last" and "first"'); elseif (optfirst + optlast + optrows != nargin-1) @@ -214,3 +214,7 @@ %! assert (A(i,:), a); %! assert (a(j,:), A); +%!error unique({"a", "b", "c"}, "UnknownOption") +%!error unique({"a", "b", "c"}, "UnknownOption1", "UnknownOption2") +%!error unique({"a", "b", "c"}, "rows", "UnknownOption2") +%!error unique({"a", "b", "c"}, "UnknownOption1", "last")