emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
From: Eike <eike@eknet.org>
To: "Charles C. Berry" <ccberry@ucsd.edu>
Cc: emacs-orgmode <emacs-orgmode@gnu.org>
Subject: Re: [PATCH] ob-core: check argument to goto-char
Date: Sat, 30 Apr 2016 20:47:55 +0200	[thread overview]
Message-ID: <87bn4r9bms.fsf@eknet.org> (raw)
In-Reply-To: <alpine.OSX.2.20.1604301001290.791@charles-berrys-macbook.local>



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

> On Sat, 30 Apr 2016, Eike wrote:
>
>>
>> Hi,
>>
>> I have some code that uses `org-babel-insert-result' and I've found that
>> evaluating for example
>>
>>   (org-babel-insert-result "a")
>>
>> results in an error.
>
> Although not explicitly marked as such, `org-babel-insert-result' seems 
> intended as an internal function for processing babel RESULTs.

ok, I didn't know.


>> The reason is that `goto-char' is called with a nil
>> argument.
>
> When your snippet is in a src block or inline src block, there is no 
> error. Also, no error when point is in a src block and you run the snippet 
> with
>
> :  M-x eval-expression RET (org-babel-insert-result "a") RET
>
> So, it looks like you are trying to evaluate the snippet above when 
> point is not in a src block. AFAICS, there is no guarantee that such usage 
> will succeed.
>
> Failure in such uses seems more like a feature than a bug.

Ok, so it wasn't clear to me that point must be in a src block. Since
the results are passed as argument, I made the false assumption that it
inserts them where point currently is /or/ after a src block.

The lisp code at that point (ob-core.el l.2212) invokes goto-char with
nil which is caused by `inline' being nil. But the next line checks for
`inline' being nil as does the line before: (if existing-result
(goto-char existing-result) …) so I thought it might be good to check
for that in the else-branch, too.

>> I simply put the snippet in a `when' clause, but since the
>> function is quite large I'm not so sure if it's now doing always the
>> correct thing. At least my org files seem still to work….
>>
>> I've added the patch in case it is ok to be applied. Maybe someone can
>> have a look at it.
>>
>
> See http://orgmode.org/worg/org-contribute.html for details on how to 
> contribute. Also, running `make test' on new code is a good idea.
>
> If you can explain what you are trying to achieve, someone may suggest a 
> fix that does not require retooling babel internals.

I didn't really mean you to apply my patch, but rather have a look at
it: thanks for that. I thought it's simpler to send a patch file than to
explain in words… `make test' doesn't show unexpected failures to me,
did I miss something? I'm sorry for breaking any contributing
rules, I'll try to do better next time.

What I want to do: I want to insert an org table somewhere in an org
buffer. The data is not from an src block but retrieved from somewhere
else. So I have a list like `(("id" "num") hline ("a" "1") ("b" "2"))'
and I'd like to put it in a buffer as an org table (the buffer is in
org-mode).

It is certainly not my intention to retool babel internals to achieve
this. My impression was that this may be a bug. But it may not, that's
why I asking here.

Thanks
Eike

-- 
gpg: AD7AC35E
finger print: 137F BB0B 1639 D25F DC5D E59C B412 C5F5 AD7A C35E

  reply	other threads:[~2016-04-30 18:48 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-04-30 11:05 [PATCH] ob-core: check argument to goto-char Eike
2016-04-30 17:38 ` Charles C. Berry
2016-04-30 18:47   ` Eike [this message]
2016-04-30 21:15     ` Charles C. Berry
2016-04-30 21:24       ` Nicolas Goaziou
2016-04-30 23:08         ` Eike
2016-04-30 21:40       ` Eike

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.orgmode.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87bn4r9bms.fsf@eknet.org \
    --to=eike@eknet.org \
    --cc=ccberry@ucsd.edu \
    --cc=emacs-orgmode@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).