fix uncommon bug in parsing dynare command line options

previously, `nopathchange` and `nopreprocessoroutput` were set even if they were values instead of option names.

`nopathchange` would further remove all options that contained `'nopathchange'`

e.g. `dynare example1.mod savemacro=nopathchange` would erroneously set `nopathchange` to true and would delete the `savemacro` option altogether

In the fix, just check that the match starts in position 1 as, if the argument passed is longer than the matching pattern (e.g. nopathchangee), the preprocessor will stop processing with a usage error
parent 21841958
......@@ -51,15 +51,12 @@ change_path_flag = true;
% Filter out some options.
preprocessoroutput = true;
if nargin>1
id = strfind(varargin,'nopathchange');
if ~all(cellfun(@isempty, id))
id = ismember(varargin, 'nopathchange');
if any(id)
change_path_flag = false;
varargin(cellfun(@isempty, id) == 0) = [];
end
id = strfind(varargin, 'nopreprocessoroutput');
if ~all(cellfun(@isempty, id))
preprocessoroutput = false;
varargin(id) = [];
end
preprocessoroutput = ~ismember('nopreprocessoroutput', varargin);
end
% Check matlab path
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment