# HG changeset patch # User Ryan Starret # Date 1332949397 14400 # Node ID ff4143d9fc0533233a10279fd31d5c401c102fbd # Parent 30597f98f80a5fac4293d3e66212c87ba9f8e961 menu.m: Accept cell array input choices (patch #7712) diff --git a/scripts/miscellaneous/menu.m b/scripts/miscellaneous/menu.m --- a/scripts/miscellaneous/menu.m +++ b/scripts/miscellaneous/menu.m @@ -44,13 +44,41 @@ page_screen_output (0, "local"); + ## Process Supplied Options + if (nargin == 2) + ## List in a cell array + if (iscell (varargin{1})) + varargin = varargin{1}; + nopt = length (varargin); + for i = 1:nopt + while iscell (varargin{i}) + varargin{i} = varargin{i}{1}; + endwhile + endfor + else + nopt = nargin - 1; + endif + else + ## List with random elements in it - pick the first always + for i = 1:nargin - 1 + if (iscell (varargin{i})) + while (iscell (varargin{i})) + varargin{i} = varargin{i}{1}; + endwhile + else + if (! ischar (varargin{i})) + varargin{i} = varargin{i}(1); + endif + endif + endfor + nopt = length (varargin); + endif + if (! isempty (title)) disp (title); printf ("\n"); endif - nopt = nargin - 1; - while (1) for i = 1:nopt printf (" [%2d] ", i);