[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [O] [babel, patch] ob-octave does not catch EOE from matlabShell on
From: |
Mikhail Titov |
Subject: |
Re: [O] [babel, patch] ob-octave does not catch EOE from matlabShell on MS Windows |
Date: |
Tue, 29 May 2012 12:00:44 -0500 |
> -----Original Message-----
> From: Eric Schulte [mailto:address@hidden
> Sent: Monday, May 28, 2012 10:57 AM
> To: Mikhail Titov
> Cc: address@hidden
> Subject: Re: [O] [babel, patch] ob-octave does not catch EOE from
matlabShell
> on MS Windows
>
> ...
> >>
> >> It looks like org-babel-octave-eoe-output and org-babel-octave-eoe-
> indicator
> >> were swapped around in org-babel-octave-evaluate-session .
> >>
> >> I have the following in dot emacs
> >>
> >> (setq org-babel-octave-eoe-output "
> >> ans =
> >>
> >> org_babel_eoe
> >>
> >> ")
> >
> > For the sake of completeness I'm attaching the patch. Also one should
> override
> >
> > (setq org-babel-matlab-emacs-link-wrapper-method
> > "%s
> > if ischar(ans), fid = fopen('%s', 'w'); fprintf(fid, '%%s\\n', ans);
> fclose(fid); else, save -ascii %s ans ; end
> > delete('%s')
> > ")
> >
> > as matlabShell does not like commands split across multiple lines.
> >
>
> Thanks for sending along the patch and the variable re-definition.
I was in the hurry and the second variable should have been
(setq org-babel-octave-wrapper-method
"%s
if ischar(ans), fid = fopen('%s', 'w'); fprintf(fid, '%%s\\n', ans);
fclose(fid); else, dlmwrite('%s', ans, '\\t'); end")
and not org-babel-matlab-emacs-link-wrapper-method . The only difference
from what is already in there, is that it should be a single line (with ;
delimiters). It might be a limitation of matlabShell.
>From what I understand EmacsLink is something outdated and not supported
anymore as there is matlab-emacs mode.
Also the patch was missing yet another change to use single quotes instead
of double quotes when making default figures invisible. I'm attaching the
patch I ended up using.
> If I
> understand correctly then the patch should be applied for any system,
> but the variable definition need only be applied on windows systems. Is
> that correct?
Unfortunately I don't have Matlab installed on my home GNU/Linux computer,
I'll see if I'm eligible and can get one.
What bugs me though is that I can't use both octave and matlab as they use
same variable (org-babel-octave-eoe-output) which should be set to different
values. In org-babel-comint-with-output macro (ob-comint.el) it is used to
check if shell/REPL is done with evaluation and ready for input. I wonder if
it is possible to generalize org-babel-octave-eoe-output for both matlab and
octave as the only difference is the bunch of newlines in Matlab output. One
may write a regexp that matches both, however "(regexp-quote
,eoe-indicator)" in aforementioned macro confuses me. So it got to be a
plain string.
M.
> Can anyone confirm that matlab/octave code blocks are still functional
> on a GNU/Linux machine after the above patch and redefinition have been
> applied? I do not use octave/matlab myself and can't verify this.
>
> If they don't break anything I'm happy to apply these patches.
>
> Thanks,
>
> --
> Eric Schulte
> http://cs.unm.edu/~eschulte
ob-octave_matlab_updated.patch
Description: Binary data
- [O] [babel] ob-octave does not catch EOE from matlabShell on MS Windows, Mikhail Titov, 2012/05/24
- Re: [O] [babel] ob-octave does not catch EOE from matlabShell on MS Windows, Mikhail Titov, 2012/05/24
- Re: [O] [babel] ob-octave does not catch EOE from matlabShell on MS Windows, Mikhail Titov, 2012/05/25
- Re: [O] [babel, patch] ob-octave does not catch EOE from matlabShell on MS Windows, Mikhail Titov, 2012/05/25
- Re: [O] [babel, patch] ob-octave does not catch EOE from matlabShell on MS Windows, Eric Schulte, 2012/05/28
- Re: [O] [babel, patch] ob-octave does not catch EOE from matlabShell on MS Windows, Achim Gratz, 2012/05/28
- Re: [O] [babel, patch] ob-octave does not catch EOE from matlabShell on MS Windows, Mikhail Titov, 2012/05/30
- Re: [O] [babel, patch] ob-octave does not catch EOE from matlabShell on MS Windows, Eric Schulte, 2012/05/30
- Re: [O] [babel, patch] ob-octave does not catch EOE from matlabShell on MS Windows, Achim Gratz, 2012/05/30
- Re: [O] [babel, patch] ob-octave does not catch EOE from matlabShell on MS Windows,
Mikhail Titov <=