Hi Johan, thanks for the report and patch, hi David, thanks for further comments, I have checked in a fix.
- Carsten On Jul 14, 2010, at 4:30 AM, Johan Friis wrote:
Setting up capture to use templates from file in the latest git seemed to cause some errors. I looked into it and wrote this small patch. It could probably use some love, seeing as I am quite new to org-mode, elisp and emacs in general. The error I was getting was related to testing (string-match ...) on a list. The fix is to check if txt is a list before doing the test. In addition I updated the customize interface to use `file' instead of `file-contents'. This seems to be the current way of doing things. Please note: This is my first time posting here. Please let me know if there are some rules to follow that I missed. And thanks for a great piece of software :) Regards, Johan diff --git a/lisp/org-capture.el b/lisp/org-capture.el index 2cb6876..da0925c 100644 --- a/lisp/org-capture.el +++ b/lisp/org-capture.el @@ -285,7 +285,7 @@ calendar | %:type %:date" (choice :tag "Template" (string) (list :tag "File" - (const :format "" file-contents) + (const :format "" file) (file :tag "Template file")) (list :tag "Function" (const :format "" function)@@ -981,14 +981,15 @@ Point will remain at the first line after the inserted text."(org-capture-put :key (car entry) :description (nth 1 entry) :target (nth 3 entry)) (let ((txt (nth 4 entry)) (type (or (nth 2 entry) 'entry))) - (when (or (not txt) (not (string-match "\\S-" txt))) - ;; The template may be empty or omitted for special types. - ;; Here we insert the default templates for such cases. - (cond - ((eq type 'item) (setq txt "- %?")) - ((eq type 'checkitem) (setq txt "- [ ] %?")) - ((eq type 'table-line) (setq txt "| %? |")) - ((member type '(nil entry)) (setq txt "* %?\n %a")))) + (when (or (not txt) (not (listp txt))) + (when (or (not txt) (not (string-match "\\S-" txt))) + ;; The template may be empty or omitted for special types. + ;; Here we insert the default templates for such cases. + (cond + ((eq type 'item) (setq txt "- %?")) + ((eq type 'checkitem) (setq txt "- [ ] %?")) + ((eq type 'table-line) (setq txt "| %? |")) + ((member type '(nil entry)) (setq txt "* %?\n %a"))))) (org-capture-put :template txt :type type))) (defun org-capture-goto-target (&optional template-key) _______________________________________________ Emacs-orgmode mailing list Please use `Reply All' to send replies to the list. [email protected] http://lists.gnu.org/mailman/listinfo/emacs-orgmode
- Carsten _______________________________________________ Emacs-orgmode mailing list Please use `Reply All' to send replies to the list. [email protected] http://lists.gnu.org/mailman/listinfo/emacs-orgmode
