Earlier in org-capture-fill-template, there is the following:

(let* (...
       (ct (org-capture-get :default-time))
       ...

The property :default-time defaults to the current time and is overwritten
by file+datetree+prompt,

If ct was passed as a 2nd argument to format-time-string in your code
snippet:

      ;; The current time
      (goto-char (point-min))
      (while (re-search-forward "%<\\([^>\n]+\\)>" nil t)
        (replace-match (format-time-string (match-string 1) ct) t t))

this should provide the behavior I'm looking for with file+datetree+prompt,
but still use the current time for other capture types. Will this solution
break anything?

Shankar

On Wed, Nov 4, 2015 at 2:15 PM, Nick Dokos <ndo...@gmail.com> wrote:

> Shankar Rao <shankar....@gmail.com> writes:
>
> > For the following org capture template:
> >
> > (setq org-capture-templates
> >       '(("d" "Date Tree Test" plain
> > (file+datetree+prompt "~/org/testdt.org")
> > "This date should be the date i picked: %<%y%m%d>")))
> >
> > Though this is filed under the correct date in the datetree, no matter
> what date I select in the prompt,
> > the date displayed in the template is the current date. Is this a bug or
> a feature?
> >
>
> It's a feature I guess - org-capture.el says:
>
>       ;; The current time
>       (goto-char (point-min))
>       (while (re-search-forward "%<\\([^>\n]+\\)>" nil t)
>         (replace-match (format-time-string (match-string 1)) t t))
>
> and there is no provision for another time to be given here. I don't
> think there is any provision in the template for a time other than the
> current time: at least I can't see a %-escape that takes a different
> time.
>
> --
> Nick
>
>
>

Reply via email to