emacs-orgmode
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Orgmode] [PATCH] org-capture - using `file' as template


From: Carsten Dominik
Subject: Re: [Orgmode] [PATCH] org-capture - using `file' as template
Date: Wed, 14 Jul 2010 11:04:22 +0200

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.
address@hidden
http://lists.gnu.org/mailman/listinfo/emacs-orgmode

- Carsten






reply via email to

[Prev in Thread] Current Thread [Next in Thread]