From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?utf-8?Q?S=C3=A9bastien_Vauban?= Subject: Re: [babel] Executing sh-code Date: Sun, 29 Nov 2009 22:03:50 +0100 Message-ID: <87638tnivd.fsf@mundaneum.com> References: <87k4xey99s.fsf@mundaneum.com> <200911271900.08393.torsten.wagner@googlemail.com> <87ws1cgsd6.fsf@mundaneum.com> <877htb4uow.fsf@stats.ox.ac.uk> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Return-path: List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org-mXXj517/zsQ@public.gmane.org Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org-mXXj517/zsQ@public.gmane.org To: emacs-orgmode-mXXj517/zsQ@public.gmane.org Hi Eric and Dan, Dan Davison wrote: > S=C3=A9bastien Vauban writes: >> Torsten Wagner wrote: >>> This works for me (I changed the folder name). There is a error line in= my >>> message buffer: >>> >>> executing Shell source code block >>> ~/babel=20 >>> save-current-buffer: Wrong type argument: char-or-string-p, nil >>> >>> but the relevent part runs ok. My shell buffer depict to the new folder >>> after execution: >>> >>> torsten@gaijin ~ %=20 >>> cd ~/babel >>> echo 'org_babel_sh_eoe' >>> torsten@gaijin ~ % cd ~/babel >>> torsten@gaijin ~/babel (git)-[master] % > >> It stops working only when I add `:session "whatever"' after the `sh' >> specification. >> >> That's the only difference between when it works and when it doesn't. > > You discovered a tricky bug in the session-based evaluation of shell bloc= ks. Just for my information (maybe being able to be more accurate next time, or even finding a solution myself), how do you debug such a problem? With which debugger, with tracing/stepping? With stack trace? > I've just pushed up a fix which fixes this bug and generally cleans up the > code executing sh blocks inside of interactive sessions. Please try the > latest and see if the problem persists. Just did: git pull && make clean && make. > I'm also seeing problems with shell session evaluation but having > trouble debugging. My current suspicion is that the prompt characters > are the problem here (something which differs between you and Torsten) > Could you try using a prompt that ends in '% '? E.g. on ubuntu at least > I can set the prompt in emacs shell sessions with a line like > > PS1=3D'\w % ' > > in ~/.emacs_bash. I did this in my .bashrc: --8<---------------cut here---------------start------------->8--- # my format of the prompt function my_prompt_command () { # colorful prompt, based on whether the previous command succeeded or n= ot if [[ $? -eq 0 ]]; then HILIT=3D${GREEN} else HILIT=3D${RED} fi # replace the $HOME prefix by ~ in the current directory if [[ $HOME =3D=3D ${PWD:0:${#HOME}} ]]; then NEWPWD=3D"~${PWD:${#HOME}}" else NEWPWD=3D$PWD fi # how many characters of the $PWD should be kept local pwd_max_length=3D15 if [[ ${#NEWPWD} -gt $pwd_max_length ]]; then local pwd_offset=3D$(( ${#NEWPWD} - $pwd_max_length )) NEWPWD=3D"...${NEWPWD:$pwd_offset:$pwd_max_length}" fi # prompt character if [[ $(whoami) =3D "root" ]]; then local PROMPTCHAR=3D"#" else local PROMPTCHAR=3D">" fi case $TERM in # TODO use `date' instead of escape characters... dumb) # Emacs shell mode and Tramp among others setenv PS1 "[\u@\h] ${NEWPWD}${PROMPTCHAR}" ;; emacs | *) # Emacs is handled in the same way as other terminals, if it's # configured to use `ansi-color' to translate ANSI escape # sequences into colored faces setenv PS1 "\w % " ;; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<< ;; esac } --8<---------------cut here---------------end--------------->8--- > Also, please pull latest git as we have just fixed an unrelated bug in > shell session-based evaluation. Now, with the new version and the prompt change, what's the result? Let's assume the following Org file: --8<---------------cut here---------------start------------->8--- #+begin_src sh :session "ecm" cd ~/Personal #+end_src #+begin_src sh :session "ecm" ls *.org #+end_src --8<---------------cut here---------------end--------------->8--- I C-c C-c the first snippet. Nothing special, except it doesn't hang anymor= e. So, it already looks much better. Second snippet. C-c C-c. There, it still hangs=C2=A0;-(( Though, C-x C-b shows me the contents of the "ecm" buffer: --8<---------------cut here---------------start------------->8--- cd ~/Personal ~ % ~/Personal % ls *.org echo 'org_babel_sh_eoe' Bookmarks.org Scorpios.org Tickler.org Voice-o= ver-IP.org* Home.org* Succession.org Using-startx-for-Remote-Display.org refile.= org ~/Personal % org_babel_sh_eoe ~/Personal %=20 --8<---------------cut here---------------end--------------->8--- Looks closer to what it should... Still a little problem, though, as explained above. BTW, what's the impact of specifying "sh" or "bash" for the snippet? Best regards, Seb --=20 S=C3=A9bastien Vauban _______________________________________________ Emacs-orgmode mailing list Please use `Reply All' to send replies to the list. Emacs-orgmode-mXXj517/zsQ@public.gmane.org http://lists.gnu.org/mailman/listinfo/emacs-orgmode