* Emacsclient sends ^J, PicoLisp receives _
@ 2014-02-26 10:12 Thorsten Jolitz
2014-02-26 10:57 ` Thorsten Jolitz
0 siblings, 1 reply; 5+ messages in thread
From: Thorsten Jolitz @ 2014-02-26 10:12 UTC (permalink / raw)
To: help-gnu-emacs
Hi List,
I had this problem before but could not even get close to solving it
even with the help of this mailing list, so I try it again.
In a program, I let PicoLisp call Emacsclient to do some work and
receive the result as a nested list (with the syntax transformed from
Emacs Lisp to PicoLisp so it can be read-in right away).
This works quite well in most cases, but sometimes not.
Emacsclient sends this:
#+begin_src picolisp
## sent from Emacs
(section (parent-id 8) "[2013-06-28 Fr 11:01]^J")
^J(headline (org-elem-id 12 ...) )
#+end_src
PicoLisp receives this:
#+begin_src picolisp
## received from PicoLisp
(section (parent-id 8) "[2013-06-28 Fr 11:01]^J")
_ (headline (org-elem-id 12 ...
#+end_src
here, and only here, ^J is received as an underscore (_) , while
it is received as line-break in all the other cases (as desired).
Now its very hard to tell what might happen here. Who causes this
(Emacsclient? PicoLisp?) and why? It does not look any different from
the many other occurences of ^J in the nested list that is send.
Any hint would be welcome.
--
cheers,
Thorsten
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: Emacsclient sends ^J, PicoLisp receives _
2014-02-26 10:12 Emacsclient sends ^J, PicoLisp receives _ Thorsten Jolitz
@ 2014-02-26 10:57 ` Thorsten Jolitz
2014-02-26 15:54 ` Thorsten Jolitz
[not found] ` <mailman.16107.1393430045.10748.help-gnu-emacs@gnu.org>
0 siblings, 2 replies; 5+ messages in thread
From: Thorsten Jolitz @ 2014-02-26 10:57 UTC (permalink / raw)
To: help-gnu-emacs
Thorsten Jolitz <tjolitz@gmail.com> writes:
ok, I figured out that the problem is actually a different one than
described. This is what I see in an Emacs buffer when I'm in
Emacs(client) and let Emacs produce the nested list that will be sent
to PicoLisp:
> Emacsclient sends this:
>
> #+begin_src picolisp
> ## sent from Emacs
> (section (parent-id 8) "[2013-06-28 Fr 11:01]^J")
> ^J(headline (org-elem-id 12 ...) )
> #+end_src
but when I go to the other side and call Emacsclient from PicoLisp and
redirect what is sent into a file, it looks like this:
#+begin_src picolisp
(section (parent-id 8) \"[2013-06-28 Fr
11:01]^J\")_^J (headline (org-elem-id 12 ...) )
#+end_src
thus the underscore (_) is already present in the nested list before it
is sent to PicoLisp, so it must be a problem on the Emacs side (and it
is not that ^J is transformed into _, ^J is treated correctly, but for
some reason the unexpected _ is printed in this place).
So it might rather be a problem with the Org-mode exporter who
produces this nested list from an Org-mode file/buffer. So the
real questions are probably:
1. what invisible character might be transformed into an _ by the
exporter?
2. Why does the exporter behave differently when called from Emacs on
an open Org-mode buffer (correct output) then when called from an
external program (incorrect output with strange underscore)?
I will post this on the Org-mode mailing list too, but any hints from
this mailing list are still welcome.
--
cheers,
Thorsten
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: Emacsclient sends ^J, PicoLisp receives _
2014-02-26 10:57 ` Thorsten Jolitz
@ 2014-02-26 15:54 ` Thorsten Jolitz
[not found] ` <mailman.16107.1393430045.10748.help-gnu-emacs@gnu.org>
1 sibling, 0 replies; 5+ messages in thread
From: Thorsten Jolitz @ 2014-02-26 15:54 UTC (permalink / raw)
To: help-gnu-emacs
Thorsten Jolitz <tjolitz@gmail.com> writes:
Again following up to myself, I detected another possible culprit for
the 'bad' underscore introduced when sending output from Emacsclient to
PicoLisp:
In emacsclient.c I found this function:
#+begin_src C
/* In STR, insert a & before each &, each space, each newline, and
any initial -. Change spaces to underscores, too, so that the
return value never contains a space.
Does not change the string. Outputs the result to S. */
static void
quote_argument (HSOCKET s, const char *str)
{
char *copy = (char *) xmalloc (strlen (str) * 2 + 1);
const char *p;
char *q;
p = str;
q = copy;
while (*p)
{
if (*p == ' ')
{
,*q++ = '&';
,*q++ = '_';
p++;
} [...]
#+end_src
that is called (together with its antipode `unquote_argument') quite a
few times:
,----------------------------------------------------------------------------
| 17 matches for "quote_argument" in buffer: emacsclient.c
| 782:quote_argument (HSOCKET s, const char *str)
| 819:/* The inverse of quote_argument. Removes quoting in string STR by
| 823:unquote_argument (char *str)
| 1599: quote_argument (emacs_socket, environ[i]);
| 1604: quote_argument (emacs_socket, cwd);
| 1618: quote_argument (emacs_socket, display);
| 1625: quote_argument (emacs_socket, parent_id);
| 1632: quote_argument (emacs_socket, frame_parameters);
| 1649: quote_argument (emacs_socket, tty_name);
| 1651: quote_argument (emacs_socket, tty_type);
| 1669: quote_argument (emacs_socket, argv[i]);
| 1681: quote_argument (emacs_socket, argv[i]);
| 1708: quote_argument (emacs_socket, argv[i]);
| 1718: quote_argument (emacs_socket, str);
| 1786: str = unquote_argument (p + strlen ("-print "));
| 1796: str = unquote_argument (p + strlen ("-print-nonl "));
| 1803: str = unquote_argument (p + strlen ("-error "));
`----------------------------------------------------------------------------
Now I'm not that much of a C programmer, so I'm not sure what is
actually quoted and unquoted.
Is it possible that Emacsclients quotes and unquotes the output string
produced by my Org-exporter when sending it to PicoLisp (replacing
spaces with underscores and vice-versa) and occasionally things go
wrong in the process (i.e. some underscores are left in the final
string arriving at the PicoLisp side)?
Or is this quoting/unquoting done by Emacsclient completely unrelated
to my issue?
--
cheers,
Thorsten
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: Emacsclient sends ^J, PicoLisp receives _
[not found] ` <mailman.16107.1393430045.10748.help-gnu-emacs@gnu.org>
@ 2014-02-28 10:17 ` duthen01
2014-02-28 18:59 ` Thorsten Jolitz
0 siblings, 1 reply; 5+ messages in thread
From: duthen01 @ 2014-02-28 10:17 UTC (permalink / raw)
To: help-gnu-emacs
Hello!
I won't certainly not solve your problem! Sorry!
But I seems that it looks like a bug!
So, I would suggest, if this is possible, that you give the minimal information so that another person can reproduce this behavior/bug!
HTH
)jack(
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: Emacsclient sends ^J, PicoLisp receives _
2014-02-28 10:17 ` duthen01
@ 2014-02-28 18:59 ` Thorsten Jolitz
0 siblings, 0 replies; 5+ messages in thread
From: Thorsten Jolitz @ 2014-02-28 18:59 UTC (permalink / raw)
To: help-gnu-emacs
duthen01@gmail.com writes:
> Hello!
> I won't certainly not solve your problem! Sorry!
> But I seems that it looks like a bug!
> So, I would suggest, if this is possible, that you give the minimal
> information so that another person can reproduce this behavior/bug!
> HTH
> )jack(
It is not yet possible unfortunately because I'm not even sure whom to
blame and I'm not able to create a MWE that somebody else can reproduce
without setting up my whole working environment.
I only know that
- when I call the Org-mode HTML exporter from PicoLisp, the HTML string
received by PicoLisp is wrapped into double-quotes (visible in the
browser) when I use Emacsclient, but not when I use Emacs in batch
mode (I blame Emacsclient for that problem).
- when I call my own Org-mode exporter that returns a nested list in
PicoLisp syntax that should be readable as is by PicoLisp, sometimes
and in some places there are 'bad underscores' in the return string.
But I don't see anything special in the buffer positions where this
happens (not even with whitespace-mode). I tend to blame Emacsclient
for this problem too (replacing spaces with underscores?), but I'm
really not sure at all.
Once I figured out what happens (hopefully soon) and it turns out to be
a bug, I will file a report.
--
cheers,
Thorsten
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2014-02-28 18:59 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-02-26 10:12 Emacsclient sends ^J, PicoLisp receives _ Thorsten Jolitz
2014-02-26 10:57 ` Thorsten Jolitz
2014-02-26 15:54 ` Thorsten Jolitz
[not found] ` <mailman.16107.1393430045.10748.help-gnu-emacs@gnu.org>
2014-02-28 10:17 ` duthen01
2014-02-28 18:59 ` Thorsten Jolitz
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.