> -----Original Message----- > From: Eric Schulte [mailto:eric.schulte@gmx.com] > Sent: Monday, May 28, 2012 10:57 AM > To: Mikhail Titov > Cc: emacs-orgmode@gnu.org > 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