Chris@0: function p = mygenpath(d,varargin) Chris@0: %GENPATH Generate recursive toolbox path. Chris@0: % P = GENPATH returns a new path string by adding Chris@0: % all the subdirectories of MATLABROOT/toolbox, including empty Chris@0: % subdirectories. Chris@0: % Chris@0: % P = GENPATH(D) returns a path string starting in D, plus, recursively, all Chris@0: % the subdirectories of D, including empty subdirectories. Chris@0: % Chris@0: % NOTE: GENPATH will not exactly recreate the original MATLAB path. Chris@0: % Chris@0: % See also PATH, ADDPATH, RMPATH, SAVEPATH. Chris@0: Chris@0: % Copyright 1984-2006 The MathWorks, Inc. Chris@0: % $Revision: 1.13.4.4 $ $Date: 2006/10/14 12:24:02 $ Chris@0: %------------------------------------------------------------------------------ Chris@0: Chris@0: if nargin==0, Chris@0: p = genpath(fullfile(matlabroot,'toolbox')); Chris@0: if length(p) > 1, p(end) = []; end % Remove trailing pathsep Chris@0: return Chris@0: end Chris@0: if nargin==1 Chris@0: pat = 'imporobablepatternthisis'; Chris@0: else Chris@0: pat = varargin{1}; Chris@0: end Chris@0: % initialise variables Chris@0: methodsep = '@'; % qualifier for overloaded method directories Chris@0: p = ''; % path to be returned Chris@0: Chris@0: % Generate path based on given root directory Chris@0: files = dir(d); Chris@0: if isempty(files) Chris@0: return Chris@0: end Chris@0: Chris@0: % Add d to the path even if it is empty. Chris@0: p = [p d pathsep]; Chris@0: Chris@0: % set logical vector for subdirectory entries in d Chris@0: isdir = logical(cat(1,files.isdir)); Chris@0: % Chris@0: % Recursively descend through directories which are neither Chris@0: % private nor "class" directories. Chris@0: % Chris@0: dirs = files(isdir); % select only directory entries from the current listing Chris@0: Chris@0: for i=1:length(dirs) Chris@0: dirname = dirs(i).name; Chris@0: if ~strcmp( dirname,'.') && ... Chris@0: ~strcmp( dirname,'..') && ... Chris@0: ~strncmp( dirname,methodsep,1) && ... Chris@0: ~strcmp( dirname,'private') && ... Chris@0: isempty(regexp(dirname,'svn','ONCE')) && ... Chris@0: isempty(regexp(dirname, pat,'ONCE')) Chris@0: p = [p genpath(fullfile(d,dirname))]; % recursive calling of this function. Chris@0: end Chris@0: end Chris@0: Chris@0: %------------------------------------------------------------------------------