emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
From: Viktor Rosenfeld <listuser36@googlemail.com>
To: emacs-orgmode@gnu.org
Subject: Re: Functions in SBE blocks
Date: Sun, 8 Jul 2012 02:55:30 +0200	[thread overview]
Message-ID: <20120708005530.GA59773@kenny.fritz.box> (raw)
In-Reply-To: <1372.1341691369@alphaville>

Hi Nick,

Nick Dokos wrote:

> Viktor Rosenfeld <listuser36@googlemail.com> wrote:
> 
> > Hi,
> > 
> > I can't get SBE blocks called from a table to work, if they use
> > functions like org-parse-time-string.
> > 
> > Suppose I have the following table:
> > 
> > | Start            | Ende             | |
> > |------------------+------------------+-|
> > | [2011-06-29 Wed] | [2012-02-29 Wed] | |
> > #+TBLFM: $3='(sbe "billable-month" (start $1) (end $2))
> > 
> > and the following source block:
> > 
> > #+NAME: billable-month(start="[2011-06-29 Wed]", end="[2012-02-29 Wed]")
> > #+BEGIN_SRC emacs-lisp
> > (let* ((start-date start))
> >    (message "%s" start-date))
> > #+END_SRC
> > 
> > If I evaluate the table, the start date is put into the last column.
> > However, if I change the code to the following:
> > 
> > #+NAME: billable-month(start="[2011-06-29 Wed]", end="[2012-02-29 Wed]")
> > #+BEGIN_SRC emacs-lisp
> > (let* ((start-date (org-parse-time-string start)))
> >    (message "%s" (nth 4 start-date)))
> > #+END_SRC
> > 
> > then the string #ERROR is inserted into the table. Evaluating the source
> > block directly yields the correct result.
> > 
> > What's going on here?
> > 
> 
> Finicky type matching: if you evaluate the second code block in the buffer with
> 
>    ESC ESC : (sbe "billable-month" (start "[2011-06-29 Wed]") (end  "[2012-02-29 Wed]")) RET
> 
> you get a backtrace similar to this:
> 
> ,----
> | Debugger entered--Lisp error: (wrong-type-argument stringp [2011-06-29 Wed])
> |   string-match("\\(\\([0-9]\\{4\\}\\)-\\([0-9]\\{2\\}\\)-\\([0-9]\\{2\\}\\)\\( +[^]+0-9>
> \n -]+\\)?\\( +\\([0-9]\\{1,2\\}\\):\\([0-9]\\{2\\}\\)\\)?\\)" [2011-06-29 Wed])
> |   (if (string-match org-ts-regexp0 s) (list 0 (if (or (match-beginning 8) (not nodefault)) (string-to-number (or (match-string 8 s) "0"))) (if (or (match-beginning 7) (not nodefault)) (string-to-number (or (match-string 7 s) "0"))) (string-to-number (match-string 4 s)) (string-to-number (match-string 3 s)) (string-to-number (match-string 2 s)) nil nil nil) (error "Not a standard Org-mode time string: %s" s))
> |   org-parse-time-string([2011-06-29 Wed])
> |   (let* ((start-date (org-parse-time-string start))) (format "%d" (nth 4 start-date)))
> |   ...
> `----
> 
> Somewhere, the string becomes not a string. Try modifying the block to this:
> 
> #+BEGIN_SRC emacs-lisp
> (let* ((start-date (org-parse-time-string (format "%s" start))))
>    (message "%s" (nth 4 start-date)))
> #+END_SRC
> 
> Nick

Thanks, that does the trick. The double ESC evaluation is helpful, too.

Cheers,
Viktor

  reply	other threads:[~2012-07-08  0:55 UTC|newest]

Thread overview: 68+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-09-22  7:36 [Bug] local variables definition at beginning of file is ignored Viktor Rosenfeld
2011-09-22  9:48 ` Viktor Rosenfeld
     [not found] ` <listuser36@googlemail.com>
2011-09-22 14:43   ` Nick Dokos
2011-09-22 14:58     ` Nick Dokos
2011-10-19 16:47   ` [babel] Verbatim output from SQL command Nick Dokos
2011-10-19 17:31     ` Viktor Rosenfeld
2011-10-19 17:34     ` Sebastien Vauban
2011-10-19 21:12   ` Export an org file from the command line in the background Nick Dokos
2011-10-19 22:28     ` Viktor Rosenfeld
2011-10-19 21:22   ` Code block evaluation export bug ? (was: Re: Export an org file from the command line in the background) Nick Dokos
2011-10-21  1:57     ` Code block evaluation export bug ? Thomas S. Dye
2011-10-21  2:42       ` Nick Dokos
2011-10-21  4:37         ` Nick Dokos
2011-10-22 23:51       ` Nick Dokos
2011-11-09 21:13         ` Eric Schulte
2011-11-09 21:55           ` Nick Dokos
2011-10-19 22:37   ` Export an org file from the command line in the background Nick Dokos
2011-11-16 15:52   ` Question regarding remote references in tables Nick Dokos
2011-11-16 16:40     ` Nick Dokos
2011-11-16 17:43     ` Viktor Rosenfeld
2011-12-13 22:16   ` Refresh of http://orgmode.org Nick Dokos
2012-07-07 20:02   ` Functions in SBE blocks Nick Dokos
2012-07-08  0:55     ` Viktor Rosenfeld [this message]
  -- strict thread matches above, loose matches on Subject: below --
2011-10-18 13:20 [babel] Verbatim output from SQL command Sebastien Vauban
2011-10-18 16:15 ` Eric Schulte
2011-10-19  9:19   ` Sebastien Vauban
2011-10-19 18:08     ` Eric Schulte
2011-10-20  8:03       ` Sebastien Vauban
2011-10-19 16:29 ` Viktor Rosenfeld
2011-10-19 16:21 Export an org file from the command line in the background Viktor Rosenfeld
2011-10-19 16:27 ` Jambunathan K
2011-10-19 20:14   ` Viktor Rosenfeld
2011-11-16 15:27 Question regarding remote references in tables Viktor Rosenfeld
2011-12-12 23:39 Refresh of http://orgmode.org Bastien
2011-12-13 17:25 ` Achim Gratz
2011-12-13 19:27   ` Bastien
2011-12-13 19:32     ` Nick Dokos
2011-12-13 20:27     ` Achim Gratz
2011-12-20 23:23       ` Bastien
2011-12-13 17:39 ` Samuel Wales
2011-12-13 18:39   ` Eric S Fraga
2011-12-13 18:59     ` Samuel Wales
2011-12-13 19:35     ` Bastien
2011-12-13 19:51       ` Samuel Wales
2011-12-14  8:49       ` Eric S Fraga
2011-12-13 19:33   ` Bastien
2011-12-13 21:50 ` Viktor Rosenfeld
2011-12-13 22:22   ` Bastien
2011-12-14  8:53     ` Eric S Fraga
2011-12-14 12:54     ` Viktor Rosenfeld
2011-12-14 17:40       ` Bastien
2011-12-14 18:15       ` Bastien
2011-12-14 22:10         ` Viktor Rosenfeld
2011-12-14 22:17           ` Eric Schulte
2011-12-14  1:19   ` Eric Schulte
2011-12-14 10:07     ` Bastien
2011-12-14 18:45       ` Eric Schulte
2011-12-15  4:11         ` Eric Schulte
2011-12-15 14:03           ` Bastien
2011-12-15 15:10             ` Eric Schulte
2011-12-15 15:18               ` Bastien
2011-12-15 15:26                 ` Eric Schulte
2011-12-15 15:44                   ` Bastien
2011-12-15 14:10         ` Bastien
2011-12-14 13:17   ` Stefan Vollmar
2011-12-14  2:30 ` Scott Randby
2011-12-15 13:10 ` Martyn Jago
2012-07-07 18:58 Functions in SBE blocks Viktor Rosenfeld

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=20120708005530.GA59773@kenny.fritz.box \
    --to=listuser36@googlemail.com \
    --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).