Eric S Fraga <e.fr...@ucl.ac.uk> writes: > Hello, > > I have the following org capture template: > > #+begin_src emacs-lisp > (setq org-capture-templates '(("j" "journal" entry (file+datetree+prompt > "~/s/notes/journal.org") > "* %(format-time-string \"%H:%M\") %^{Entry} > %^G\n%i%?"))) > #+end_src > > (other rules elided for clarity). Trying this today (after not using it > for a long time), I get the following error: > > ,---- > | Debugger entered--Lisp error: (void-variable org-time-was-given) > | org-capture-set-target-location() > | org-capture(nil) > | call-interactively(org-capture nil nil) > | command-execute(org-capture) > `---- > > I don't actually use this rule any longer as I prefer to clock in and > out but I was trying to show a friend how he could use org for > journalling. > > I've had a look at the source (reasonably up to date) but this variable > does not seem to be something I should be setting. Is my capture rule > somehow wrong? Or is this a bug in org-capture? >
FWIW, I tried the capture rule in a minimal emacs and it's working fine for me: Org-mode version 8.0.3 (release_8.0.3-144-gbd09fe @ /home/nick/elisp/org-mode/lisp/) That includes a bunch of private commits, but when I look at git history I don't find the commit you mention in your org version, f1b99a, so maybe you have your own bunch of private commits and one or more of them broke something? Maybe try a vanilla org? The variable is indeed not to be set by you: it's a dynamically scoped variable, so somebody binds it at some level and then every callee (direct or indirect) can access it. Stepping through org-capture-set-location shows that it is unbound up until the call to org-read-date (line 907-909 in org-capture.el) and it is bound on return from that function, at least in my case. > Any suggestions or pointers welcome! > > Thanks, > eric -- Nick