28 lines
818 B
Matlab
28 lines
818 B
Matlab
function emacsrun(mfile, varargin)
|
|
% Run code from MFILE.
|
|
% Assumes MFILE was recently edited, and proactively clears that function.
|
|
%
|
|
% Command sent by Emacs for save-and-go functionality
|
|
|
|
% Now figure out if shortFileName is on the path.
|
|
[ fullFilePath, shortFileName ] = fileparts(mfile);
|
|
onpath = ~isempty(which(shortFileName));
|
|
|
|
if ~exist(fullFilePath,'file')
|
|
error('You must save your file into a location accessible by MATLAB process.');
|
|
end
|
|
|
|
|
|
% 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);
|
|
|
|
cmd = [ shortFileName varargin{:} ];
|
|
|
|
evalin('base',cmd);
|
|
end |