emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
* Bug: :session doesn't honor :verbatim [8.2.10 (release_8.2.10 @ /usr/local/share/emacs/26.0.50/lisp/org/)]
@ 2017-04-16  8:43 Michael Albinus
  2017-04-16 10:58 ` Tilmann Singer
  0 siblings, 1 reply; 6+ messages in thread
From: Michael Albinus @ 2017-04-16  8:43 UTC (permalink / raw)
  To: emacs-orgmode

Hi,

when I eval the following source block, everything is fine:

#+BEGIN_SRC sh :results verbatim
df -h /
#+END_SRC

#+RESULTS:
: Filesystem      Size  Used Avail Use% Mounted on
: /dev/sda6       137G   55G   76G  43% /

However, using a :session shortens the output unexpectedly:

#+BEGIN_SRC sh :results verbatim :session *session*
df -h /
#+END_SRC

#+RESULTS:
: 
: Mounted on
: /

I suppose it is due to the "%" character in the output, because the
following works fine:

#+BEGIN_SRC sh :results verbatim :session *session*
df --output=source,size,used,avail,target -h /
#+END_SRC

#+RESULTS:
: Filesystem      Size  Used Avail Mounted on
: /dev/sda6       137G   55G   76G /


Emacs  : GNU Emacs 26.0.50 (build 44, x86_64-pc-linux-gnu, GTK+ Version 2.24.30)
 of 2017-03-31
Package: Org-mode version 8.2.10 (release_8.2.10 @ /usr/local/share/emacs/26.0.50/lisp/org/)

current state:
==============
(setq
 org-src-mode-hook '(org-src-babel-configure-edit-buffer
		     org-src-mode-configure-edit-buffer)
 org-after-todo-state-change-hook '(org-clock-out-if-current)
 org-metadown-hook '(org-babel-pop-to-session-maybe)
 org-clock-out-hook '(org-clock-remove-empty-clock-drawer)
 org-mode-hook '(#[nil "\300\301\302\303\304$\207"
		   [org-add-hook change-major-mode-hook org-show-block-all
		    append local]
		   5]
		 #[nil "\300\301\302\303\304$\207"
		   [org-add-hook change-major-mode-hook
		    org-babel-show-result-all append local]
		   5]
		 org-babel-result-hide-spec org-babel-hide-all-hashes)
 org-confirm-elisp-link-function 'yes-or-no-p
 org-agenda-before-write-hook '(org-agenda-add-entry-text)
 org-metaup-hook '(org-babel-load-in-session-maybe)
 org-babel-pre-tangle-hook '(save-buffer)
 org-tab-first-hook '(org-hide-block-toggle-maybe
		      org-src-native-tab-command-maybe
		      org-babel-hide-result-toggle-maybe
		      org-babel-header-arg-expand)
 org-occur-hook '(org-first-headline-recenter)
 org-ctrl-c-ctrl-c-hook '(org-babel-hash-at-point
			  org-babel-execute-safely-maybe)
 org-cycle-hook '(org-cycle-hide-archived-subtrees org-cycle-hide-drawers
		  org-cycle-hide-inline-tasks org-cycle-show-empty-lines
		  org-optimize-window-after-visibility-change)
 org-speed-command-hook '(org-speed-command-default-hook
			  org-babel-speed-command-hook)
 org-confirm-shell-link-function 'yes-or-no-p
 )

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: Bug: :session doesn't honor :verbatim [8.2.10 (release_8.2.10 @ /usr/local/share/emacs/26.0.50/lisp/org/)]
  2017-04-16  8:43 Bug: :session doesn't honor :verbatim [8.2.10 (release_8.2.10 @ /usr/local/share/emacs/26.0.50/lisp/org/)] Michael Albinus
@ 2017-04-16 10:58 ` Tilmann Singer
  2017-04-16 17:19   ` Charles C. Berry
  0 siblings, 1 reply; 6+ messages in thread
From: Tilmann Singer @ 2017-04-16 10:58 UTC (permalink / raw)
  To: Michael Albinus, emacs-orgmode

[-- Attachment #1: Type: text/plain, Size: 710 bytes --]

Let me add that when not specifying ":results verbatim", the presence of
the % sign in the output also triggers table formatting:

#+BEGIN_SRC sh :session *session*
echo "a%b"
#+END_SRC

#+RESULTS:
|   |
| b |


Whereas without session, the output is formatted like this

#+BEGIN_SRC sh
echo "a%b"
#+END_SRC

#+RESULTS:
: a%b


And if the session has not been opened already, then the first time
evaluation does not cut off the results:

#+BEGIN_SRC sh :session *session2*
echo "a%b"
#+END_SRC

#+RESULTS:
|     |
| a%b |


greetings, Til

Emacs : GNU Emacs 25.1.1 (x86_64-unknown-linux-gnu, GTK+ Version 3.22.7) of 2017-02-07
Package : Org mode version 9.0 (9.0-elpa @ /home/tils/.emacs.d/elpa/org-20161102/)

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 487 bytes --]

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: Bug: :session doesn't honor :verbatim [8.2.10 (release_8.2.10 @ /usr/local/share/emacs/26.0.50/lisp/org/)]
  2017-04-16 10:58 ` Tilmann Singer
@ 2017-04-16 17:19   ` Charles C. Berry
  2017-04-16 21:46     ` Michael Albinus
  0 siblings, 1 reply; 6+ messages in thread
From: Charles C. Berry @ 2017-04-16 17:19 UTC (permalink / raw)
  To: Tilmann Singer; +Cc: emacs-orgmode, Michael Albinus

On Sun, 16 Apr 2017, Tilmann Singer wrote:

> Let me add that when not specifying ":results verbatim", the presence of
> the % sign in the output also triggers table formatting:
>
> #+BEGIN_SRC sh :session *session*
> echo "a%b"
> #+END_SRC
>
> #+RESULTS:
> |   |
> | b |
>

The extra line looks like a bug in babel. The session will show:

echo "a%b"
bash-3.2$ a%b

as the first two lines in the buffer.

--

Michael might get some relief by altering `shell-prompt-pattern' whose 
default value is

"^[^#$%>\n]*[#$%>] *"

is tricked by the embedded `%' in the output lines

If you know the prompt will not contain `%', you could delete that.

Changing the asterisk to a plus might work (untested) or maybe adding a 
blank in the first (negated) char class (also untested). Or if you know 
what the prompt will be literally, use that: "^My-prompt-[$] *"

[snip]

HTH,

Chuck

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: Bug: :session doesn't honor :verbatim [8.2.10 (release_8.2.10 @ /usr/local/share/emacs/26.0.50/lisp/org/)]
  2017-04-16 17:19   ` Charles C. Berry
@ 2017-04-16 21:46     ` Michael Albinus
  2017-04-16 23:14       ` Charles C. Berry
  0 siblings, 1 reply; 6+ messages in thread
From: Michael Albinus @ 2017-04-16 21:46 UTC (permalink / raw)
  To: Charles C. Berry; +Cc: emacs-orgmode, Tilmann Singer

"Charles C. Berry" <ccberry@ucsd.edu> writes:

> Michael might get some relief by altering `shell-prompt-pattern' whose
> default value is
>
> "^[^#$%>\n]*[#$%>] *"
>
> is tricked by the embedded `%' in the output lines
>
> If you know the prompt will not contain `%', you could delete that.
>
> Changing the asterisk to a plus might work (untested) or maybe adding
> a blank in the first (negated) char class (also untested). Or if you
> know what the prompt will be literally, use that: "^My-prompt-[$] *"

I've eval'ed (setq shell-prompt-pattern "^[^#$>\n]*[#$>] *") , this
helps. Thanks for the tip.

However, I don't want to change this globally. Is there an org mean to
change this locally just for the session?

Maybe the shell prompt could be customizable for a session in ob-sh.el?

> HTH,
>
> Chuck

Best regards, Michael.

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: Bug: :session doesn't honor :verbatim [8.2.10 (release_8.2.10 @ /usr/local/share/emacs/26.0.50/lisp/org/)]
  2017-04-16 21:46     ` Michael Albinus
@ 2017-04-16 23:14       ` Charles C. Berry
  2017-04-17  7:53         ` Michael Albinus
  0 siblings, 1 reply; 6+ messages in thread
From: Charles C. Berry @ 2017-04-16 23:14 UTC (permalink / raw)
  To: Michael Albinus; +Cc: emacs-orgmode, Tilmann Singer

On Sun, 16 Apr 2017, Michael Albinus wrote:

> "Charles C. Berry" <ccberry@ucsd.edu> writes:
>
>> Michael might get some relief by altering `shell-prompt-pattern' whose
>> default value is
>>
>> "^[^#$%>\n]*[#$%>] *"
>>
>> is tricked by the embedded `%' in the output lines
>>
>> If you know the prompt will not contain `%', you could delete that.
>>
>> Changing the asterisk to a plus might work (untested) or maybe adding
>> a blank in the first (negated) char class (also untested). Or if you
>> know what the prompt will be literally, use that: "^My-prompt-[$] *"
>
> I've eval'ed (setq shell-prompt-pattern "^[^#$>\n]*[#$>] *") , this
> helps. Thanks for the tip.
>
> However, I don't want to change this globally. Is there an org mean to
> change this locally just for the session?
>
> Maybe the shell prompt could be customizable for a session in ob-sh.el?
>

That happens in the shell. You can do this to start your session:

#+BEGIN_SRC shell :session mysess
   PS1="MyPrompt-$ "
#+END_SRC

#+RESULTS:

and then tell emacs to locally set `comint-prompt-regexp' to a value
other than what was copied from `shell-prompt-pattern'

#+BEGIN_SRC emacs-lisp
   (save-excursion
     (pop-to-buffer "mysess")
     (setq-local comint-prompt-regexp "MyPrompt-$ "))
#+END_SRC

#+RESULTS:
: MyPrompt-$

and then it should work.

#+BEGIN_SRC shell :session mysess
   echo "a%b"
#+END_SRC

#+RESULTS:
: a%b

---

You might skip the second step and instead set `shell-prompt-pattern'
to "MyPrompt-$ ". If `comint-use-prompt-regexp' is nil, then the
`comint-prompt-regexp' is only consulted by ob-shell.el funs per the 
docstring of comint-use-prompt-regexp.



Chuck

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: Bug: :session doesn't honor :verbatim [8.2.10 (release_8.2.10 @ /usr/local/share/emacs/26.0.50/lisp/org/)]
  2017-04-16 23:14       ` Charles C. Berry
@ 2017-04-17  7:53         ` Michael Albinus
  0 siblings, 0 replies; 6+ messages in thread
From: Michael Albinus @ 2017-04-17  7:53 UTC (permalink / raw)
  To: Charles C. Berry; +Cc: emacs-orgmode, Tilmann Singer

"Charles C. Berry" <ccberry@ucsd.edu> writes:

>> However, I don't want to change this globally. Is there an org mean to
>> change this locally just for the session?
>>
>> Maybe the shell prompt could be customizable for a session in ob-sh.el?
>
> That happens in the shell. You can do this to start your session:
>
> #+BEGIN_SRC shell :session mysess
>    PS1="MyPrompt-$ "
> #+END_SRC
>
> #+RESULTS:
>
> and then tell emacs to locally set `comint-prompt-regexp' to a value
> other than what was copied from `shell-prompt-pattern'
>
> #+BEGIN_SRC emacs-lisp
>    (save-excursion
>      (pop-to-buffer "mysess")
>      (setq-local comint-prompt-regexp "MyPrompt-$ "))
> #+END_SRC
>
> #+RESULTS:
> : MyPrompt-$
>
> and then it should work.
>
> #+BEGIN_SRC shell :session mysess
>    echo "a%b"
> #+END_SRC
>
> #+RESULTS:
> : a%b
>
> ---
>
> You might skip the second step and instead set `shell-prompt-pattern'
> to "MyPrompt-$ ". If `comint-use-prompt-regexp' is nil, then the
> `comint-prompt-regexp' is only consulted by ob-shell.el funs per the 
> docstring of comint-use-prompt-regexp.

Thanks for the examples. Anything goes, of course, but I'm hoping for a
tighter integration. Maybe a :prompt param to sh source blocks, which
sets the prompt in a session, and which also manipulates
`comint-prompt-regexp' or `shell-prompt-pattern' local in the session buffer.

Or a mechanism like in Tramp, where the shell prompt is set to a random
string not expected in the shell (see `tramp-end-of-output'), and
`comint-prompt-regexp' or `shell-prompt-pattern' are adapted
automatically local in the session buffer.

> Chuck

Best regards, Michael.

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2017-04-17  7:53 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-04-16  8:43 Bug: :session doesn't honor :verbatim [8.2.10 (release_8.2.10 @ /usr/local/share/emacs/26.0.50/lisp/org/)] Michael Albinus
2017-04-16 10:58 ` Tilmann Singer
2017-04-16 17:19   ` Charles C. Berry
2017-04-16 21:46     ` Michael Albinus
2017-04-16 23:14       ` Charles C. Berry
2017-04-17  7:53         ` Michael Albinus

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).