emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
From: Nick Dokos <nicholas.dokos@hp.com>
To: emacs-orgmode@gnu.org
Subject: Re: Functions in SBE blocks
Date: Sat, 07 Jul 2012 16:02:49 -0400	[thread overview]
Message-ID: <1372.1341691369@alphaville> (raw)
In-Reply-To: Message from Viktor Rosenfeld <listuser36@googlemail.com> of "Sat, 07 Jul 2012 20:58:31 +0200." <20120707185831.GA25982@client195-161.wlan.hu-berlin.de>

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

  parent reply	other threads:[~2012-07-07 20:03 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   ` Nick Dokos [this message]
2012-07-08  0:55     ` Functions in SBE blocks Viktor Rosenfeld
  -- 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=1372.1341691369@alphaville \
    --to=nicholas.dokos@hp.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).