Browse Source

Updated the documentation for the template pre-selection.

Also update the Changes.org file.
Cleaned the code in `org-select-remember-template'.
Bastien Guerry 17 years ago
parent
commit
06fb98f1e2
3 changed files with 20 additions and 24 deletions
  1. 2 0
      ChangeLog
  2. 12 15
      org.el
  3. 6 9
      org.texi

+ 2 - 0
ChangeLog

@@ -1,5 +1,7 @@
 2008-03-10  Bastien Guerry  <bzg@altern.org>
 2008-03-10  Bastien Guerry  <bzg@altern.org>
 
 
+	* org.el (org-select-remember-template): Cleaned the code.
+
 	* org-publish.el (org-publish-before-export-hook)
 	* org-publish.el (org-publish-before-export-hook)
 	(org-publish-after-export-hook): New hooks.
 	(org-publish-after-export-hook): New hooks.
 	(org-publish-org-to): Use new hooks and kill buffers.
 	(org-publish-org-to): Use new hooks and kill buffers.

+ 12 - 15
org.el

@@ -1547,13 +1547,11 @@ element can specify the headline in that file that should be offered
 first when the user is asked to file the entry.  The default headline is
 first when the user is asked to file the entry.  The default headline is
 given in the variable `org-remember-default-headline'.
 given in the variable `org-remember-default-headline'.
 
 
-An optional sixth element can specify the context in which the user should 
-be able to select this template.  If this element is a list of major modes, 
-the template will only be available while invoking `org-remember' from a 
-buffer in one of these modes.  If it is a function, the template will only
-be selected if the function returns `t'.  A value of `t' means select
-this template in any context.   When the element is `nil', the template 
-will be selected by default, i.e. when all contextual checks failed.
+An optional sixth element specifies the contexts in which the user can
+select the template.  This element can be either a list of major modes
+or a function.  `org-remember' will first check whether the function
+returns `t' or if we are in any of the listed major mode, and select 
+the template accordingly.
 
 
 The template specifies the structure of the remember buffer.  It should have
 The template specifies the structure of the remember buffer.  It should have
 a first line starting with a star, to act as the org-mode headline.
 a first line starting with a star, to act as the org-mode headline.
@@ -13695,14 +13693,13 @@ RET at beg-of-buf -> Append to file as level 2 headline
 	       (let ((ctxt (nth 5 tpl))
 	       (let ((ctxt (nth 5 tpl))
 		     (mode org-select-template-temp-major-mode)
 		     (mode org-select-template-temp-major-mode)
 		     (buf org-select-template-original-buffer))
 		     (buf org-select-template-original-buffer))
-		 (if (or (and (functionp ctxt)
-			      (save-excursion
-				(set-buffer buf)
-				;; Protect the user-defined function from error
-				(condition-case nil (funcall ctxt) (error nil))))
-			 (and ctxt (listp ctxt)
-			      (delq nil (mapcar (lambda(x) (eq mode x)) ctxt))))
-		     tpl)))
+		 (and (or (not ctxt) (eq ctxt t)
+			  (and (listp ctxt) (memq mode ctxt))
+			  (and (functionp ctxt)
+			       (if (with-current-buffer buf
+				     ;; Protect the user-defined function from error
+				     (condition-case nil (funcall ctxt) (error nil))))))
+		      tpl)))
 	     org-remember-templates))
 	     org-remember-templates))
 	   ;; If no template at this point, add the default templates:
 	   ;; If no template at this point, add the default templates:
 	   (pre-selected-templates1
 	   (pre-selected-templates1

+ 6 - 9
org.texi

@@ -4611,14 +4611,11 @@ file (if not present or @code{nil}) defaults to
 @code{org-default-notes-file}, the heading to
 @code{org-default-notes-file}, the heading to
 @code{org-remember-default-headline}.
 @code{org-remember-default-headline}.
 
 
-An optional sixth element can specify the context in which the user
-wants to be able to select this template.  This element can be a list
-of major modes, in case the template will be available while invoking
-@code{org-remember} from a buffer in one of these modes.  If it is a
-function, the template will only be selected if the function returns
-@code{t}.  If this element is @code{t}, then the template will be
-selected in any context and if it is @code{nil} the template will
-be selected by default -- i.e. when all contextual checks failed.
+An optional sixth element specifies the contexts in which the user can
+select the template.  This element can be either a list of major modes
+or a function.  @code{org-remember} will first check whether the function
+returns @code{t} or if we are in any of the listed major mode, and select 
+the template accordingly.
 
 
 So for example:
 So for example:
 
 
@@ -4626,7 +4623,7 @@ So for example:
 (setq org-remember-templates
 (setq org-remember-templates
  '(("Todo" ?t "* TODO %?\n  %i\n  %a" "~/org/TODO.org" "Tasks" (emacs-lisp-mode))
  '(("Todo" ?t "* TODO %?\n  %i\n  %a" "~/org/TODO.org" "Tasks" (emacs-lisp-mode))
    ("Journal" ?j "* %U %?\n\n  %i\n  %a" "~/org/JOURNAL.org" my-check)
    ("Journal" ?j "* %U %?\n\n  %i\n  %a" "~/org/JOURNAL.org" my-check)
-   ("Idea" ?i "* %^@{Title@}\n  %i\n  %a" "~/org/JOURNAL.org" "New Ideas" t)))
+   ("Idea" ?i "* %^@{Title@}\n  %i\n  %a" "~/org/JOURNAL.org" "New Ideas")))
 @end example
 @end example
 
 
 The first template will only be available when invoking @code{org-remember}
 The first template will only be available when invoking @code{org-remember}