[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [O] Remove current heading from refile targets?
From: |
Bastien |
Subject: |
Re: [O] Remove current heading from refile targets? |
Date: |
Thu, 21 Jul 2011 16:52:06 +0200 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/24.0.50 (gnu/linux) |
Jason Dunsmore <address@hidden> writes:
> Looks good except for one quirk. If the heading has a TODO keyword, it
> isn't excluded. Example:
>
> * Heading1
> ** TODO Subheading1
> * Heading2
Please test this second patch over the previous one.
>From 04a43208d096e792aea68efadc5df95fcbb7d94b Mon Sep 17 00:00:00 2001
From: Bastien Guerry <address@hidden>
Date: Thu, 21 Jul 2011 16:51:12 +0200
Subject: [PATCH 2/2] org-refile: exclude current (sub)heading(s) even if they
start with a TODO keyword.
(org-get-heading): New optional argument to return heading
with no TODO keyword.
(org-refile-get-location): Use this new argument.
---
lisp/org.el | 26 ++++++++++++++++++--------
1 files changed, 18 insertions(+), 8 deletions(-)
diff --git a/lisp/org.el b/lisp/org.el
index 51b8615..2ba345b 100644
--- a/lisp/org.el
+++ b/lisp/org.el
@@ -6971,15 +6971,25 @@ This is important for non-interactive uses of the
command."
(hide-subtree)))
(run-hooks 'org-insert-heading-hook)))))
-(defun org-get-heading (&optional no-tags)
- "Return the heading of the current entry, without the stars."
+(defun org-get-heading (&optional no-tags no-todo)
+ "Return the heading of the current entry, without the stars.
+When NO-TAGS is non-nil, don't include tags.
+When NO-TODO is non-nil, don't include TODO keywords."
(save-excursion
(org-back-to-heading t)
- (if (looking-at
- (if no-tags
- (org-re "\\*+[ \t]+\\([^\n\r]*?\\)\\([
\t]+:[[:alnum:]:address@hidden:[ \t]*\\)?$")
- "\\*+[ \t]+\\([^\r\n]*\\)"))
- (match-string 1) "")))
+ (cond
+ ((and no-tags no-todo)
+ (looking-at org-complex-heading-regexp)
+ (match-string 4))
+ (no-tags
+ (looking-at "\\*+[ \t]+\\([^\n\r]*?\\)\\([
\t]+:[[:alnum:]:address@hidden:[ \t]*\\)?$")
+ (match-string 1))
+ (no-todo
+ (looking-at (concat "\\*+[ \t]+" org-todo-regexp " +"
+ "\\([^\n\r]*?[ \t]+:[[:alnum:]:address@hidden:[
\t]*\\)?$"))
+ (match-string 2))
+ (t (looking-at "\\*+[ \t]+\\([^\r\n]*\\)")
+ (match-string 1)))))
(defun org-heading-components ()
"Return the components of the current heading.
@@ -10504,7 +10514,7 @@ this function appends the default value from
(org-map-tree
(lambda()
(setq excluded-entries
- (append excluded-entries (list (org-get-heading t)))))))
+ (append excluded-entries (list (org-get-heading t t)))))))
(setq org-refile-target-table
(org-refile-get-targets default-buffer excluded-entries)))
(unless org-refile-target-table
--
1.7.5.2
Thanks!
--
Bastien
- [O] Remove current heading from refile targets?, Jason Dunsmore, 2011/07/17
- Re: [O] Remove current heading from refile targets?, Bastien, 2011/07/18
- Re: [O] Remove current heading from refile targets?, Jason Dunsmore, 2011/07/18
- Re: [O] Remove current heading from refile targets?, Bastien, 2011/07/18
- Re: [O] Remove current heading from refile targets?, Jason Dunsmore, 2011/07/19
- Re: [O] Remove current heading from refile targets?, Bastien, 2011/07/21
- Re: [O] Remove current heading from refile targets?, Jason Dunsmore, 2011/07/21
- Re: [O] Remove current heading from refile targets?,
Bastien <=
- Re: [O] Remove current heading from refile targets?, Jason Dunsmore, 2011/07/21
- Re: [O] Remove current heading from refile targets?, Bastien, 2011/07/22