Hi all,

I am pretty sure that the following org-capture setup used to work,
but it doesn’t seem to anymore. The intention is to manually select a
date and use this with a custom date format (e.g. %<%Y/%m/%d>). (The
custom date format is for ledger; I use this to capture ledger
transations.)

But it doesn’t work now (if it ever did – looking at git blame doesn’t
help me figure out why it might have worked) without the attached
patch, with passes along the custom time to format-time-string. Would
it be a problem if this patch were applied? Thank you.

best, Erik

(defun egh:org-capture-ledger-file ()
  (let* ((date (org-read-date nil t))
         (filename (format "~/c/finances/%s.lgr"
                           (format-time-string "%Y" date))))
    (org-capture-put :default-time date)
    (set-buffer (org-capture-target-buffer filename))
    (goto-char (point-max))))

(setq org-capture-templates
'(("c" "Cash" plain
         (function egh:org-capture-ledger-file)
         "%<%Y/%m/%d> * %^{Payee}
  Expenses:Erik:Cash
  Expenses:%^{Account}  $%^{Amount}"
         :empty-lines 1)))


-- 
Sent from my free software system <http://fsf.org/>.
diff --git a/lisp/org-capture.el b/lisp/org-capture.el
index cbdf6f7..54f207d 100644
--- a/lisp/org-capture.el
+++ b/lisp/org-capture.el
@@ -1612,7 +1612,7 @@ The template may still contain \"%?\" for cursor 
positioning."
       ;; The current time
       (goto-char (point-min))
       (while (re-search-forward "%<\\([^>\n]+\\)>" nil t)
-       (replace-match (format-time-string (match-string 1)) t t))
+       (replace-match (format-time-string (match-string 1) ct) t t))
 
       ;; Simple %-escapes
       (goto-char (point-min))

Reply via email to