Skip to content

Commit 0d7a93f

Browse files
jayd1860Jay Dubb
andauthored
v1.52.0 -- Fix an issue in building and installing executable on MAC. (#144)
* v1.39.0 -- Fix matlab generated error displaying measurement list visible channels. Take MeasListVis field out of processing stream input (ProcInputClass) since it does not actually contribute to proc stream processing and move it to TreeNodeClass field chVis. * v1.40.0 -- Fix major issue with incorrect sorting of data and measurement list. -- Change unit tests to include wavelength when scrambling channel order. Also make scrambling for unit tests an option * v1.40.1 -- Add back display of standard error bars, and x and y-axis labels to MainGUI data display. -- Fix current element condition name display being cut off in PlotProbeGUI.m * -- Fix bug in shared lib synching code which incorrectly ignores differences in files with .cfg extensions thus ignoring differences in AppSettings.cfg * v1.41.0 -- Add ability to plot selected measurements in exported HRF file from ExportDataGUI -- In ConfigFileClass exclude AppSettings.cfg in submodules folder under Homer3 root folder * v1.42.0 -- Fix issue with probe.snirf or any other snirf files with no data or intentionally corrupt data being accepted as valid. -- Fix Nirs2Snirf not working for some some .nirs datasets which do not have CondNames. Add default CondNames to NirsClass.ErrorCheck() -- Fix display of mlAct in MainGUI broken after the measurement list order issue. -- For diagnostic purposes save error code in err field of all the SnirfClass sub-classes -- Add back to MainGUI making channels invisible by mouse right-clicking on them. * v1.42.1 -- Fix bug removing channels from display by mouse right-clicking in MainGUI axesSDG. Fixed incorrect distance criteria for source and detector from end points on clicked line. * v1.42.2 -- Fix error when loading snirf with corrupt stim data. Added error checking to flag bad stim data. Then add file with bad stim data and discard bad stims while displaying warning. -- Improve warning reporting for files that were allowed to load but with warnings. -- Fix matlab error in backward compatability code when derived output folder is same as root group folder * -- Log the current processing stream function call chain every time RUN button is clicked in MainGUI to generate derived data. -- Minor code formatting in SubjClass.m * v1.42.4 -- Fix bugs found by Meryem in fNIRS 2018 course SS_DEMO_1, Finger_Tapping_*.snirf. Errors when running processing stream in 1. hmrR_MotionArtifact fixed by getting rid of 'reshape' option to DataTimeSeries() 2. hmrR_OD2Conc.m fixed by getting rid of 'reshape' option to DataTimeSeries() 3. hmrR_GLM.m fixed in DataClass.m by NOT assuming source and detector indices do not skip numbers -- Just like for hmrR_MotionArtifact.m no need to reshape for hmrR_MotionArtifactByChannel.m since the -- Better error/warning logging in DataFilesClass.m and FileLoadSaveClass.m * v1.43.0 -- Set inactive channel data to NaN. That way they don't show up in MainGUI display. Implement this in DataClass: inactive channel is a channel for which all data is exactly zero (not approximately zero). -- Fix an issue in ProbeClass which incorrectly upload sourcePos3D or detectorPos3D as a column vector IF AND ONLY IF it is the ONLY optode in the probe. This leads to incorrect result in at least one user function processing hmrR_OD2Conc in which the calculation of rho is sensitive to row vs column vector. -- Fix several issues in incorrect unit tests results for Example9_SessRuns because of file naming in Simple_Probe_run* which contains '_' between Simple and Probe which are interpreted as a subject and session name. This is not how the original .nirs benchmark was processed based on the Simple_Probe*_. In order to match the original subject/session breakdown need to get rid of '_'. -- Fix another unit test bug which has to load saved derived data in compareDcAvg.m before comparing to benchmark. -- Fix another unit test bug in unitTest_BandpassFilt_LPF.m lpf wasn't being changed no matter what the value was because hmrR_BandpassFilter() changed to hmrR_BandpassFilter_old() -- Add to unit tests simulation of occasional random errors (simulateDataError.m and generateErrorOddsConstant.m) to do a check of whether the unit test is really checking data against the benchmark correctly. * -- Fix bug in SnirfClass .snirf file fomat conversion to NirsClas .nirs. -- Set default simulation of errors to none in UnitTests_Init.m -- Add namespace DataTreeClass to shared library Utils function points_on_line.m * v1.44.0 -- Fix ordering issue with active/inactive (mlAct) channels in user functions and MainGUI display. Use sources, detectors, wavelength matrix rather than a logical vector. -- When manually pruning channel only prune at the current wavelength. -- Implement missing application of active/inactive (mlAct) channels at the higher averaging user functions: hmrE_RunAvg.m, hmrG_SubjAvg.m, hmrS_SessAvg.m -- Fix incorrect nTrials calculation at the group level -- Fix PlotProbeGUI/plotProbe.m display issue as a result of fixing the MeasList ordering issue. * v1.45.0 -- Fix bug in channel exclusion in hmrR_PruneChannels.m -- Fix display of manually pruned channels in DisplayAxesSDG.m * v1.46.0 -- Fix plotProbe.m by rewriting the plotting to be based on SNIRF style 2D measurement list rather than .nirs era wavelength based measurement. * v1.47.0 -- Fix mlAct in hmrR_tCCA.m -- In PlotProbeGUI get condition dynamically from parent gui, that is MainGUI -- In PlotProbeGUI.m add back ability to display OD HRF and also any data type that is currently selected in MainGUI * v1.48.0 -- Fix very slow processing at the group, subject and session levels and slow display. All were caused by the same issue: very inefficient DataClass.GetDataTimeSeries('reshape') method. Changed it's code to be much more efficient. -- Fix typo in plotProbeAndSetProperties.m causing matlab-generated error -- Minor improvement to display of location of current processing in MainGUI listboxGroupTree when calculating provcessing stream * v1.48.1 -- Fix typo in hmrR_MotionCorrectWavelet.m causing matlab-generated exception -- More fixes in user functions hmrR_MotionArtifactByChannel.m and hmrR_MotionCorrectCbsi.m of inactive channels mlAct -- Added another performance enhancer in DataClass.GetDataTimeSeries() to speed up retrieval of measurement list and thus data time series. Added cache for measurement list matrix to avoid recalculating it. * v1.48.2 -- Capture and log to log file the function call stack when exception error occurs while running processing stream. * v1.48.3 -- Fix some child gui repositioning issues when MainGUI is upodated especially ProcStreamOptionsGUI -- Don't redisplay ProcStreamOptionsGUI if function call list is exactly same as last time. * v1.48.4 -- Fix time exclusion and motion correction by channel having incorrect channel order. Modify tIncCh to include measurement list info about sources, detectors and data type. -- Fix display of time exclusion and motion correction by channel showing incorrect channels. Clean up and rewrite DisplayExcludedTime() function. -- Improve speed of display function GetMeasurementList to use ml matrices instead of structures. Change definitions of GetMeasurementList() functions to be uniform and compatible with each other up and down the call stack, as well as having separate arguments for matrixOption ('matrix') and dataType ('dod', 'dc', dcAvg', etc). -- Minor graphics adjustment to MainGUI datatype listboxes for wavelength and HbType to be exactly overlapping * v1.50.0 -- Fix another channel order bug in DataClass.GetDataTimeSeries. order need to match linear order when squeezing dimensions > 1 into 1D. This caused incorrect results to be displayed for concentration HbT after running hmrR_MotionCorrectCbsi -- Fix minor display issue in MainGUI.m icorrectly enabling OD and concentration radio buttons even though no results exists. -- Add diagnostic/debug functions to unit test to generate simulated data time series whose data identifies the channel it originated in. * v1.51.0 -- Fix channel order issues excluded time by channel in hmrR_MotionCorrectSplineSG. Change GetDataTimeSeries to return measurement list associated with the data time series as well as adding other options to control channel order. -- Fix matlab exception bug in plot probe when clicking non-run, non-hrf data in MainGUI. Fix in plotProbeAndSetProperties.m, updateData() function which was cleaned up in addition to fixing problem. -- Fix incomplete isequal method in ProcStreamClass comparing 2 objects. This caused active ProcStreamOptionsGUI not to update correctly when removing function from function call chain in ProcStreamEditGUI. -- Fix issue in SubjClass when processing multiple sessions incorrectly adding trials from all the sessions. * v1.51.1 -- Fix matlab exception in hmrR_MotionCorrectCbsi.m because call to GetDataTimeSeries method was not updated to match new function definition. -- MainGUI and PlotProbeGUI/plotProbe.m display improvements: thinner data plot lines, exclude time patches incorrectly changing y lim. * v1.51.2 -- Fix matlab exception in hmrR_MotionCorrectSplineSG because of typo missing 'matrix' argument in GetMeasurementList(). hmrR_MotionCorrectSplineSG expects measurement list in matrix form rather than structure. * Diagnostic code which does not effect main Homer3 operation (so version number stays the same): -- Change generateSimData.m to include all data files in a group. This function replaces the files real data with fake data that has the channel ID (source idx, detector index, data type idx, condition idx) embedded in the data itself for diagnosing/uncovering channel order issues. -- Add more sim data user functions * Redo retrieval of measurement list, dataTimeSeries and mlAct to fix major issues with incorrect sorting of data. (#141) * v1.39.0 -- Fix matlab generated error displaying measurement list visible channels. Take MeasListVis field out of processing stream input (ProcInputClass) since it does not actually contribute to proc stream processing and move it to TreeNodeClass field chVis. * v1.40.0 -- Fix major issue with incorrect sorting of data and measurement list. -- Change unit tests to include wavelength when scrambling channel order. Also make scrambling for unit tests an option * v1.40.1 -- Add back display of standard error bars, and x and y-axis labels to MainGUI data display. -- Fix current element condition name display being cut off in PlotProbeGUI.m * -- Fix bug in shared lib synching code which incorrectly ignores differences in files with .cfg extensions thus ignoring differences in AppSettings.cfg * v1.41.0 -- Add ability to plot selected measurements in exported HRF file from ExportDataGUI -- In ConfigFileClass exclude AppSettings.cfg in submodules folder under Homer3 root folder * v1.42.0 -- Fix issue with probe.snirf or any other snirf files with no data or intentionally corrupt data being accepted as valid. -- Fix Nirs2Snirf not working for some some .nirs datasets which do not have CondNames. Add default CondNames to NirsClass.ErrorCheck() -- Fix display of mlAct in MainGUI broken after the measurement list order issue. -- For diagnostic purposes save error code in err field of all the SnirfClass sub-classes -- Add back to MainGUI making channels invisible by mouse right-clicking on them. * v1.42.1 -- Fix bug removing channels from display by mouse right-clicking in MainGUI axesSDG. Fixed incorrect distance criteria for source and detector from end points on clicked line. * v1.42.2 -- Fix error when loading snirf with corrupt stim data. Added error checking to flag bad stim data. Then add file with bad stim data and discard bad stims while displaying warning. -- Improve warning reporting for files that were allowed to load but with warnings. -- Fix matlab error in backward compatability code when derived output folder is same as root group folder * -- Log the current processing stream function call chain every time RUN button is clicked in MainGUI to generate derived data. -- Minor code formatting in SubjClass.m * v1.42.4 -- Fix bugs found by Meryem in fNIRS 2018 course SS_DEMO_1, Finger_Tapping_*.snirf. Errors when running processing stream in 1. hmrR_MotionArtifact fixed by getting rid of 'reshape' option to DataTimeSeries() 2. hmrR_OD2Conc.m fixed by getting rid of 'reshape' option to DataTimeSeries() 3. hmrR_GLM.m fixed in DataClass.m by NOT assuming source and detector indices do not skip numbers -- Just like for hmrR_MotionArtifact.m no need to reshape for hmrR_MotionArtifactByChannel.m since the -- Better error/warning logging in DataFilesClass.m and FileLoadSaveClass.m * v1.43.0 -- Set inactive channel data to NaN. That way they don't show up in MainGUI display. Implement this in DataClass: inactive channel is a channel for which all data is exactly zero (not approximately zero). -- Fix an issue in ProbeClass which incorrectly upload sourcePos3D or detectorPos3D as a column vector IF AND ONLY IF it is the ONLY optode in the probe. This leads to incorrect result in at least one user function processing hmrR_OD2Conc in which the calculation of rho is sensitive to row vs column vector. -- Fix several issues in incorrect unit tests results for Example9_SessRuns because of file naming in Simple_Probe_run* which contains '_' between Simple and Probe which are interpreted as a subject and session name. This is not how the original .nirs benchmark was processed based on the Simple_Probe*_. In order to match the original subject/session breakdown need to get rid of '_'. -- Fix another unit test bug which has to load saved derived data in compareDcAvg.m before comparing to benchmark. -- Fix another unit test bug in unitTest_BandpassFilt_LPF.m lpf wasn't being changed no matter what the value was because hmrR_BandpassFilter() changed to hmrR_BandpassFilter_old() -- Add to unit tests simulation of occasional random errors (simulateDataError.m and generateErrorOddsConstant.m) to do a check of whether the unit test is really checking data against the benchmark correctly. * -- Fix bug in SnirfClass .snirf file fomat conversion to NirsClas .nirs. -- Set default simulation of errors to none in UnitTests_Init.m -- Add namespace DataTreeClass to shared library Utils function points_on_line.m * v1.44.0 -- Fix ordering issue with active/inactive (mlAct) channels in user functions and MainGUI display. Use sources, detectors, wavelength matrix rather than a logical vector. -- When manually pruning channel only prune at the current wavelength. -- Implement missing application of active/inactive (mlAct) channels at the higher averaging user functions: hmrE_RunAvg.m, hmrG_SubjAvg.m, hmrS_SessAvg.m -- Fix incorrect nTrials calculation at the group level -- Fix PlotProbeGUI/plotProbe.m display issue as a result of fixing the MeasList ordering issue. * v1.45.0 -- Fix bug in channel exclusion in hmrR_PruneChannels.m -- Fix display of manually pruned channels in DisplayAxesSDG.m * v1.46.0 -- Fix plotProbe.m by rewriting the plotting to be based on SNIRF style 2D measurement list rather than .nirs era wavelength based measurement. * v1.47.0 -- Fix mlAct in hmrR_tCCA.m -- In PlotProbeGUI get condition dynamically from parent gui, that is MainGUI -- In PlotProbeGUI.m add back ability to display OD HRF and also any data type that is currently selected in MainGUI * v1.48.0 -- Fix very slow processing at the group, subject and session levels and slow display. All were caused by the same issue: very inefficient DataClass.GetDataTimeSeries('reshape') method. Changed it's code to be much more efficient. -- Fix typo in plotProbeAndSetProperties.m causing matlab-generated error -- Minor improvement to display of location of current processing in MainGUI listboxGroupTree when calculating provcessing stream * v1.48.1 -- Fix typo in hmrR_MotionCorrectWavelet.m causing matlab-generated exception -- More fixes in user functions hmrR_MotionArtifactByChannel.m and hmrR_MotionCorrectCbsi.m of inactive channels mlAct -- Added another performance enhancer in DataClass.GetDataTimeSeries() to speed up retrieval of measurement list and thus data time series. Added cache for measurement list matrix to avoid recalculating it. * v1.48.2 -- Capture and log to log file the function call stack when exception error occurs while running processing stream. * v1.48.3 -- Fix some child gui repositioning issues when MainGUI is upodated especially ProcStreamOptionsGUI -- Don't redisplay ProcStreamOptionsGUI if function call list is exactly same as last time. * v1.48.4 -- Fix time exclusion and motion correction by channel having incorrect channel order. Modify tIncCh to include measurement list info about sources, detectors and data type. -- Fix display of time exclusion and motion correction by channel showing incorrect channels. Clean up and rewrite DisplayExcludedTime() function. -- Improve speed of display function GetMeasurementList to use ml matrices instead of structures. Change definitions of GetMeasurementList() functions to be uniform and compatible with each other up and down the call stack, as well as having separate arguments for matrixOption ('matrix') and dataType ('dod', 'dc', dcAvg', etc). -- Minor graphics adjustment to MainGUI datatype listboxes for wavelength and HbType to be exactly overlapping * v1.50.0 -- Fix another channel order bug in DataClass.GetDataTimeSeries. order need to match linear order when squeezing dimensions > 1 into 1D. This caused incorrect results to be displayed for concentration HbT after running hmrR_MotionCorrectCbsi -- Fix minor display issue in MainGUI.m icorrectly enabling OD and concentration radio buttons even though no results exists. -- Add diagnostic/debug functions to unit test to generate simulated data time series whose data identifies the channel it originated in. * v1.51.0 -- Fix channel order issues excluded time by channel in hmrR_MotionCorrectSplineSG. Change GetDataTimeSeries to return measurement list associated with the data time series as well as adding other options to control channel order. -- Fix matlab exception bug in plot probe when clicking non-run, non-hrf data in MainGUI. Fix in plotProbeAndSetProperties.m, updateData() function which was cleaned up in addition to fixing problem. -- Fix incomplete isequal method in ProcStreamClass comparing 2 objects. This caused active ProcStreamOptionsGUI not to update correctly when removing function from function call chain in ProcStreamEditGUI. -- Fix issue in SubjClass when processing multiple sessions incorrectly adding trials from all the sessions. * v1.51.1 -- Fix matlab exception in hmrR_MotionCorrectCbsi.m because call to GetDataTimeSeries method was not updated to match new function definition. -- MainGUI and PlotProbeGUI/plotProbe.m display improvements: thinner data plot lines, exclude time patches incorrectly changing y lim. * v1.51.2 -- Fix matlab exception in hmrR_MotionCorrectSplineSG because of typo missing 'matrix' argument in GetMeasurementList(). hmrR_MotionCorrectSplineSG expects measurement list in matrix form rather than structure. * Diagnostic code which does not effect main Homer3 operation (so version number stays the same): -- Change generateSimData.m to include all data files in a group. This function replaces the files real data with fake data that has the channel ID (source idx, detector index, data type idx, condition idx) embedded in the data itself for diagnosing/uncovering channel order issues. -- Add more sim data user functions * v1.52.0 -- Fix an issue in building and installing executable on MAC. -- Improve OpenFileGUI for opening processOpt config file on MAC. Co-authored-by: Jay Dubb <[email protected]>
1 parent 52ec620 commit 0d7a93f

File tree

12 files changed

+89
-133
lines changed

12 files changed

+89
-133
lines changed

DataTree/ProcStream/ProcStreamClass.m

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -705,7 +705,7 @@ function ClearFcalls(obj)
705705
fprintf('Default config file exists. Processing stream will be loaded from %s\n', fname);
706706
return;
707707
end
708-
fname = OpenFileGUI(procStreamCfgFile, pathname,'Load Processing Options File');
708+
fname = OpenFileGUI(procStreamCfgFile, pathname,'Load Processing Options File','.cfg');
709709
if isempty(fname)
710710
fname = [pathname, procStreamCfgFile];
711711
fprintf('Loading default config file.\n');

Install/homePageFullPath.m

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
function pathname = homePageFullPath()
2+
pathname = '';
3+
currdir = pwd;
4+
if ismac() || islinux()
5+
cd('~/');
6+
pathname = filesepStandard(pwd);
7+
end
8+
cd(currdir)
9+

Install/run_Homer3.sh

Lines changed: 0 additions & 32 deletions
This file was deleted.

Install/setup.command

Lines changed: 0 additions & 61 deletions
This file was deleted.

Install/setup.m

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,6 @@ function setup()
55
global dirnameDst
66

77
try
8-
9-
setNamespace('Homer3');
108

119
currdir = filesepStandard(pwd);
1210

@@ -45,7 +43,7 @@ function setup()
4543

4644
% ------------------------------------------------------------
4745
function main()
48-
global h
46+
global h %#ok<*GVMIS>
4947
global nSteps
5048
global iStep
5149
global platform
@@ -145,27 +143,27 @@ function main()
145143

146144
% Change source dir if not on PC
147145
if ~ispc()
148-
dirnameSrc = sprintf('~/Downloads/%s_install/', lower(getAppname));
146+
dirnameSrc0 = dirnameSrc;
147+
dirnameSrc = sprintf('%sDownloads/%s_install/', homePageFullPath(), lower(getAppname));
149148
fprintf('SETUP: current folder is %s\n', pwd);
150149

151150
if ~isdeployed()
152-
rmdir_safe(sprintf('~/Desktop/%s_install/', lower(getAppname())));
151+
rmdir_safe(sprintf('%sDesktop/%s_install/', homePageFullPath(), lower(getAppname())));
153152
if ~pathscompare(dirnameSrc, dirnameSrc0)
154153
rmdir_safe(dirnameSrc);
155154
if ispathvalid(dirnameSrc)
156155
err = -1;
157156
end
158157
copyFile(dirnameSrc0, dirnameSrc);
159158
end
160-
rmdir_safe('~/Desktop/Test/');
159+
rmdir_safe(sprintf('%sDesktop/Test/', homePageFullPath()));
161160

162-
if ispathvalid('~/Desktop/%s_install/')
161+
if ispathvalid(sprintf('%sDesktop/%s_install/', homePageFullPath()))
163162
err = -1;
164163
end
165-
if ispathvalid('~/Desktop/Test/')
164+
if ispathvalid(sprintf('%sDesktop/Test/', homePageFullPath()))
166165
err = -1;
167166
end
168-
169167
cd(dirnameSrc);
170168
end
171169
end
@@ -288,3 +286,6 @@ function createDesktopShortcuts(dirnameSrc, dirnameDst)
288286
return;
289287
end
290288

289+
290+
291+

Utils/OpenFileGUI.fig

278 Bytes
Binary file not shown.

Utils/OpenFileGUI.m

Lines changed: 27 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -114,13 +114,14 @@ function GenerateFolderList()
114114
filenames{kk,1} = files(ii).name; %#ok<*AGROW>
115115
kk = kk+1;
116116
elseif ispathvalid([OpenFile.rootpath, files(ii).name], 'dir')
117-
dirnames{mm,1} = files(ii).name; %#ok<*AGROW>
117+
dirnames{mm,1} = [files(ii).name, '/']; %#ok<*AGROW>
118118
mm = mm+1;
119119
end
120120
end
121121
OpenFile.filesCurrFolder = [dirnames; filenames];
122122

123123

124+
124125
% ------------------------------------------------------------------------
125126
function b = UsePlatformWindow()
126127
global OpenFile
@@ -183,7 +184,8 @@ function OpenFileGUI_OpeningFcn(hObject, ~, handles, varargin)
183184
setGuiFonts(hObject, fs)
184185

185186
% Set focus on file name edit box
186-
uicontrol(handles.editFilename);
187+
% uicontrol(handles.editFilename);
188+
uicontrol(handles.listboxFilesFolders);
187189
waitForGui(hObject, true);
188190

189191

@@ -226,7 +228,18 @@ function editFilename_Callback(hObject, eventdata, handles) %#ok<*DEFNU>
226228

227229
% ------------------------------------------------------------------------
228230
function listboxFilesFolders_Callback(hObject, eventdata, handles)
229-
global OpenFile %#ok<*GVMIS>
231+
global OpenFile %#ok<*GVMIS>
232+
233+
keypress = getappdata(hObject, 'keypress');
234+
if isempty(keypress)
235+
setappdata(hObject, 'keypress',0)
236+
elseif keypress == 1
237+
setappdata(hObject, 'keypress',0)
238+
return
239+
else
240+
setappdata(hObject, 'keypress',0)
241+
end
242+
230243
idx = get(hObject, 'value');
231244
filenames = get(hObject, 'string');
232245
if isempty(filenames)
@@ -296,3 +309,14 @@ function pushbuttonCancel_Callback(~, ~, handles)
296309

297310
% ------------------------------------------------------------------------
298311
function dummyfunc(~, ~, ~)
312+
313+
314+
% ------------------------------------------------------------------------
315+
function listboxFilesFolders_KeyPressFcn(hObject, eventdata, handles)
316+
if strcmp(eventdata.Key, 'downarrow') || strcmp(eventdata.Key, 'uparrow')
317+
setappdata(hObject, 'keypress',1)
318+
elseif strcmp(eventdata.Key, 'return')
319+
editFilename_Callback(handles.editFilename, 1, handles);
320+
end
321+
322+

Utils/submodules/findDotMFolders.m

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,7 @@
11
function dotmfolders = findDotMFolders(subdir, exclList)
2+
global MAXPATHLENGTH
3+
MAXPATHLENGTH = 8;
4+
25
dotmfolders = {};
36

47
if ~exist('subdir','var')
@@ -49,6 +52,7 @@
4952

5053
% -------------------------------------------------------------------------
5154
function b = isdotmfolder(folder)
55+
global MAXPATHLENGTH
5256
b = false;
5357
if ~ispathvalid_startup(folder, 'dir')
5458
return
@@ -61,6 +65,14 @@
6165
return
6266
end
6367
return;
68+
else
69+
rootdir = which('findDotMFolders');
70+
rootdir = fileparts(rootdir);
71+
rootdir = pathsubtract_startup(rootdir, 'Utils/submodules','nochange');
72+
p = pathsubtract_startup(folder, rootdir);
73+
if length(find(p=='/')) > MAXPATHLENGTH
74+
return
75+
end
6476
end
6577
b = true;
6678

Utils/submodules/getLastRevisionDate.m

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,10 +17,10 @@
1717
return
1818
end
1919

20-
21-
if pathscompare(repoParentFull, subdir)
20+
if pathscompare_startup(repoParentFull, subdir)
2221
[dateNum, dateStr] = gitLastRevDate(repoParentFull);
2322
else
24-
subdir = pathsubtract(subdir, repoParentFull);
23+
subdir = pathsubtract_startup(subdir, repoParentFull);
2524
[dateNum, dateStr] = gitLastRevDate(repoParentFull, subdir);
2625
end
26+

Utils/submodules/pathsubtract.m

Lines changed: 0 additions & 23 deletions
This file was deleted.

0 commit comments

Comments
 (0)