wolffd@0: function p = genpathKPM(d) wolffd@0: % genpathKPM Like built-in genpath, but omits directories whose name is 'Old', 'old' or 'CVS' wolffd@0: % function p = genpathKPM(d) wolffd@0: wolffd@0: if nargin==0, wolffd@0: p = genpath(fullfile(matlabroot,'toolbox')); wolffd@0: if length(p) > 1, p(end) = []; end % Remove trailing pathsep wolffd@0: return wolffd@0: end wolffd@0: wolffd@0: % initialise variables wolffd@0: methodsep = '@'; % qualifier for overloaded method directories wolffd@0: p = ''; % path to be returned wolffd@0: wolffd@0: % Generate path based on given root directory wolffd@0: files = dir(d); wolffd@0: if isempty(files) wolffd@0: return wolffd@0: end wolffd@0: wolffd@0: % Add d to the path even if it is empty. wolffd@0: p = [p d pathsep]; wolffd@0: wolffd@0: % set logical vector for subdirectory entries in d wolffd@0: isdir = logical(cat(1,files.isdir)); wolffd@0: % wolffd@0: % Recursively descend through directories which are neither wolffd@0: % private nor "class" directories. wolffd@0: % wolffd@0: dirs = files(isdir); % select only directory entries from the current listing wolffd@0: wolffd@0: for i=1:length(dirs) wolffd@0: dirname = dirs(i).name; wolffd@0: if ~strcmp( dirname,'.') & ... wolffd@0: ~strcmp( dirname,'..') & ... wolffd@0: ~strncmp( dirname,methodsep,1)& ... wolffd@0: ~strcmp( dirname,'private') & ... wolffd@0: ~strcmp( dirname, 'old') & ... % KPM wolffd@0: ~strcmp( dirname, 'Old') & ... % KPM wolffd@0: ~strcmp( dirname, 'CVS') % KPM wolffd@0: p = [p genpathKPM(fullfile(d,dirname))]; % recursive calling of this function. wolffd@0: end wolffd@0: end wolffd@0: wolffd@0: %------------------------------------------------------------------------------