emacs-matlab/toolbox/emacsrun.m
Eric Ludlam e437a87761 matlab-shell.el:
(matlab-shell-save-and-go): Use 'emacsrun' insteaad of 'run'.
toolbox/emacsrun.m:
New file.  Calls clear on the m file before running it.
Used in matlab-shell-save-and-go.
2021-02-27 13:59:22 -05:00

25 lines
760 B
Matlab

function emacsrun(mfile)
% Run code from MFILE.
% Assumes MFILE was recently edited, and proactively clears that function.
%
% Command sent by Emacs for save-and-go functionality
if ~exist(mfile,'file')
error('You must save your file into a location accessible by MATLAB process.');
end
% Now figure out if shortFileName is on the path.
[ fullFilePath, shortFileName ] = fileparts(mfile);
onpath = ~isempty(which(shortFileName));
% If not on the path, temporarilly switch to that directory so it and an files it references are
% accessible
if ~onpath
oldpath = pwd;
cd(fullFilePath);
cleanup = onCleanup(@()cd(oldpath));
end
clear(shortFileName);
evalin('base',shortFileName);
end