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))